apache2でmod_evasive設定

  • apache2
  • IT
  • サーバ

目的

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

環境

  • debian
  • apache2

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

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

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

evasive20_module (shared)

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

sudo apt install libapache2-mod-evasive

evasive設定

設定ファイルを開く

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

以下のように修正

  • DOSHashTable不正アクセスリストに割り当てられるメモリ容量

  • DOSPageCount

  • 同一ページに対して「DOSPageInternal」で設定した時間内(秒)に「DOSPageCount」以上のアクセスがあった場合、不正アクセス対象

  • DOSSiteCount

  • 同一URLに対して「DOSSiteInternal」で設定した時間内(秒)に「DOSSiteInternal」以上のアクセスがあった場合、不正アクセス対象

  • DOSPageInternal

  • DOSSiteInternal

  • DOSBlockingPeriod

  • 最後のアクセスから「DOSBlockingPeriod」(秒)の後に不正アクセス対象リストから除外

  • DOSWhitelist

  • 不正アクセスリストから除外

<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>

設定を反映

sudo systemctrl restart apache2

動作確認

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

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

以上

参考サイト

他の記事はこちら