30秒間隔で100を超えるPOSTリクエストを送信するときにホストを禁止するFail2banフィルタを作成しようとしています。
地域刑務所:
[nginx-postflood]
enabled = false
filter = nginx-postflood
action = myaction
logpath = /var/log/nginx/access.log
findtime = 30
bantime = 100
maxretry = 100
nginx-postflood.conf
[Definition]
failregex = ^<HOST>.*"POST.*
ignoreregex =
GREPを使用して正規表現をテストでき、ホストおよびPOST要求と一致しました。
問題はこれを禁止する点だ。1 つ以上の POST 要求を実行するすべてのホスト。つまり、かかることがない時間を探すまたは最大再試行回数オプションが考慮されます。私が見るにはタイムスタンプの問題のようです。
nginxログの例行:
5.5.5.5 - user [05/Aug/2014:00:00:09 +0200] "POST /auth HTTP/1.1" 200 6714 "http://referer.com" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0"
助けが必要ですか?