Nginx
Fail2Ban 阻塞行為取決於狀態碼
我正在使用 Fail2Ban 並且已根據需要對其進行了配置。這是從 nginx/error.log 讀取日誌,並根據有關 maxretry 和時間集的配置進行操作。問題是這是否可能根據狀態程式碼有不同的規則?
例如,我想阻止任何人
404 Status code
在 5 分鐘內獲得 10 ,但阻止任何人獲得 3403 Status code
。任何幫助將不勝感激,在此先感謝。
您應該添加一個
/etc/fail2ban/filter.d/
具有相關名稱的過濾器 - 例如nginx-{403,404}.conf
。它們應該包含類似於以下幾行的內容:
nginx-403.conf :
[Definition] failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*" 403 ignoreregex =
nginx-404.conf :
[Definition] failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*" 404 ignoreregex =
然後你應該從你的 jail.conf 或你的 conf 文件中呼叫它們:
對於 403 :
[nginx-403] enabled = true port = http,https filter = nginx-403 logpath = /var/log/nginx/access.log maxretry = 5 findtime = 300
對於 404 :
[nginx-404] enabled = true port = http,https filter = nginx-404 logpath = /var/log/nginx/access.log maxretry = 10 findtime = 300