« 『Twitter』を世界地図でリアルタイム表示 | メイン | Fedora 7 リリース »

Apacheに対するDOS攻撃を回避する「mod_evasive」

Link to Apacheに対するサービス拒否攻撃を回避する方法:ITpro

 ITproで紹介されていたDOS攻撃に対して、一時的に攻撃先のIPアドレスを遮断して回避する「mod_evasive」をFedora Core 6のApacheに組み込んでみました。

 apxsが必要なので、httpd-develをインストールしていなかったら、先にyumでインストールしておいてください。
 また、mod_so.cが必要ですので確認してください。

確認方法
# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c <-これ

 
インストール 

  1. mod_evasive_1.10.1.tar.gzをダウンロードします。
    Download先 http://www.zdziarski.com/projects/mod_evasive/
  2. Apache2なので適当なディレクトリで解凍します。
    # tar zxfv  mod_evasive_1.10.1.tar.gz
  3. apxsを使ってコンパイルします。
    # cd ./mod_evasive
    # apxs -i -a -c mod_evasive20.c
     これで、modules(リンク先 64bit版の場合/usr/lib64/httpd/modules/がリンク元)にmod_evasive20.soができます。
  4. httpd.confを修正します。
    # vi /etc/httpd/conf/httpd.conf
     「LoadModule evasive20_module /usr/lib64/httpd/modules/mod_evasive20.so」がhttpd.confに追加されているのを確認します。

     次にhttpd.confの適当な所に、次のように記述します。
  5. <IfModule mod_evasive20.c>
    DOSHashTableSize 3097
    DOSPageCount 3
    DOSSiteCount 50
    DOSPageInterval 2
    DOSSiteInterval 1
    DOSBlockingPeriod 60
    DOSWhitelist 127.0.0.1 192.168.1.* 
    DOSEmailNotify  yourmail@yourdomain.com
    </IfModule>

  6. httpdを再起動します。
    # /etc/rc.d/init.d/httpd restart

動作説明

あるIPアドレスが50以上の異なるページを一秒以内ごとにリクエスト(DOSSiteCount 50)
あるいは同じページを2秒間に3回以上リロード(DOSPageInterval 2) (DOSPageCount 3) 
上記の場合、60秒間、そのIPアドレスを遮断する。(DOSBlockingPeriod 60)
なお、DOSWhitelistのアドレスは対象外とする。

トラックバック

このエントリーのトラックバックURL:
http://www.aubetec.com/hiruneko/cgi-bin/mt/hiruneko-tb.cgi/377

コメント (2)

お世話になっております。
mod_evasive の安定性については如何でしょう?
もし情報をお持ちでしたらお書きくわえ頂ければ幸いです。

Yuusaku:

シビアな状態はあまり経験したことがないので、安定性とかは言える立場にありません。
一度だけ、DOS攻撃を受けたことがあるのですが、サーバがやや重くなったものの、サーバは該当するIPアドレスを遮断していました。
なお、現在は設定を下記のようにしてあります。また、evasive.confとして、conf.dディレクトリの下においてあります。

LoadModule evasive20_module /usr/lib64/httpd/modules/mod_evasive20.so

<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 3
DOSSiteCount 50
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 120
DOSWhitelist 127.0.0.1 192.168.1.*
DOSEmailNotify *****@example.com
DOSSystemCommand "su - apache -c '/sbin/... %s ...'"
DOSLogDir "/var/log/mod_evasive"
</IfModule>

コメントを投稿

あなたの地区のお天気


Add Clips(ブックマーク)

ブックマークに追加する

アーカイブ



WWW を検索
aubetec.com を検索

Live Search


動画検索 Fooooo