Fail2ban
使用fail2ban重試n次後永久封鎖IP
我有一個如下配置的fail2ban:
- 在 3 次嘗試失敗後阻止 ip
- 300 秒超時後釋放 IP
這非常有效,我想保持這種方式,以便有效使用者有機會在超時後重試登錄。現在,我想實現一個規則,如果相同的 IP 被檢測為攻擊並被阻止,則解鎖 5 次,永久阻止 IP 並且永遠不會再次解鎖。單獨使用fail2ban可以實現這一點,還是我需要編寫自己的腳本來做到這一點?
我在centos中這樣做。
在 0.11 之前,fail2ban 中沒有預設功能或設置來實現這一點。但從即將發布的 0.11 版本開始,禁令時間會自動計算,並隨著每次新的違規行為呈指數增長,從長遠來看,這將意味著或多或少的永久封禁。
在那之前,您最好的方法可能是設置fail2ban 來監控它自己的日誌文件。這是一個兩步過程…
第1步
我們可能需要創建一個過濾器來檢查日誌文件中的BAN(fail2ban 的日誌文件)
第2步
我們需要定義 jail,類似於以下…
[失敗2禁令] 啟用 = 真 過濾器 = fail2ban 行動 = iptables-allports [名稱=fail2ban] 日誌路徑 = /path/to/fail2ban.log # 查找時間:1 天 查找時間 = 86400 #bantime:1年 班時間 = 31536000
從技術上講,它不是永久塊,而只是一年的塊(我們也可以增加)。
無論如何,對於你的問題(這可以通過 fail2ban 單獨實現還是我需要編寫自己的腳本來做到這一點?)……編寫自己的腳本可能會很好。我建議設置腳本以提取經常被禁止的 IP,然後將它們放入其中
/etc/hosts.deny
。