目的
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
Bashevasive設定
設定ファイルを開く
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以上
参考サイト
他の記事はこちら