はじめに
ModSecurity で Web サイトをガードするのはいいのですが、WordPress のような CMS (コンテンツ・マネジメント・システム)では、偽陽性が頻発してしまいうんざりしてしまいます。
そこで、決まったパソコンの IP アドレスをホワイトリストに追加することで、ModSecurity のチェックをスルーし、全てのアクセスを許可する方法をご紹介します。
設定を始める前の確認
作業を始める前に、Web サイトに以下のようにアクセスして、ModSecurity が有効に機能していることを確認します。
http://hostname/index.php?union+select
これで、403 Forbidden のレスポンスが返ってくれば ModSecurity が機能しています。
設定作業
以下のファイルを編集します。
# vi /etc/httpd/conf/httpd.conf
そして、httpd.conf の適当な場所に、ホワイトリストに追加したい IP アドレスを以下のように追記して保存します。なお、IP アドレスの . は ¥ でエスケープする必要があります。また、ルールの id は重複しない適当なものを割り当てます。
SecRule REMOTE_ADDR "^192\.168\.11\.3$" "phase:1,id:133,nolog,allow"
設定が済んだら、Web サービスを再起動します。
# service httpd restart
再度、以下のアドレスにアクセスして、問題なくページが表示されるか、404 Not Found が表示されれば、設定が有効になっています。
http://hostname/index.php?union+select
おわりに
ModSecurity を厳密に運用しようとすると、偽陽性の問題に苦しめられることが多いので、IP アドレスが固定できる環境であれば、このような方法を取れることは覚えておいて損はありません。
せっかくなので、有効活用したいですね。
WAF設定まとめ
WAFの設定については以下のページにまとめていますので、こちらもどうぞ。
コメント