我在 RHEL 8 上使用 Firewalld 运行 fail2ban。根据 fail2ban 日志(DEBUG 级别),它会阻止 IP 地址且没有任何错误,但实际上 Firewalld 和 nftables 中没有这样的规则。
在jail.local
配置文件中我已设置banaction
为firewallcmd-ipset
和。banaction_allports
firewallcmd-ipset[actiontype="<allports>"]
我在 fail2ban 和防火墙日志文件中均未看到任何错误消息。此外,在阻止 IP 时会向我正确发送电子邮件。
在firewallcmd-common.conf
配置文件中,我已将区域选项更改为防火墙中自定义区域的名称。
有谁知道问题可能是什么或我可以在哪些其他日志文件中查找错误?
答案1
但实际上firewalld和nftables中没有这样的规则。
“这样的规则”到底是什么意思?
操作firewallcmd-ipset将添加规则并创建 ipset如果它启动操作(自 fail2ban 版本 0.10 以来,这是根据第一次禁令按需发生的)。
然后firewallcmd-ipset 将在此 ipset 中添加一个条目对于每个被禁止的 IP。
如果您在firewalld列表中没有看到该规则,那么可能是:
- 被某些东西删除或刷新(例如某些服务从头开始重新创建防火墙规则)
- 操作启动时会发生一些错误(在启动 fail2ban 后第一次禁止此监狱时,请参阅 fail2ban.log),例如,如果某些自定义设置不兼容
要查看 fail2ban 操作在您的情况下执行了哪些命令(例如您也可以在 shell 中尝试它们),您可以转储 fail2ban 配置:
fail2ban-client -d | grep "$jail"
# pretty dump in new version (>= 0.10):
fail2ban-client --dp