※写真と本文は関係ありません。
備忘録書いておく。
wordpress(このサイトね)にXSSなどがたくさん来るので試してみた。
インストールはyumで
## mod_security 本体 # yum install mod_security ## ルールセット # yum install mod_security_crs mod_security_crs-extras
設定は/etc/httpd/conf.d/mod_security.confで。
除外するルール。ホワイトリストのIPアドレスとWAFを発動しないpathを追記。
<IfModule mod_security2.c> …… # 除外するルールID(日本語クエリパラメータで発動してしまうので除外する) SecRuleRemoveById 960024 # muninのhttp://localhost/server-status/へのアクセスを除外。 SecRule REMOTE_ADDR "^127\.0\.0\.1$" "phase:1,nolog,allow,id:2013122401" # 管理画面へのアクセスは除外。 SecRule REQUEST_FILENAME "^/wordpress/wp-admin/" "phase:1,nolog,allow,id:2013122501" …… </IfModule>
ルールセットは/usr/lib/modsecurity.d/にあるので、適宜/etc/httpd/modsecurity.d/activated_rules/に置くと適用される。(base_rulesはmod_security_crsインストール時にシンボリックリンクされる)
運用は、ログで『403 Forbidden』されたルールIDを見てSecRuleRemoveByIdに追記する方法かなぁ。
ルールセットはあまり変更しない方がいいような感じかしら?
日本語の情報が少ないので、検索すると少し古い情報で迷う。。最近のVersionはSecRuleにid:が必要とか。ルール書くまで理解するのは大変そう…。