mod_dosdetector

id:stanaka:20070204:1170553603 で紹介されていた DoS Attack 防止モジュールが紹介されてたので Ports 形式にでっちあげ。ちゃんと動かして確認してないので人柱用。(ダウンロード
はてなで実際に使われているそうなので効果はどうなんだろうとか興味津々。ソース見てみるとアクセス管理情報をメモリに持ってるようなので、メモリが少なくてアクセスの多いサーバだとつらいかなと思ってみたり*1アクセス管理情報のサイズは設定できます。ですがちょい気になることを追記。IPv6 アドレスは使えないような?IPv6 なパッチ書いても嬉しい人少ないよなあとか思ってみたり。
んで、ビルドしてみるとエラーでるんですけど・・・。APLOG_ERROR じゃなくて APLOG_ERR ですよね?cleanup_tables じゃなくて cleanup_shm ですか?動いてるものと違うのかなーとか思ってみたり。
追記:設定の DoSTableSize でアクセス管理情報を持つテーブルのサイズを設定できる。テーブルは共有メモリに作られるが、作られるタイミングはモジュールが初期化される時。なのにテーブルサイズは FileInfo で変更可能。当然 FileInfo で DoSTableSize を指定しても意味は無い。
追記2:warning 取りとより Apache モジュールっぽくしたパッチ。(ダウンロード

*1:アクセス多いところはメモリもたっぷりだろうけど