どの IP も禁止できませんが、正規表現をテストすると、+2000 件の一致があることがわかりました。
> fail2ban-regex '/var/log/nginx/access.log' '/etc/fail2ban/filter.d/bad-request.conf'
Date template hits:
|- [# of hits] date format
| [1172344] Day(?P<_sep>[-/])MON(?P=_sep)Year[ :]? 24hour:Minute:Second(?:\.Microseconds)?(?: Zone offset)?
Lines: 1172344 lines, 0 ignored, 2198 matched, 1170146 missed [processed in 223.96 sec]
これが私の failregex です:
^<HOST> -.*GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\scgi)
私はバージョン0.9を使用しています。
ログ ファイルは次のようになります。
1.39.61.27,151.249.92.71,118.186.70.18,118.186.70.8,192.168.99.251,118.186.70.181,118.186.70.17,118.186.70.112,118.186.70.18,118.186.70.18,192.168.99.251 - "OPTIONS /js/shs/json HTTP/1.1" - [09/Oct/2015:15:33:29 +0800] 200 508 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/43.0.2357.130 Chrome/43.0.2357.130 Safari/537.36" "-"
- - "GET /wp-login.php HTTP/1.1" - [09/Oct/2015:15:33:30 +0800] 200 130761 "-" "-" "-"
確認したところiptables -L
、出力は正常で、禁止された IP はありませんでした。
ログの日付形式が fail2ban 標準に準拠していないのでしょうか? 次にどこを確認すればよいでしょうか?
答え1
ようやく動作するようになりましたが、アクションを次のように設定するのが間違いでした:
action = %(action_mwl)s
メールサーバーがなかった頃のjail.local内で、アクションを調整しました
action = %(action_)s
デフォルトのもので、現在、fail2ban を使用して多くの悪意のあるトラフィックを自動的にブロックしています。次のステップは、それらを永久にブロックすることです。よろしくお願いします。