Apache2 : mod_evasive を利用する2022/05/17 |
mod_evasive モジュールを有効にして、DoS アタック対策を設定します。
|
|
[1] | mod_evasive をインストールして設定します。 |
root@www:~#
apt -y install libapache2-mod-evasive
root@www:~#
vi /etc/apache2/mods-available/evasive.conf # 各行をコメント解除して設定 <IfModule mod_evasive20.c> # ハッシュテーブルサイズ : 値の大きさに応じてパフォーマンス向上 & メモリー消費増 DOSHashTableSize 3097 # 同一ページへの DOSPageInterval (以下で設定) 秒あたりのリクエスト数のしきい値 DOSPageCount 2 # 同一サイトの DOSSiteInterval (以下で設定) 秒あたりのリクエスト数のしきい値 DOSSiteCount 50 # DOSPageCount の間隔 (秒) DOSPageInterval 1 # DOSSiteCount の間隔 (秒) DOSSiteInterval 1 # リクエスト数がしきい値を超えた場合にアクセスをブロックする時間 (秒) DOSBlockingPeriod 10 # 必要に応じてコメント解除して設定 # ブロックした際に設定したメールアドレスへ通知 #DOSEmailNotify root@localhost # 任意の実行したいコマンドを設定可 #DOSSystemCommand "su - someuser -c '/sbin/... %s ...'" # ログ保管ディレクトリ #DOSLogDir "/var/log/mod-evasive" </IfModule>root@www:~# mkdir /var/log/mod-evasive root@www:~# chown www-data:www-data /var/log/mod-evasive root@www:~# systemctl reload apache2 |
[2] | Apache2 に連続アクセスして動作確認します。 |
root@www:~# for ((i=1; i <= 20; i++)); do curl -I localhost; done
HTTP/1.1 200 OK
Date: Wed, 30 Nov 2022 04:10:38 GMT
Server: Apache/2.4.52 (Ubuntu)
Upgrade: h2,h2c
Connection: Upgrade
Last-Modified: Wed, 30 Nov 2022 02:11:50 GMT
ETag: "29af-5eea6a09cf7d9"
Accept-Ranges: bytes
Content-Length: 10671
Vary: Accept-Encoding
Content-Type: text/html
HTTP/1.1 200 OK
Date: Wed, 30 Nov 2022 04:10:38 GMT
Server: Apache/2.4.52 (Ubuntu)
Upgrade: h2,h2c
Connection: Upgrade
Last-Modified: Wed, 30 Nov 2022 02:11:50 GMT
ETag: "29af-5eea6a09cf7d9"
Accept-Ranges: bytes
Content-Length: 10671
Vary: Accept-Encoding
Content-Type: text/html
HTTP/1.1 200 OK
Date: Wed, 30 Nov 2022 04:10:38 GMT
Server: Apache/2.4.52 (Ubuntu)
Upgrade: h2,h2c
Connection: Upgrade
Last-Modified: Wed, 30 Nov 2022 02:11:50 GMT
ETag: "29af-5eea6a09cf7d9"
Accept-Ranges: bytes
Content-Length: 10671
Vary: Accept-Encoding
Content-Type: text/html
# ブロックされると 403 Forbidden になる
HTTP/1.1 403 Forbidden
Date: Wed, 30 Nov 2022 04:10:38 GMT
Server: Apache/2.4.52 (Ubuntu)
Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 403 Forbidden
Date: Wed, 30 Nov 2022 04:10:38 GMT
Server: Apache/2.4.52 (Ubuntu)
Content-Type: text/html; charset=iso-8859-1
.....
.....
# ログを設定した場合は 指定尾所へ記録される root@www:~# ll /var/log/mod-evasive total 12 drwxr-xr-x 2 www-data www-data 4096 Nov 30 13:16 ./ drwxrwxr-x 11 root syslog 4096 Nov 30 13:16 ../ -rw-r--r-- 1 www-data www-data 5 Nov 30 13:16 dos-127.0.0.1 # メールアドレスを設定した場合は 通知メールが送信される root@www:~# mail Mail version 8.1.2 01/15/2001. Type ? for help. "/var/mail/root": 1 message 1 unread >U 1 www-data@www.srv. Wed Nov 30 13:16 20/621 & 1 Message 1: From www-data@www.srv.world Wed Nov 30 13:16:38 2022 X-Original-To: root@localhost To: root@localhost MIME-Version: 1.0 Content-Type: text/plain; charset="ANSI_X3.4-1968" Content-Transfer-Encoding: 8bit Date: Wed, 30 Nov 2022 13:16:38 +0900 (JST) From: www-data <www-data@www.srv.world> To: root@localhost Subject: HTTP BLACKLIST 127.0.0.1 mod_evasive HTTP Blacklisted 127.0.0.1 |
Sponsored Link |