我已经使用 fail2ban 一段时间了,没有任何问题。
前几天,我决定停止 fail2ban,以便从我的默认 iptables 中删除一条规则。当我启动 fail2ban 时,它启动正常(根据命令:service fail2ban start)。
但是,当我检查 iptables 时,我没有看到添加的 fail2ban 链。我检查了 fail2ban 日志,发现了几个错误,如下所示:
fail2ban.action [32091]: 错误 iptables -w -N f2b- iptables -w -I INPUT -p tcp -m multiport --dports 0:65535 -j f2b- -- stderr: “iptables v1.4.7: 选项
-w' requires an argument\nTry
iptables -h' 或 'iptables --help' 了解更多信息。\niptables v1.4.7: 选项-w' requires an argument\nTry
iptables -h' 或 'iptables --help' 了解更多信息。\niptables v1.4.7: 选项-w' requires an argument\nTry
iptables -h' 或 'iptables --help' 了解更多信息。\n”
从这个日志来看,fail2ban 似乎正在尝试使用-w
不存在的选项运行 iptables。我检查了所有 fail2ban 配置文件,特别是在 action.d 目录下,没有一行包含该-w
选项。这有多奇怪?
我不知道这里发生了什么,因此我无法使用 fail2ban。
我感谢您的帮助。
答案1
该-w
选项不在您的 1.4.7 版 iptables 中,其用法在 /etc/fail2ban/action.d/iptables-common.conf 文件中进行了说明
# Option: lockingopt
# Notes.: Option was introduced to iptables to prevent multiple instances from
# running concurrently and causing irratic behavior. -w was introduced
# in iptables 1.4.20, so might be absent on older systems
# See https://github.com/fail2ban/fail2ban/issues/1122
# Values: STRING
lockingopt = -w
我很想从上面的声明中删除 -w 甚至将其注释掉,看看会发生什么。
检查您的 yum.log 以查看 fail2ban 是否最近更新。如果是,查看它发生的时间,并检查您是否在那时正在运行 yumcron 作业。
答案2
最好的方法是添加:
[初始化] 锁定选项 =
在 /etc/fail2ban/jail.local
-w选项说明:
# Option: lockingopt
# Notes.: Option was introduced to iptables to prevent multiple instances from
# running concurrently and causing irratic behavior. -w was introduced
# in iptables 1.4.20, so might be absent on older systems
# See https://github.com/fail2ban/fail2ban/issues/1122
# Values: STRING
而在 centos 6.7 中,iptable 版本是 1.4.7,因此它不起作用。
更多信息请参见此处:
https://bugzilla.redhat.com/show_bug.cgi?id=1272681 https://github.com/fail2ban/fail2ban/issues/1122