新しいバージョン †
参考情報 †
インストール作業 †
libxml2の確認 †
# rpm -qa | grep libxml2
ダウンロードと解凍 †
# wget http://www.modsecurity.org/download/modsecurity-apache_2.1.1.tar.gz
# tar -xzvf modsecurity-apache_2.1.1.tar.gz
# cd modsecurity-apache_2.1.1
MakeFileの編集 †
コンパイル †
# make
# make install
ルールファイルの準備 †
# mv rules /etc/httpd/conf/modsec2
security2.confの作成 †
LoadFile /usr/lib/libxml2.so
LoadModule security2_module modules/mod_security2.so
LoadModule unique_id_module modules/mod_unique_id.so
<IfModule mod_security2.c>
include conf/modsec2/modsecurity_crs_10_config.conf
include conf/modsec2/modsecurity_crs_20_protocol_violations.conf
include conf/modsec2/modsecurity_crs_30_http_policy.conf
include conf/modsec2/modsecurity_crs_35_bad_robots.conf
include conf/modsec2/modsecurity_crs_40_generic_attacks.conf
include conf/modsec2/modsecurity_crs_45_trojans.conf
include conf/modsec2/modsecurity_crs_50_outbound.conf
include conf/modsec2/modsecurity_crs_55_marketing.conf
include conf/modsec2/blocking/modsecurity_crs_20_protocol_violations.conf
include conf/modsec2/blocking/modsecurity_crs_21_protocol_anomalies.conf
include conf/modsec2/blocking/modsecurity_crs_40_generic_attacks.conf
</IfModule>
古いバージョン †
参考情報 †
注意 †
- apxsがインストールされている必要がある(httpd-develパッケージ)
- mod_rewriteなど、このモジュールが動作する前に実行されるモジュールがある事に注意
- httpd.conf内にLoadModuleの指定がないとエラーが起きるが、別ファイルで指定すれば問題ない
- CustomLogディレクティブに「env=!mod_security-relevant」とするとapacheログに拒否されたリクエストは記録されない
インストール方法 †
# wget http://www.modsecurity.org/download/modsecurity-apache_x.x.X.tar.gz
# tar -xzvf modsecurity-apache_x.x.X.tar.gz
# cd modsecurity-apache/apache2 ←Apache2の場合
# apxs -cia mod_security.c
# /etc/init.d/httpd configtest ←設定ファイルを検証
# /etc/init.d/httpd restart ←apacheを再起動
conf.d/security.confの内容 †
LoadModule security_module modules/mod_security.so
SecFilterEngine On
SecFilterDefaultAction "deny,log,status:404"
SecFilterScanPOST Off
SecFilterCheckURLEncoding On
SecFilterCheckUnicodeEncoding On
SecFilterForceByteRange 1 255
SecAuditEngine RelevantOnly
SecAuditLog /var/www/logs/audit_log
SecFilterDebugLevel 0
SecFilterCookieFormat 1
SecFilterNormalizeCookies On
SecFilterSelective REQUEST_METHOD "!^(GET|POST|HEAD)$"
SecFilter "\.(exe|cmd|bat|htw|ida|idq|htr|idc|printer|ini|pol)"
SecFilter "\.(EXE|CMD|BAT|HTW|IDA|IDQ|HTR|IDC|PRINTER|INI|POL)"
SecFilter "^http"
SecFilter "[Jj][Aa][Vv][Aa][Ss][Cc][Rr][Ii][Pp][Tt]:"
SecFilter "<[[:space:]]*[Ss][Cc][Rr][Ii][Pp][Tt]"
コンテンツは提供したいが、Apacheログに残したくない場合 †
SecFilter "^/server-status" "allow,setenv:mod_security-relevant"