2.5.10系から?デフォルトのコンフィグの位置がまた変わってますね。。。
あとなんかrulesフォルダにutilなるものが。
これも後で触って見ますか
インストール
cd /usr/local/src
wget http://www.modsecurity.org/download/modsecurity-apache_2.5.13.tar.gz
tar zxvf modsecurity-apache_2.5.13.tar.gz
cd modsecurity-apache_2.5.13/apache2
./configure --with-apxs=/usr/local/apache2/bin/apxs \
--with-pcre=/usr \
--with-libxml=/usr \
--with-curl=/usr \
--with-apr=/usr/bin/apr-1-config \
--with-apu=/usr/bin/apu-1-config
make
make install
mkdir /usr/local/apache2/conf/modsec2
cd ../rules
cp -r * /usr/local/apache2/conf/modsec2
次に設定です。
2.5.12
またコアルールセットが新しくなってglobalなのが消えました。
ということで動くようになったらやり方のこしておきます
2.5.10~2.5.11
LoadModule security2_module modules/mod_security2.so
include conf/modsec2/modsecurity_crs_10_config.conf
include conf/modsec2/modsecurity_crs_10_global_config.conf
include conf/modsec2/base_rules/*.conf
include conf/modsec2/optional_rules/*.conf
SecAuditLog logs/security/modsec_audit.log
virtual hostを使用する場合、modsecurity_crs_10_global_config.confはVirtualHostの中へ設定すると怒られます。
このファイルはVirtualHostの外へ設定して、必要に応じてVirtualHost内で
base_rulesやoptional_rulesの中の設定をincludeしましょう。
検知のみする設定(変更分のみ記載)
modsecurity_crs_10_config.conf
SecRuleEngine DetectionOnly
SecResponseBodyLimit 1073741824
SecAuditLogRelevantStatus "^[2345]"
#SecAuditLog logs/modsec_audit.log
LogFormat "%V %h %t %{UNIQUE_ID}e \"%r\" %>s %X | %I %O | %<{mod_security-time1}n %<{mod_security-time2}n %<{mod_security-time3}n %D" mperformance
CustomLog logs/modsec_performance.log mperformance
SecRequestBodyInMemoryLimit 131072000
SecDebugLogLevel 0
とりあえず2.5.10から?デフォルトで拒否(optional_rulesの一部を除いて?)
しないようになったようです。
後は適当に設定を見てまた、暇なときにこっそり更新しておきます。
2.5.x~2.5.9
/usr/local/apache2/conf/httpd.conf
LoadModule security2_module modules/mod_security2.so
include conf/modsec2/modsecurity_crs_10_config.conf
include conf/modsec2/modsecurity_crs_20_protocol_violations.conf
include conf/modsec2/modsecurity_crs_21_protocol_anomalies.conf
include conf/modsec2/modsecurity_crs_23_request_limits.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/optional_rules/modsecurity_crs_20_protocol_violations.conf
include conf/modsec2/optional_rules/modsecurity_crs_21_protocol_anomalies.conf
include conf/modsec2/optional_rules/modsecurity_crs_40_generic_attacks.conf
include conf/modsec2/optional_rules/modsecurity_crs_42_comment_spam.conf
include conf/modsec2/optional_rules/modsecurity_crs_42_tight_security.conf
include conf/modsec2/optional_rules/modsecurity_crs_55_marketing.conf
SecAuditLog logs/modsec_audit.log
そしたらApacheの再読み込みを行います。
なんかデフォルトで付いてくるルールセットはがちがちすぎで、
中見ても良くわからないっていうのが本音だとおもいます。
そこで、最適化?されたルールセットをhttp://www.gotroot.com/からDLしてきます。
常に最新のものがほしい!という人はお金を払って購読してください。
既知の問題だけ有る程度防げればいいやと言う人は以下を探してDLしてください。
Free Rules (Delayed 30 days)
All in one downloads for modsec 2.5
色々編集した後に導入するとなにやら設定関連で怒られますが、
初期導入直後にこれだけIncludeするとうまく動くようです。
ModSecurityのサイトに色々とサードパーティ製のツール類の紹介があったんですねぇ
Web上で設定が出来るようになるものとか
クライアント上(XとかWindows上)で色々出来るものとかあるみたいです
これも動作は未検証なので、今度暇なときに遊んでみますか。
modsecurity-consoleを使ってみる
ということで以下でユーザ登録をしてmodsecurity-consoleを拾ってきます
https://bsn.breach.com/
拾ってきたら解凍して適当な場所においておきます。
ここでは/optに展開したとします。
cd /opt/modsecurity-console
./modsecurity-console start
http://HOST名:8886/
にアクセスをしてID:admin PASS:adminでログインします。
設定はいつの日か。。
rblを使ってみる
適当にmodsecurity_crs_30_http_policy.confあたりに追加しておくといいです。
SecRule REMOTE_ADDR "@rbl all.rbl.jp" "log,deny,status:400"
~~以下常に編集中~~
コメントを追加