mod_evasive を使って DOS 攻撃に対して一時的に攻撃先の IP アドレスを遮断して回避するする方法を紹介します。
Nuclear Elephant: mod_evasive から mod_evasive のソースファイルをダウンロードして Apache の apxs を使ってインストールする方法を紹介します。
mod_evasive のダウンロードとビルド
mod_evasive のソースファイルを Nuclear Elephant: mod_evasive からダウンロードします。
# wget -P /usr/local/src http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
ダウンロードしたソースファイルを展開して apxs を使ってインストールします。
# cd /usr/local/src
# tar xzf mod_evasive_1.10.1.tar.gz
# cd mod_evasive
# /usr/local/httpd/bin/apxs -i -a -c mod_evasive20.c
# tar xzf mod_evasive_1.10.1.tar.gz
# cd mod_evasive
# /usr/local/httpd/bin/apxs -i -a -c mod_evasive20.c
Apache の設定ファイル httpd.conf に LoadModule evasive20_module modules/mod_evasive20.so の記述が追加されていることを確認します。
Apache の設定
まずは Apache の設定ファイル httpd.conf に LoadModule evasive20_module modules/mod_evasive20.so の記述が追加されていることを確認します。
続いて Apache の設定ファイル httpd.conf を編集して以下の行を追加します。
# vi /usr/local/httpd/conf/httpd.conf
/usr/local/httpd/conf/httpd.conf
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
</IfModule>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
</IfModule>
上記の設定で、特定の IP アドレスから 1 秒間に 同一ページに 2 回以上アクセスがあった場合、またはサイトに 50 回以上のアクセスがあった場合に 60 秒間アクセスを拒否します。