フォーラムへの返信
-
投稿者投稿
-
april_c参加者確認しました。
ありがとうございます。
april_c参加者うっかりして そのまま検証してしまいました。
nolog と allow を外した記述ですね。
改めてやってみました。が・・・エラーログが同じように出てしまいました。
こんなにいろいろやっても好結果が得られないということで、エラーログを意図的に吐き出すような記事投稿で検証、それ自体に問題があるような気もしてきました。
WAFテスト006
(.htaccessの記述)
<IfModule mod_security2.c>
SecRule REMOTE_ADDR “@ipMatch xxx.xxx.xx.xxx” “phase:1,id:200000001”
SecRuleRemoveById 200000001
</IfModule>
結果:19行のエラーログ生成(先のURLに「WAFテスト006」として掲載しています)これ以上 調べようもないような感もありますので とりあえずは撤退しますが、進展がありましたらご報告します。
april_c参加者WAFテスト005
(.htaccessの記述)
<IfModule mod_security2.c>
SecRule REMOTE_ADDR “@ipMatch xxx.xxx.xx.xxx” “phase:1,id:200000001,nolog,allow”
SecRuleRemoveById 200000001
</IfModule>
結果:19行のエラーログ生成
※ SecRuleRemoveById “200000001” でも同じ結果
※ ^xxx.xxx.xx.xxx$ とすると500エラーが出てしまう残念ながら、意図的な投稿に対してエラーログを生成してしまいました。
SiteGuard では簡単にIP除外ができたので簡単にできるんだろうと始めたことでしたが、実際はそうでもなかったようです。
他の方法でも対応できますので、この件については 一旦ここで諦めることにします。
これまでお付き合いいただき、たくさんのアドバイスに感謝です。
今後ともよろしくお願いします。
april_c参加者>ipMatchの方法ですが、上記URLにあるようにドットの前を¥でエスケープしてもダメでしょうか。
というお問いかけをいただいたのでやってみましたが、500エラーで玄関の戸が開きませんでした。
(1)正規表現で行頭・末を使った場合~アクセスした時点で500エラーのためサンプル投稿できず
<IfModule mod_security2.c>
SecRule REMOTE_ADDR “@ipMatch ^xxx\.xxx\.xx\.xxx$” “phase:1,id:200000001,nolog,allow”
</IfModule>アクセスログ
xxx.xxx.xx.xxx – – [07/Jul/2025:13:50:09 +0900] “GET /term_original/term.php HTTP/2.0” 500 2054 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:141.0) Gecko/20100101 Firefox/141.0”エラーログ
[Mon Jul 07 13:50:09.123718 2025] [core:alert] [pid 2805948:tid 2805961] [remote xxx.xxx.xx.xxx:25710] /var/www/clients/client492/web914/web/term_original/.htaccess: Error creating rule: Could not add entry “^xxx\\.xxx\\.xx\\.xxx$” from: ^xxx\\.xxx\\.xx\\.xxx$.(2)正規表現で行頭・末を使わない場合~アクセスした時点で500エラーのためサンプル投稿できず
<IfModule mod_security2.c>
SecRule REMOTE_ADDR “@ipMatch xxx\.xxx\.xx\.xxx” “phase:1,id:200000001,nolog,allow”
</IfModule>アクセスログ
xxx.xxx.xx.xxx – – [07/Jul/2025:13:56:00 +0900] “GET /term_original/term.php HTTP/2.0” 500 2054 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:141.0) Gecko/20100101 Firefox/141.0”エラーログ
[Mon Jul 07 13:56:00.022417 2025] [core:alert] [pid 2805948:tid 2805965] [remote xxx.xxx.xx.xxx:33896] /var/www/clients/client492/web914/web/term_original/.htaccess: Error creating rule: Could not add entry “xxx\\.xxx\\.xx\\.xxx” from: xxx\\.xxx\\.xx\\.xxx.※500エラーが出たことで、これまでのアクセスできても検知除外せずにエラーログが出るよりも、ルールの記述さえ・・・って思うと反対に近づいているような気もするんですが、ダメでした。
※ドットにエスケープを入れると「xxx\\.xxx\\.xx\\.xxx」のように重複するみたいですね。これで500エラーになってるよう。
※これ「phase:1,id:200000001」が 何なのかわからないのですが・・・ april_c参加者2つの方法を提示していただいたので、浅知恵ですが 以下の要領で試してみました。
・最上位に置いてある 既存の.htaccess を削除して、サーバのWAFの影響だけにする。
・長めのPHPスクリプトを掲示板に投稿して、.htaccess 未設置の状態でWAFのエラーログを出させる。
・「term_original」というディレクトリに4種類の.htaccessを置く。
・それぞれについて、term_original内の term.php にアクセスしたときにエラーログがどうなるか検証する。ルールの記述の仕方もよくわかりませんが、以下のテスト000から004までの5つのパターンを検証してみました。
的ハズレの検証かもしれませんが、得られた事実のみ掲載します。・WAFテスト000
(term_original内の.htaccessの記述)
.htaccess なし
結果:21行のエラーログ生成・WAFテスト001
(term_original内の.htaccessの記述)
<IfModule mod_security2.c>
SecRule REMOTE_ADDR “@ipMatch xxx.xxx.xx.xxx” “phase:1,id:200000001,nolog,allow”
</IfModule>
結果:21行のエラーログ生成
※「id:200000001」がよくわからないのでそのままで検証しましたが、これが検知除外できない原因???・WAFテスト002
(term_original内の.htaccessの記述)
<IfModule mod_security2.c>
SetEnvIfNoCase REMOTE_ADDR ^xxx.xxx.xx.xxx$ MODSEC_ENABLE=Off
</IfModule>
結果:21行のエラーログ生成・WAFテスト003
(term_original内の.htaccessの記述)
SetEnvIfNoCase REMOTE_ADDR ^xxx.xxx.xx.xxx$ MODSEC_ENABLE=Off
結果:21行のエラーログ生成
※<IfModule></IfModule> を外してみました。・WAFテスト004
(term_original内の.htaccessの記述)
<IfModule mod_security2.c>
SecRuleRemoveById “100000-999999”
</IfModule>
結果:エラーログ生成なし
※すべて検知除外することで IDレンジ指定しているのでエラーログは出ないはずと予想していたが、そのようになりました。まとめ
・テスト001~003 のエラーログは、確認していないが たぶん同じ
・テスト004でわかったことは、設置した.htaccess は機能している模様
・IPによる検知除外は このパターンにはなかったこと
・ModSecurity は.htaccessでのIP除外はできないのでは?なお、それぞれのエラーログは以下のページで参照できます。
https://flipflop.ie-t.net/test_term/term.php april_c参加者全体対応していただき 感謝です。
支障のあった投稿や記事修正も 500エラーなしで出来るようになりました。
WAF移行前は「SiteGuard_User_ExcludeSig ip(xxx.xxx.xx.xxx)」で対応していたため、気が付かなかったのかもしれません。
ありがとうございます。 april_c参加者アドバイスいただいた内容を試すのとあわせて、そもそもの原因であるエラーがなぜ出るのか調べてみました。
・記事が投稿及び修正できない原因がわかりました。
どうやら記事内に半角ハイフンが2つ以上続いたもの — があると、WAFが検知して投稿時と記事修正時に500エラーが出ることを確認しました。
使っているphpスクリプトの固有の事柄なんだろうと思います。PHPが8.3から8.4になったことも関係あるんでしょうか?WAFのエラーログ(要点)
ModSecurity: Access denied with code 44 (phase 2). Match of “eq 0” against “MULTIPART_UNMATCHED_BOUNDARY” required. [file “/etc/httpd/conf.d/mod_security.conf”] [line “32”]
[id “200003”]
[msg “Multipart parser detected a possible unmatched boundary.”]・これを回避するために.htaccessに「SecRuleRemoveById 2000003」と設定すれば、記事投稿及び修正のときに500エラーは出ず投稿・修正ができる。
・記事投稿及び修正しやすくするために、自己IPのアクセスをWAFの検知から除外するような.htaccessの記述
アドバイスいただいた正規表現での以下の記述を試してみました。
<IfModule mod_security2.c>
SecRuleRemoveByMsg “xxx\.xxx\.xx\.xxx”
</IfModule>結果は「除外しないWAFと同じエラーログ内容」で、投稿時と記事修正時に500エラーが出ることを確認しました。残念です。
WAFのエラーログ(要点)※上記と同じ内容でした。
ModSecurity: Access denied with code 44 (phase 2). Match of “eq 0” against “MULTIPART_UNMATCHED_BOUNDARY” required. [file “/etc/httpd/conf.d/mod_security.conf”] [line “32”]
[id “200003”]
[msg “Multipart parser detected a possible unmatched boundary.”]週末で時間があったので いろいろと調べてみましたが、そもそも半角ハイフンを2つ以上 記事で使わなければ支障ないことがわかりました。
普通に修正できる記事の多いなかで、500エラーで修正できない記事があるのが不思議だったのでスッキリしました。
.htaccessの記述で IPで除外できないのが心残りですが、既存の記事を修正する際 エラーが出た場合は IDで除外すればいいので支障ありません。うまく要点を整理できていないかもしれませんが、調べた結果をご報告しました。
これまでのアドバイス 感謝申し上げます。
今後ともよろしくお願いいたします。 april_c参加者申し訳ありません。タイプミスです。
SecRuleRemoveByMsg “xxx.xxx.xx.xxx”
上記の半角スペース入りで検証していますが、記事修正をすると「500サーバエラー」が出ます。
その際のエラーログの一部は以下のとおりです。
[Wed Jul 02 18:00:08.645181 2025] [:error] [pid 3779361:tid 3779429] [remote xxx.xxx.xx.xxx:13408] [client xxx.xxx.xx.xxx] ModSecurity: Access denied with code 44 (phase 2). Match of “eq 0” against “MULTIPART_UNMATCHED_BOUNDARY” required. [file “/etc/httpd/conf.d/mod_security.conf”] [line “32”] [id “200003”] [msg “Multipart parser detected a possible unmatched boundary.”]
phpのスクリプトをWAFが検知しているらしいのですが、以下のようにIDで除外すると記事修正できるので、とりあえず問題はありません。
SecRuleRemoveById 200003
april_c参加者IPアドレスによるWAF検知除外についてですが・・・
<IfModule mod_security2.c>
SecRuleRemoveByMsg“xxx.xxx.xx.xxx”
</IfModule>SecRuleRemoveByMsg でいろいろ試してみましたが、私の環境では「.htaccess」では思うようにはいきませんでした。
ダブルクォーテーションを外してみたり、固定IPを正規表現で試してみたりしたのですが、試行錯誤だけではままならず降参しました。
ご助言に感謝いたします。おかげさまでご紹介いただいたサイトでいろいろ勉強になりました。
https://github.com/owasp-modsecurity/ModSecurity/wiki/Reference-Manual-(v2.x)#secruleremovebyid
ID の場合はアスタリスクでの全除外以外に、以下のようにレンジで控えめ検知除外できることもその一つです。
SecRuleRemoveById “200000-299999”
先々よい方法が見つかりましたらご教示ください。
今後ともよろしくお願いいたします。 april_c参加者お忙しい中 アドバイスありがとうございます。
>IPアドレスによる除外は対応していません。
了解しました。
下記の記述で .htaccess をアップしても500エラーが出ませんでしたので、一定期間これで様子をみてみます。
意図したような動作が確認できましたら ご報告したいと思います。
<IfModule mod_security2.c>
SecRuleRemoveByMsg “xxx.xxx.xx.xxx”
</IfModule> april_c参加者サーバ切替に伴うWAFの変更(自己IPの除外記述)について
サーバ切替前のWAFでは、以下の記述で自己IPのみ除外して、結構便利に使っていました。
<IfModule mod_siteguard.c>
SiteGuard_User_ExcludeSig ip(xxx.xxx.xx.xxx)
</IfModule>切替後のWAFでは、ID除外ではなく 上記と同じような以下の記述でも自己IPだけを除外できますでしょうか。
500エラーが出なくなったので試しているのですが、機能しているのかどうかイマイチ判断できずにいます。
<IfModule mod_security2.c>
SecRuleRemoveById ip(xxx.xxx.xx.xxx)
</IfModule>これでいいものかどうか、アドバイスいただければ幸いです。
よろしくお願いします。 april_c参加者コンパネを確認せずに質問していまいました。
ご指摘のとおり「Let’s Encrypt」にチェックを入れたらアクセスが回復しました。
早速のご対応 ありがとうございます。
april_c参加者新フォーラムになって初めての投稿です。
>サーバーの設定変更などで検索エンジンにヒットしなくなるような要因はありますでしょうか?
サーバーのスペックが極端に下がったこと以外は 通常考えられないはずですし、イエティサーバーのVPS変更が近々あるようなお知らせもありますが、現時点でのスペック変更はされていないと思います。
・VPSをSAKURAからKAGOYAに変えるかも
https://ie-t.net/information/kagoya-vps/サーバーを移転してサイトのURLが変わったのであれば よくあることですし、対処法を掲載しているサイトも多数ありますのでお調べください。
サーバーを移転していないのであれば、Google Search Console に サイトマップを登録すれば、それなりの情報はとれると思います。
・Google Search Console
https://search.google.com/search-console/about?hl=ja以下のサイトで紹介されていますが、貴殿がアップしているHPの代表的な「検索語句」で貴殿のドメインに絞って検索してみてはいかがでしょう。
貴殿のサイトの検索語句 site:●●●.ie-t.net
というふうに。
なにがしかヒットする場合は 検索結果ページから消えていないということですし、結果順位の問題なのかもしれません。
・「Google検索でヒットしなくなった」14の原因と復活させる方法
https://lucy.ne.jp/bazubu/no-hit-49701.htmlということで、検索ページから消えていないのであればコントロールパネルでの設定云々とは関係ないと思います。
長くなりますが、私が実際に経験したことを2つ程ご紹介します。
・外部のCSS(リセットCSSなのですが)をページが呼び出していて、それを提供する外部サイトにトラブルがあって CSSを呼び出せない場合
この場合はページが開かなかったり、開いてもページのデザインが崩れたりします。
長く続けば検索順位も下がるとは思いますが、その場合は閲覧者だけでなくページ設置者自身もわかりますし、通常は短時間で復旧するので これはないと思います。
・設置者以外を拒否する.htaccess を誤ってアップしていた場合
これはページ設置者はアクセスできるので、私もしばらく気が付きませんでした。まさかではありますが。※新フォーラムへの投稿練習を兼ねて返信させていただきました。
参考になれば幸いです。 -
投稿者投稿