我使用iptables模块geoip只允许来自某些国家的通信和一般的fail2ban阻止扫描。
我知道fail2ban本身管理其规则的持久性。现在,我还希望使用iptables-persistent来保持geoip规则的持久性。
我(潜在的)问题:当iptables-persistent恢复规则时,它使用iptables-restore < /etc/iptables/rules.v4而不使用-n选项,这意味着所有现有规则都将被覆盖。
我现在担心,在系统启动时,fail2ban正在恢复其规则,而iptables-restore则覆盖所有内容。
目前,我已经将-n选项设置为/usr/share/netfilter-persistent/plugins.d/15-ip4tables,这将由iptables-persistent调用,但是修改包管理的一些脚本是不可能的,因为它可能会被更新覆盖。
是否有一种安全或标准的方法来恢复iptables规则,而不会与启动fail2ban服务发生潜在冲突?或者是否保证iptables-restore将在fail2ban启动之前运行?
发布于 2020-04-27 12:52:01
目前,我已经将-n选项
当然,您可以使用iptables-restore --noflush ...来避免从fail2ban (或其他服务)中删除规则。只需注意规则的顺序(fail2ban会在输入链中的其他规则之前插入规则,因此如果以后必须预先插入其他规则,那么使用服务依赖项就必须这样做)。
但是修改包管理的一些脚本是不可能的,因为它可以被更新覆盖。
通常,每个提供iptable规则的服务都应该只操作自己创建的规则和链。如果某些服务在运行时完全刷新iptable,我会说,这是错误的设计概念化(并且应该修复)。
或者,它是否保证iptables还原将在fail2ban启动之前运行?
您必须为fail2ban服务添加一个依赖项以保证这一点。
或者,您可以尝试使用真实的表切换到更好的网络过滤器(例如nftables)。如果有任何服务开始刷新整个列表(删除每个表),则可能会遇到同样的问题。
https://serverfault.com/questions/1014134
复制相似问题