在 CentOS 7 中使用 Firewallcmd 为 nginx 配置 Fail2ban

在 CentOS 7 中使用 Firewallcmd 为 nginx 配置 Fail2ban

以前我有一个带有 Iptables 的 CentOS 6.5,并且我按照这里的建议为 nginx 配置了一些 jail:如何使用 fail2ban 来管理 Nginx?

但是现在我在 CentOS 7 中,尝试使用新的防火墙和最新的 fail2ban。我知道有一个新的firewallcmd-ipset.conf。但我想知道上述链接的代码应该如何适应新的防火墙和新的 fail2ban。

观察firewallcmd-ipset.conf它似乎也期望变量port和。因此也许只需用name替换就足够简单了。iptables-multiportfirewallcmd-ipset

有什么想法吗?

提前致谢,

答案1

您无需更改任何内容。在 CentOS 7 上,默认配置已包含一个配置位,用于将 fail2ban banaction 设置为firewallcmd-ipset。它位于软件包中fail2ban-firewalld,应该会自动安装。

您只需要确保您没有覆盖banaction配置中的其他地方。

答案2

FirewallD 只是 iptables 的一个包装器,它提供了一种管理规则的简单方法。但是,恕我直言,Firewalld 更适合工作站环境,而不是服务器环境。因此,我建议您采取systemctl以下行动

disable FirewallD

mask Firewalld

enable iptables

然后把相关iptables行动放在你的jail.local

在我以前使用 fail2ban 中的firewalld配置的经验中,我发现配置不会重新加载frewalld,这意味着使fail2ban添加的规则生效。

当我firewall-cmd --reload手动操作时,fail2ban 记录的所有无效 IP 都显示在firewall-cmd --list-all

在这种情况下,使用iptables是您更快的选择,或者您可以修改firewalld-xxxxx配置。

相关内容