mod_evasive でアクセスを弾いたときerror codeを503にしたい

  • 作者のblog ?

http://www.zdziarski.com/blog/?page_id=442

  • ITproの記事

http://itpro.nikkeibp.co.jp/article/COLUMN/20070510/270527/

mod_evasive

mod_evasive is an evasive maneuvers module for Apache to provide evasive action in the event of an HTTP DoS or DDoS attack or brute force attack.

ようするにanti DOS attack module というわけですね便利です。README にはapache 1.3, 2.0しか書いてませんが確認してる限り2.2 でも動いてます。

エラーコードを403 から503に変更

mod_evasive は一定期間に同一IPからのアクセス数が設定した値に達した場合に403を返して拒否します。で、これを諸事情により503にしたい。source に直接HTTP_FORBIDDENと書いていたので、これを全部HTTP_SERVICE_UNAVAILABLEに変更しちゃう。

# perl -pi.bak -e 's/HTTP_FORBIDDEN/HTTP_SERVICE_UNAVAILABLE/g' mod_evasive20.c

そしてinstall

# /usr/local/apache2/bin/apxs -i -a -c mod_evasive20.c

おまけ

mod_evasive のdirective一覧。

DOSEmailNotify
DOSSystemCommand
DOSLogDir
DOSHashTableSize
DOSPageCount
DOSSiteCount
DOSPageInterval
DOSSiteInterval
DOSBlockingPeriod
DOSWhitelist