Iptables

IPTables 導致與 Fail2Ban 衝突

  • December 23, 2020

作業系統:Ubuntu 伺服器 18.04

Fail2ban:v0.10.2

我正在嘗試了解我的 Fail2ban 安裝的錯誤(我相信是我自己製作的)。我有一個使用預定義列表填充 iptables 的 cron 作業:

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 數據庫做一些事情(清除等)?

謝謝你。

fail2ban 還必須在 INPUT 鏈中放置規則,以呼叫它為每個監獄定義的鏈。通過刪除這些,您將導致這些規則不適用,並且應該被禁止的 IP 地址仍然可以通過,fail2ban 通過說它們已經被禁止來警告您這一點。

您應該沒有任何理由像這樣刷新 INPUT 鏈。相反,您的 cron 作業應該創建自己的使用者定義鏈,並且只向 INPUT 鏈添加一條規則來呼叫該使用者定義鏈。更好的是,您應該使用 ipset,它具有更好的性能,並且在您想要更改它時也可以自動交換。(出於同樣的原因,您也應該讓 fail2ban 使用 ipset。)

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