mod_evasive モジュールを有効にして、DoS アタック対策を設定します。
mod_evasive をインストールして設定します。
# EPEL からインストール |
[root@localhost ~]# yum --enablerepo=epel -y install mod_evasive |
[root@localhost ~]# vi /etc/httpd/conf.d/mod_evasive.conf |
# 18行目:同一ページへの DOSPageInterval (以下で設定) 秒あたりのリクエスト数のしきい値 DOSPageCount 5 # 24行目:同一サイトの DOSSiteInterval (以下で設定) 秒あたりのリクエスト数のしきい値 DOSSiteCount 50 # 28行目:DOSPageCount の間隔 (秒) DOSPageInterval 1 # 32行目:DOSSiteCount の間隔 (秒) DOSSiteInterval 1 # 41行目:リクエスト数がしきい値を超えた場合にアクセスをブロックする時間 (秒) DOSBlockingPeriod 300 # 48行目:コメント解除して設定 : ブラックリストされた IP を設定したアドレスへ通知 DOSEmailNotify root@localhost # 66行目:コメント解除して設定 : ログ保管ディレクトリ DOSLogDir "/var/log/mod_evasive" |
[root@localhost ~]# mkdir /var/log/mod_evasive |
[root@localhost ~]# chown apache. /var/log/mod_evasive |
[root@localhost ~]# systemctl restart httpd |
パッケージに付属しているテストツールで動作確認します。
[root@localhost ~]# perl /usr/share/doc/mod_evasive-*/test.pl |
HTTP/1.1 200 OK HTTP/1.1 200 OK 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 ..... ..... HTTP/1.1 403 Forbidden # ブロックされると 403 Forbidden になる # 設定した場所へログが記録される |
[root@localhost ~]# ll /var/log/mod_evasive |
total 4 -rw-r--r-- 1 apache apache 5 Aug 5 15:42 dos-127.0.0.1 # 設定した場合、通知メールが送信される |
[root@localhost ~]# mail |
Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/spool/mail/root": 1 message 1 new >N 1 Apache Wed Aug 3 19:42 20/673 & 1 Message 1: From apache@hoge.com Wed Aug 3 19:42:55 2015 Return-Path: <apache@hoge.com> X-Original-To: root@localhost Delivered-To: root@localhost.srv.world Date: Wed, 05 Aug 2015 15:42:54 +0900 To: root@localhost.srv.world User-Agent: Heirloom mailx 12.5 7/5/10 Content-Type: text/plain; charset=us-ascii From: apache@hoge.com (Apache) Status: R To: root@localhost Subject: HTTP BLACKLIST 127.0.0.1 mod_evasive HTTP Blacklisted 127.0.0.1 |