- 投稿者投稿
- 2025 年 6 月 2 日 18:02 #1461
ちらみ
キーマスター2025年6月現在、当サーバでは「さくらのVPS」利用者向けに無償で提供されているSiteguard Server Editionを使えていましたが、移行先のサーバ(KAGOYA CLOUD)はこれが使えないため、WAFとしてはApacheのモジュールであるmod_security2を用意しています。
これに伴いWAFの検知除外方法が下記の通り変更になります。これまで各ユーザさん側でWAF検知を手動で除外したい場合、.htaccessファイルに
SiteGuard_User_ExcludeSig {シグネチャ名}として任意または全てのシグネチャ検知を除外してもらっていましたが、サーバ切替後はこの「SiteGuard_User_ExcludeSig」という記述自体が.htaccessファイルにあるとエラーとなりページが表示されませんので、切替作業直後に管理者側で一括で記載削除します。(.htaccessファイル内のその他の記述は残ります)
切替後はもしWAFの検知を除外したい場合は、まず/logディレクトリにあるerror.logを参照し
[line “139”] [id “941130“] [msg “XSS Filter – Category 3: Attribute Vector”] [data “Matched Data: .xhtml found within REQUEST_COOKIES_NAMES:primefaces.download_views_backuprestore.xhtml: primefaces.download_views_backuprestore.xhtml”] [severity “CRITICAL”]といったログが記録されている事を確認後、これを除外する場合は上記の例だと.htaccessファイルに下記の様に記述する事で検知を除外する事ができます。<IfModule mod_security2.c>
SecRuleRemoveById 941130
</IfModule>なお、複数のIDを除外したい場合は下記の通りそれぞれをスペースで区切ります。xxxxxxは実際のIDに置き換えて下さい。<IfModule mod_security2.c>
SecRuleRemoveById xxxxxx xxxxxx xxxxxx
</IfModule>または下記の通り1行に1IDでも指定できます。<IfModule mod_security2.c>
SecRuleRemoveById xxxxxx
SecRuleRemoveById xxxxxx
SecRuleRemoveById xxxxxx
</IfModule>WAF検知自体を無効化したい(全IDを除外したい)場合は下記の通りワイルドカード(アスタリスク)で指定します。
但し、全IDを検知除外した場合は無防備な状態と言えますので、ご面倒をおかけしますが可能な限りエラーログを見つつ1IDずつ除外して頂ければと思います。<IfModule mod_security2.c>
SecRuleRemoveById *
</IfModule>なお、<Directory></Directory>や<Location></Location>等のディレクティブは使えますので対象ディレクトリ全てに.htaccessファイルを配置する必要はありません。 - 2025 年 6 月 29 日 20:38 #1487
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>これでいいものかどうか、アドバイスいただければ幸いです。
よろしくお願いします。 - 2025 年 6 月 30 日 7:49 #1490
april_c
参加者お忙しい中 アドバイスありがとうございます。
>IPアドレスによる除外は対応していません。
了解しました。
下記の記述で .htaccess をアップしても500エラーが出ませんでしたので、一定期間これで様子をみてみます。
意図したような動作が確認できましたら ご報告したいと思います。
<IfModule mod_security2.c>
SecRuleRemoveByMsg “xxx.xxx.xx.xxx”
</IfModule> - 2025 年 7 月 1 日 0:03 #1491
ちらみ
キーマスター承知しました。宜しくお願いします。
- 2025 年 7 月 2 日 11:17 #1495
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”
先々よい方法が見つかりましたらご教示ください。
今後ともよろしくお願いいたします。 - 2025 年 7 月 2 日 18:09 #1497
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
- 投稿者投稿
- このトピックに返信するにはログインが必要です。