ApacheのDoS対策(勉強メモ)

# ### 1.必要モジュールのインストール
# yum install httpd-devel

# ### 2. ソースを取得、インストール
# cd /tmp/
# wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
# tar xvzf mod_evasive_1.10.1.tar.gz
# cd mod_evasive
# apxs -cia mod_evasive20.c

# ### 3. モジュールがインストールされているのを確認
# ls -l /usr/lib64/httpd/modules/ | grep evasive20
-rwxr-xr-x. 1 root root  51149 Jun  5 04:29 mod_evasive20.so

# ### 4.設定ファイルを作成
# vi /etc/httpd/conf.d/mod_evasive20.conf
<IfModule mod_evasive20.c>
        DOSHashTableSize    3097
        DOSPageCount        2
        DOSSiteCount        50
        DOSPageInterval     1
        DOSSiteInterval     1
        DOSBlockingPeriod   10
</IfModule>

# ### 5.Apache再起動
# /etc/init.d/httpd restart

# ### 6. 確認(※)
# perl test.pl
1--------HTTP/1.1 200 OK
2--------HTTP/1.1 200 OK
3--------HTTP/1.1 200 OK
4--------HTTP/1.1 200 OK
5--------HTTP/1.1 200 OK
6--------HTTP/1.1 200 OK
7--------HTTP/1.1 200 OK
8--------HTTP/1.1 200 OK
9--------HTTP/1.1 200 OK
10--------HTTP/1.1 200 OK
11--------HTTP/1.1 200 OK
12--------HTTP/1.1 200 OK
13--------HTTP/1.1 200 OK
14--------HTTP/1.1 200 OK
15--------HTTP/1.1 200 OK
16--------HTTP/1.1 200 OK
17--------HTTP/1.1 403 Forbidden
18--------HTTP/1.1 403 Forbidden
19--------HTTP/1.1 403 Forbidden
・・・
98--------HTTP/1.1 403 Forbidden
99--------HTTP/1.1 403 Forbidden
100--------HTTP/1.1 403 Forbidden
101--------HTTP/1.1 403 Forbidden

### テスト用スクリプトをちょっとだけ修正しています
root@lpic303-CentOS6 mod_evasive]# cat test.pl
#!/usr/bin/perl

# test.pl: small script to test mod_dosevasive's effectiveness

use IO::Socket;
use strict;

my $count = 1;

for(0..100) {
  my($response);
  my($SOCKET) = new IO::Socket::INET( Proto   => "tcp",
                                      PeerAddr=> "127.0.0.1:80");
  if (! defined $SOCKET) { die $!; }
  print $SOCKET "GET /?$_ HTTP/1.0\n\n";
  $response = <$SOCKET>;
  print $count++;
  print "--------";
  print $response;
  close($SOCKET);
}
DOSPageInterval
DOSPageCount
DOSPageIntervalで設定した秒数以内で、同じページにアクセスできる上限数
DOSBlockingPeriod ブラックリストへ登録された接続元を遮断する時間(ミリ秒)
カテゴリー: LPIC303勉強 パーマリンク