毎回設定を忘れるのでメモ
filter
$ vi /etc/fail2ban/filter.d/apache-ddos.conf [Definition] failregex = <HOST>.*"(HEAD|GET|POST).* ignoreregex = \.(?i)(jpe?g|gif|png|bmp|pdf|js|css|woff|eot|ttf|ico|txt|xml|swf|xlsx?|docx?|pptx?) \/wp-admin.*
banする条件
$ vi /etc/fail2ban/jail.d/local.conf [apache-ddos] enabled = true port = http,https # フィルタ名 filter = apache-ddos # 監視するログ名 logpath = /var/log/httpd/ssl/www*_access_log # 許容する接続回数 # 5回以上不正に接続するとBANされる maxretry = 5 # 不正アクセスカウント時間 # 80秒(80) findtime = 360 # BANした後、再び接続できるようになるまでの時間(秒) # 86400秒 = 1日 bantime = 86400 backend = polling
自分のIPは除外
$ vi /etc/fail2ban/jail.conf [DEFAULT] # # MISCELLANEOUS OPTIONS # # "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not # ban a host which matches an address in this list. Several addresses can be # defined using space (and/or comma) separator. ignoreip = 127.0.0.1/8 xxx.xxx.xxx.xxx/32
設定の有効化・チェック
$ systemctl reload fail2ban $ fail2ban-regex /var/log/httpd/ssl/www.example.com_access_log /etc/fail2ban/filter.d/apache-ddos.conf ← フィルターのチェック $ fail2ban-client status apache-ddos ← banされたIPアドレスの確認 $ less /var/log/fail2ban.log ← fail2banのログの確認