操作系统: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。)