絖綛 N@i.jp  昨日:00044692
 今日:00000775
 総計:00387058
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:04/16 19:55


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

DoS攻撃対策のためmod_evasiveを導入

参照:mod_evasive


昨日あたりからは攻撃が止んでいるけど・・・


 いつまた攻撃が始まるかもしれないので、DoS, DDoS攻撃への対策のため Webサーバ(Apache)に mod_evasive を導入しました。以下に備忘録としてメモっておきます。なお、ウチのWebサーバはMacOS X 10.4 Tigerのため、いまだに Apache 1.3系を使っていたりします。そのため、現在の Apache 2系とは手順が異なるところがあります。

  1. mod_evasiveのダウンロード
    mod_evasiveをZdziarski氏の Blogからダウンロードします。現時点での最新版は mod_evasive 1.10.1 でした。
  2. ダウンロードした 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系用のようです。
  3. ビルドしてインストール
    インストール方法は 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/" 下に配置されました。
  4. "/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" 配下に書き出すようにします。
  5. Apacheを再起動
    ログファイルの出力先ディレクトリを作成してから Apacheを再起動します。
    $ sudo mkdir /var/log/mod_evasive
    $ sudo chown www:www /var/log/mod_evasive
    $ sudo /usr/sbin/apachectl restart
  6. 動作確認する
    動作確認には "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を再起動して完了です。


< 過去の記事 [ 10月の 全てのカテゴリ リスト ] 新しい記事 >

2015 calendar
10月
123
45678910
11121314151617
18192021222324
25262728293031


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.