Dosアタック攻撃に対する対策について

サーバーを色々触っていると、悪事をはたらく人たちの痕跡があります。

とくに、さくらVPSはスペックがよくない(低いプランは)ので、F5攻撃などがあればすぐにダウンする可能性が大です。

なので、DOS攻撃対策として、

mod_dosdetector

をインストールしたので、メモ書きです。

mod_dosdetectorは悪意のあるアクセスを判断してくれるモジュールです。

その判断されたデータを元に一時的に503を返してアクセスできなくしようと言うものです。

また、設定も細かくできるし日本語の情報も多いのオススメです。

と言うかこれしか試していません・・・・

ちなみに、下記やり方は他のサイト様の寄せ集めです。

参考にしたサイト

http://www.jisakuroom.net/blog/?p=201

http://c-brains.jp/blog/wsg/10/06/24-134947.php

http://ymotoba.blogspot.com/2009/05/apachedso.html

はじめにダウンロードします。

wget http://downloads.sourceforge.net/project/moddosdetector/moddosdetector/version-0.2/mod_dosdetector-0.2.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmoddosdetector%2F&ts=1293763310&use_mirror=jaist
tar -xzvf mod_dosdetector-0.2.tar.gz

次にインストールします。

その前に準備です。

yum install httpd-devel
cd mod_dosdetector-0.2
make 
コンパイルがすんだらインストールします。
make install
インストールがエラーなく終了すれば、httpd.confの設定を行います。
インストールがうまくいっていると、httpd.confに自動でモジュールの読み込みが記述されますが、今回は設定部分は別ファイルで行うために、httpd.confの記述はコメントアウトします。
vi  /etc/httpd/conf/httpd.conf
LoadModule dosdetector_module /usr/lib/httpd/modules/mod_dosdetector.so 
↓コメントアウト
#LoadModule dosdetector_module /usr/lib/httpd/modules/mod_dosdetector.so

次に、設定用ファイルを新規作成

vi /etc/httpd/conf.d/dos_attack.conf

ファイルの中身は次の内容で、

RewriteEngine On
RewriteCond %{ENV:SuspectHardDoS} =1
RewriteRule .*  - [R=503,L]
ErrorDocument 503 "Server is busy."

# デフォルトでは favicon のコンテンツタイプは指定されていないので設定
AddType image/vnd.microsoft.icon .ico

# モジュール読み込み
LoadModule dosdetector_module /usr/lib/httpd/modules/mod_dosdetector.so

# モジュール設定
DoSDetection On
DoSPeriod 60
DoSThreshold 70
DoSHardThreshold 90
DoSBanPeriod 7200
DoSTableSize 500
DoSIgnoreContentType ^(image/|application/|text/javascript|text/css)

各設定は次の内容

DoSDetection
DoS 攻撃の検知を有効にするかどうか。
DoSPeriod
DoS 攻撃の判定を行う時間を設定。(秒)
DoSThreshold
DoSPeriod の間にこの数だけアクセスがあれば DoS 攻撃の疑いありとみなし、環境変数 SuspectDoS を 1 にセットする。
DoSHardThreshold
DoSPeriod の間にこの数だけアクセスがあれば DoS 攻撃の疑いが強いとみなし、環境変数 SuspectHardDoS を 1 にセットする。
DoSBanPeriod
DoS 攻撃の疑いが設定されてから解除するまでの時間。(秒)
DoSTableSize
クライアントの追跡記録を保存する数。多すぎるとその分リソースを消費する。
DoSIgnoreContentType
追跡記録から除外するコンテンツタイプをパターンマッチングな文字列で指定。
RewriteEngine On
RewriteCond %{ENV:SuspectHardDoS} =1
RewriteRule .*  - [R=503,L]
ErrorDocument 503 "Server is busy."

上記の設定は、dosアタックと判断した時に行う処理の部分。

注意点はvirtualhostを使用している場合は、

vi /etc/httpd/conf.d/dos_attack.conf

内に記述するのではなく、virtualhosないの各ディレクティブに記述する必要がある。

以上で設定は終わり。

後は、テストしてどうかを見る。

通常通りうごいていると、

Server is busy.

と表示される

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">