ModSecurity のインストール
Debian etch に mod-security2 を入れる。「ModSecurity: Open Source Web Application Firewall」、Debian用パッケージは「http://etc.inittab.org/~agi/debian/libapache-mod-security2/」からさらに etch のを選ぶ。
- tasksel のウェブサーバーでいれた apache2
- libapache2-mod-security2_2.1.1-0_amd64.deb と mod-security2-common_2.1.1-0_all.deb は互いに依存してるので、手で入れるなら同時に
- プラットフォーム毎の選択は適宜
- そうすると、mods-available/mod_security2.load は既に mods-enabled に入っている。
- phpinfo() みたら稼働してるモジュールの中にちゃんとはいっていた
- 設定ファイルを置く場所に悩む、内容後述
- 一度、a2dismod mod_security2 する。
- /etc/apache2/mods-available/mod_security2.conf 作成
Include /etc/mod-security2/apache2/*.conf
- どこか適当なタイミングで a2enmod mod_security2
- etc/mod-security2/apache2/ ディレクトリを作成
- /usr/share/doc/mod-security2-common/examples/rules/ 以下のコアルールファイルを適宜コピー
- コピーするファイルや、その修正などは適宜。
- /usr/share/doc/mod-security2-common/examples/rules/ 以下のコアルールファイルを適宜コピー
- modsecurity_crs_10_config.conf
- ログファイルの場所は、/var/log/apache2/ かな
- デバッグログのログレベルは、0:なし <-> 9:全部 です。
そして適当なタイミングで何度か /etc/init.d/apache2 force-reload してる。
mod と sec(urity) をつなぐのが、ハイフン(マイナス)だったりアンダースコアだったり或いはキャメルクラスでなかったり、いろいろなので注意すること。
悩んだ事、設定ファイルの置き場所、書く場所について。
コアルールをみるとそれなりの数の別ファイルにわかれているので、設定ファイル (http.confとか mod_security2.confとか) に直接全部書くのは現実的じゃない。そこにはディレクトリを指定する事になろう。そのディレクトリなんだけど、/etc/apache2/の下にいくのか、/etc/直下にするのか少し悩んだ。
まあ、今回は /etc/mod-security2/apache2/ という事で。