apache2でmod_evasive設定

目的

DOS攻撃対策として apache2でmod_evasive設定 する。

環境

  • debian
  • apache2

モジュール確認・インストール

  • すでにevasiveがインストールされているかどうか確認する
Bash
sudo apache2ctl -M | grep evasive
Bash

以下が表示されればインストール済み

Bash
evasive20_module (shared)
Bash

表示されなければインストール

Bash
sudo apt install libapache2-mod-evasive
Bash

evasive設定

設定ファイルを開く

Bash
sudo nano /etc/apache2/mods-available/evasive.conf
Bash

以下のように修正

  • DOSHashTable
    • 不正アクセスリストに割り当てられるメモリ容量
  • DOSPageCount
    • 同一ページに対して「DOSPageInternal」で設定した時間内(秒)に「DOSPageCount」以上のアクセスがあった場合、不正アクセス対象
  • DOSSiteCount
    • 同一URLに対して「DOSSiteInternal」で設定した時間内(秒)に「DOSSiteInternal」以上のアクセスがあった場合、不正アクセス対象
  • DOSPageInternal
  • DOSSiteInternal
  • DOSBlockingPeriod
    • 最後のアクセスから「DOSBlockingPeriod」(秒)の後に不正アクセス対象リストから除外
  • DOSWhitelist
    • 不正アクセスリストから除外
evasive.conf
<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
    
    DOSWhitelist        127.0.0.1

    #DOSEmailNotify      you@yourdomain.com
    #DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"
    #DOSLogDir           "/var/log/mod_evasive"
</IfModule>
Apache

設定を反映

Bash
sudo systemctrl restart apache2
Bash

動作確認

以下コマンドを実行して403がでたら成功

Bash
for ((i=1; i <= 20; i++)); do curl -I localhost; done
Bash

以上

参考サイト

他の記事はこちら

コメントする