Nginx

Fail2Ban 阻塞行為取決於狀態碼

  • July 8, 2019

我正在使用 Fail2Ban 並且已根據需要對其進行了配置。這是從 nginx/error.log 讀取日誌,並根據有關 maxretry 和時間集的配置進行操作。問題是這是否可能根據狀態程式碼有不同的規則?

例如,我想阻止任何人404 Status code在 5 分鐘內獲得 10 ,但阻止任何人獲得 3 403 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

引用自:https://serverfault.com/questions/849854