IPTables 与 Fail2Ban 发生冲突

IPTables 与 Fail2Ban 发生冲突

操作系统:Ubuntu Server 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 链中放置规则,以调用它为每个 jail 定义的链。通过删除这些规则,您将导致这些规则不适用,并且应该被禁止的 IP 地址仍然可以通过,并且 fail2ban 会警告您,说它们已被禁止。

您不应该有任何理由像这样刷新 INPUT 链。相反,您的 cron 作业应该创建自己的用户定义链,并且只向 INPUT 链添加一条规则来调用该用户定义链。更好的是,您应该使用 ipset,它具有更好的性能,并且在您想要更改它时可以自动交换。(出于同样的原因,您也应该让 fail2ban 使用 ipset。)

相关内容