以前から時折WEBサーバへの大量アクセスでサーバのレスポンスが低下するという現象が見られたので、対策ツールとして導入しました。
パスやバージョンは適宜読み替えて下さい。OSは、"CentOS release 6.5 (Final)" です。
http://www.zdziarski.com/blog/?page_id=442 からダウンロードできます。ダウンロード先リンクを wget してファイルを取得します。
$ wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
apxs が導入済みか確認します。
# updatedb # locate apxs
なければ、インストールします。
# yum install httpd-devel
mod_evasive 内の README ファイルに書いてある手順に従い、インストールします。 以下の手順のみで良いはずです。
# cd mod_evasive_1.10.1 # /usr/sbin/apxs -i -a -c mod_evasive20.c
適当に作り、所有者は Apache を動作させるユーザと同じにしておきます。
# mkdir /var/log/mod_evasive
# chown apache:apache /var/log/mod_evasive
/etc/httpd/conf/httpd.conf を開くと、以下のような行が追加されているはずです。
LoadModule evasive20_module /usr/lib64/httpd/modules/mod_evasive20.so
上記を確認したら、下記の設定を記述します。
<IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 3 DOSSiteCount 20 DOSPageInterval 2 DOSSiteInterval 1 DOSBlockingPeriod 3600 DOSLogDir "/var/log/mod_evasive" DOSEmailNotify webmaster@hoge.jp </IfModule>