サーバーを色々触っていると、悪事をはたらく人たちの痕跡があります。
とくに、さくら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 500DoSIgnoreContentType ^(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.
と表示される