Apache対応WAF(mod_security)のインストール

Webアプリケーションの脆弱性を衝くSQLインジェクションやクロスサイトスクリプティングを防ぐオープンソースのApache対応WAF(mod_security)を自宅WebサーバーのCentOS7にインストールしてみました。

オープンソースのWAF「Mod Security」のメリットとその導入方法について

まずyum からmod_security 本体、関連ファイルをインストールしてApache を再起動します。

# yum install mod_security mod_security_crs
# systemctl restart httpd

これで、/etc/httpd/modsecurity.d/activated_rules/ ディレクトリにあるルールが作動します。

しかしこれではデフォルトのルールが厳しくCMSの動作に影響が大きいので、設定ファイルを開いて編集します。

# vi /etc/httpd/conf.d/mod_security.conf

↓ コメントアウト #IncludeOptional modsecurity.d/activated_rules/*.conf
↓ 追記 Include modsecurity.d/activated_rules/modsecurity_crs_41_xss_attacks.conf Include modsecurity.d/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf
httpd再起動 # systemctl restart httpd

サイトにログインすると403 Forbidden エラーが返ってくるので、偽陽性のテストをしていきます。

CMSの個別操作に対してエラーID を例外処理するため、SecRuleEngine OnをコメントアウトしてSecRuleEngine DetectionOnly を追記、httpd再起動・・・。

# vi etc/httpd/conf.d/mod_security.conf

#SecRuleEngine On SecRuleEngine DetectionOnly
# systemctl restart httpd

ブロックしているIDをログファイル(/var/log/httpd/modsec_audit.log)から探して、設定ファイルの最下行に

SecRuleRemoveById 960008

という様に追記して行きます。

/var/log/httpd/modsec_audit.log

/etc/httpd/conf.d/mod_security.conf 最下行にIDを追記

SecRuleEngine On して httpdを再起動してエラーが出なくなれば作業完了です。

お疲れさまでした。

参考URL: オープンソースの WAF である ModSecurity を CentOS にインストールする

同じカテゴリーの記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です