2008/09/02 (火)

2008-09-02:debian etch で mod_security2

ちょっと前にここの blog のトラックバック受付を有効にしたんですが、きちんとトラックバックスパムが来るようになりました。。。:-|
というわけで、mod_security で撥ねてしまえ、という設定のオハナシ。

mod_security は debian のオフィシャルには入ってないので、apt-get はできない。
http://etc.inittab.org/~agi/debian/libapache-mod-security2/2.5.x/etch/
ここから

  • libapache2-mod-security2_2.5.5-1~etch1_i386.deb
  • mod-security2-common_2.5.5-1~etch1_all.deb

をとってきて、dpkg -i でインストール。

Debian の apache は /etc/apache2/ 以下にいろいろファイルが置かれる。モジュールの場合、/etc/apache2/mods-available/ 以下に実体が置かれ、/etc/apache2/mods-enabled/ 以下にシンボリックリンクを張ると有効になる、という仕組み。
dpkg では /etc/apache2/mods-enabled/mod-security2.load しか用意してくれず、設定ファイルの mod-security2.conf は自分で用意する必要がある。
とりあえず、旧サーバで使ってたころのファイルを持ってきた。
。。。うまくいかない。

バージョンが1から2になって Derective が変わりまくっているのね。
http://www.modsecurity.org/documentation/ の「ModSecurity 1.x to 2.x migration Matrix」を見ながら、ぽちぽちと修正。

ルールファイルは http://www.gotroot.com/tiki-index.php?page=mod_security+rules から Free Rules の All in one downloads for modsec 2.5 の gzip ファイルをもらってくる。
/etc/modsecurity/ というディレクトリを作って、そこに展開し、/etc/apache2/mods-available/mod-security2.conf には

Include /etc/modsecurity/00_asl_rbl.conf

といった感じに記述してルールファイルを読み込んでいく。
もらってきたルールファイルはそのままだと「/etc/asl/whitelist」みたいな決め打ちファイル名が見つからなくて怒られるので、適宜編集。
05_asl_scanner.conf の中に書かれてる modsec-clamscan.pl は modsecurity-apache_1.9.5.tar.gz の中の util フォルダにある。自分はこれをまとめて /etc/modsecurity/util/ とコピーしてみました。

とりあえず、もらってきたルールを全適用して様子を見ていますが、そんなに重たくはないみたい。
Core2 Duo 3.16GHz のサーバ、というのもあるかもしれませんけど。
しばらくは audit ログとか、CPU load average とかを監視してみます。

comment