FreeBSD 15

Apache httpd : mod_evasive を利用する2026/01/19

 

[mod_evasive] モジュールを有効にして、DoS アタック対策を設定します。

[1] [mod_evasive] をインストールして設定します。
root@www:~ #
pkg install -y ap24-mod_evasive
root@www:~ #
vi /usr/local/etc/apache24/httpd.conf
# 182行目 : コメント解除

LoadModule evasive20_module libexec/apache24/mod_evasive20.so
root@www:~ #
vi /usr/local/etc/apache24/Includes/evasive.conf
# 新規作成

<IfModule mod_evasive20.c>
    # ハッシュテーブルサイズ : 値の大きさに応じてパフォーマンス向上 & メモリー消費増
    DOSHashTableSize    3097
    # 同一ページへの DOSPageInterval (以下で設定) 秒あたりのリクエスト数のしきい値
    DOSPageCount        2
    # 同一サイトの DOSSiteInterval (以下で設定) 秒あたりのリクエスト数のしきい値
    DOSSiteCount        50
    # DOSPageCount の間隔 (秒)
    DOSPageInterval     1
    # DOSSiteCount の間隔 (秒)
    DOSSiteInterval     1
    # リクエスト数がしきい値を超えた場合にアクセスをブロックする時間 (秒)
    DOSBlockingPeriod   10
    # ログ保管ディレクトリ
    DOSLogDir           "/var/log/mod-evasive"

    # 必要に応じてコメント解除して設定
    # ブロックした際に設定したメールアドレスへ通知
    #DOSEmailNotify      root@localhost
    # 任意の実行したいコマンドを設定可
    #DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"
</IfModule>

root@www:~ #
mkdir /var/log/mod-evasive

root@www:~ #
chown www:www /var/log/mod-evasive

root@www:~ #
service apache24 reload

[2] Apache httpd に連続アクセスして動作確認します。
root@www:~ #
for i in `seq 1 20`; do curl -I localhost; done

HTTP/1.1 200 OK
Date: Mon, 19 Jan 2026 01:45:01 GMT
Server: Apache/2.4.66 (FreeBSD) OpenSSL/3.5.4
Last-Modified: Mon, 19 Jan 2026 01:33:32 GMT
ETag: "6d-648b3adcc426e"
Accept-Ranges: bytes
Content-Length: 109
Content-Type: text/html

HTTP/1.1 200 OK
Date: Mon, 19 Jan 2026 01:45:01 GMT
Server: Apache/2.4.66 (FreeBSD) OpenSSL/3.5.4
Last-Modified: Mon, 19 Jan 2026 01:33:32 GMT
ETag: "6d-648b3adcc426e"
Accept-Ranges: bytes
Content-Length: 109
Content-Type: text/html

HTTP/1.1 403 Forbidden
Date: Mon, 19 Jan 2026 01:45:01 GMT
Server: Apache/2.4.66 (FreeBSD) OpenSSL/3.5.4
Content-Type: text/html; charset=iso-8859-1

Jan 19 10:45:01 www mod_evasive[2771]: Blacklisting address ::1: possible DoS attack.
HTTP/1.1 403 Forbidden
Date: Mon, 19 Jan 2026 01:45:01 GMT
Server: Apache/2.4.66 (FreeBSD) OpenSSL/3.5.4
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 403 Forbidden
Date: Mon, 19 Jan 2026 01:45:01 GMT
Server: Apache/2.4.66 (FreeBSD) OpenSSL/3.5.4
Content-Type: text/html; charset=iso-8859-1

.....
.....

# ログを設定した場合は 指定尾所へ記録される

root@www:~ #
ls -l /var/log/mod-evasive

total 1
-rw-r--r--  1 www www 5 Jan 19 10:45 dos-::1
関連コンテンツ