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/ 以下のコアルールファイルを適宜コピー
      • コピーするファイルや、その修正などは適宜。
  • 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/ という事で。