CentOS7

Apache httpd : mod_evasive を利用する

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

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-03 (月) 10:45:58