|
|
Topic Category
|
|
|
|
Link Category
|
|
|
|
最新:04/16 19:55
|
|
|
|
最新:07/28 16:47
|
|
|
|
|
|
|
|
|
|
DoS攻撃対策のためmod_evasiveを導入
参照:mod_evasive
昨日あたりからは攻撃が止んでいるけど・・・
いつまた攻撃が始まるかもしれないので、DoS, DDoS攻撃への対策のため Webサーバ(Apache)に mod_evasive を導入しました。以下に備忘録としてメモっておきます。なお、ウチのWebサーバはMacOS X 10.4 Tigerのため、いまだに Apache 1.3系を使っていたりします。そのため、現在の Apache 2系とは手順が異なるところがあります。
- mod_evasiveのダウンロード
mod_evasiveをZdziarski氏の Blogからダウンロードします。現時点での最新版は mod_evasive 1.10.1 でした。
- ダウンロードした mod_evasive を解凍
$ tar xvzf mod_evasive_1.10.1.tar.gz
|
解凍すると mod_evasive というディレクトリができ、配下にソースプログラムやドキュメント(README)が展開されます。"mod_evasive.c" が Apache 1.3系用で、"mod_evasive20.c" が Apache 2系用のようです。
- ビルドしてインストール
インストール方法は README に書かれていましたので、そのとおりに実施。
$ sudo /usr/sbin/apxs -iac mod_evasive.c
$ ls -l /usr/libexec/httpd/mod_evasive.so
-rwxr-xr-x 1 root wheel 36900 Oct 4 10:16 /usr/libexec/httpd/mod_evasive.so
|
モジュール "mod_evasive.so" が "/usr/libexec/httpd/" 下に配置されました。
- "/etc/httpd/httpd.conf" を編集
インストールが完了した時点で "/etc/httpd/httpd.conf" ファイルが更新されていますが、追加されているのは
LoadModule evasive_module libexec/httpd/mod_evasive.so
AddModule mod_evasive.c
|
だけです。mod_evasive のデフォルト設定のままでも構わないのかもしれませんが、ログの出力先など少し設定を変えたいので <IfModule mod_evasive.c> ブロックを追加しました。
<IfModule mod_evasive.c>
DOSHashTableSize 3079
DOSPageCount 2
DOSSiteCount 20
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 3600
DOSWhitelist 127.0.0.1 192.168.1.*
DOSLogDir "/var/log/mod_evasive"
</IfModule>
|
上記は同一ページに 1秒間(DOSPageInterval秒)で 2回(DOSPageCount回)アクセスがあった場合、またはサイトに 1秒間(DOSSiteInterval秒)で 20回(DOSSiteCount回)アクセスがあった場合、1時間(DOSBlockingPeriod秒)アクセスを遮断します。ただし localhost とウチのLAN内からのアクセスは除きます。ログは "/var/log/mod_evasive" 配下に書き出すようにします。
- Apacheを再起動
ログファイルの出力先ディレクトリを作成してから Apacheを再起動します。
$ sudo mkdir /var/log/mod_evasive
$ sudo chown www:www /var/log/mod_evasive
$ sudo /usr/sbin/apachectl restart
|
- 動作確認する
動作確認には "mod_evasive/test.pl" を使います。が、DOSWhitelist でLAN内からのアクセスを除外していますので、この設定を一旦コメントアウトしてから Apacheを再起動して "mod_evasive/test.pl" を実行してみます。
# DOSWhitelist 127.0.0.1 192.168.1.*
|
$ sudo /usr/sbin/apachectl restart
$ cd mod_evasive
$ chmod +x test.pl
$ ./test.pl
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
〜
|
という具合に "403 Forbidden" が返るようになったら成功。コメントアウトした DOSWhitelist設定を元に戻して Apacheを再起動して完了です。
|
|
2015 calendar
<<
|
10月 |
>>
|
日 |
月 |
火 |
水 |
木 |
金 |
土 |
* | * | * | * | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
最新:08/15 17:19
|
|