
作業系統:Ubuntu伺服器18.04
Fail2ban:v0.10.2
我試圖了解我的 Fail2ban 安裝中的一個錯誤(我相信是我自己造成的)。我有一個 cron 作業,它使用預定義列表填充 iptables:
iptables -A INPUT -s <ip address> -j DROP
iptables -A INPUT -s <ip address> -j DROP
etc
etc
在此腳本的開頭,它運行:
iptables -F INPUT
刷新 INPUT 鏈。在我安裝 Fail2ban 來動態禁止不良行為者之前,這個 cron 作業就已經存在於伺服器上。然而,我注意到我開始收到很多通知,指出某個特定 IP 是already banned
.當我停止 iptables cron 作業運行時,此錯誤消失,並且一直運行,沒有任何問題。
iptables -F INPUT
我的問題是:當 Fail2ban 仍在運行時,我運行會產生什麼樣的衝突?這個指令不應該沒問題嗎,因為被禁止的 IP 被放入各自的f2b-<jail>
鏈中,還是我誤解了?如果需要執行此 iptables 腳本,我是否還應該對 Fail2ban 資料庫執行某些操作(清除等)?
謝謝。
答案1
fail2ban 還必須在 INPUT 鏈中放置規則,以調用它為每個監獄定義的鏈。透過刪除這些,您將導致這些規則不適用,並且應該被禁止的 IP 位址仍然可以通過,fail2ban 會透過說它們已經被禁止來警告您。
你不應該有任何理由像這樣刷新 INPUT 鏈。相反,您的 cron 作業應該建立自己的使用者定義鏈,並且僅向 INPUT 鏈添加一條規則來呼叫該使用者定義鏈。更好的是,您應該使用 ipset,它具有更好的性能,並且當您想要更改它時還可以自動交換它。 (出於同樣的原因,您也應該讓fail2ban使用ipsets。)