mod_security 2.5系

サーバー運用がかなり厳しいので寄付をしてくれる人がいたらこちら
メインPCもボロボロになってきたので、ついにほしいものリスト公開

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
<IfModule "mod_security2.c">
	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
</IfModule>

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
<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_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
</IfModule>

そしたらApacheの再読み込みを行います。

なんかデフォルトで付いてくるルールセットはがちがちすぎで、
中見ても良くわからないっていうのが本音だとおもいます。
そこで、最適化?されたルールセットをhttp://www.gotroot.com/からDLしてきます。

常に最新のものがほしい!という人はお金を払って購読してください。
既知の問題だけ有る程度防げればいいやと言う人は以下を探してDLしてください。

Free Rules (Delayed 30 days)<br>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"

~~以下常に編集中~~

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
また変更しました
Fill in the blank.