我已经运行了fail2ban一段时间,最近安装了iptables-persistent
它并将其与黑名单一起使用ipset
(有一个特定的IP总是在这台机器上进行攻击)。ipset
/持久iptables
性在 Ubuntu 上做了一些工作,但这部分似乎有效。我的问题现在如下:
当我重新启动机器时,我的(相关部分)iptables 如下所示:
Chain INPUT (policy ACCEPT 682 packets, 84744 bytes)
pkts bytes target prot opt in out source destination
347 23254 f2b-sshd tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set blacklist src
347 23254 f2b-sshd tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22
Chain f2b-sshd (2 references)
pkts bytes target prot opt in out source destination
694 46508 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
有了这个,我还注意到即使它清楚地加载了规则文件,它也netfilter-persistent.service
被标记为"loaded failed failed"
。systemctl
我尝试编辑我的fail2ban服务以在netfilter-persistent之后加载,现在netfilter-persistent被标记为"loaded active exited"
...但规则仍然重复(显然f2b创建规则,无论它们是否已经存在)
每次运行iptables-save
删除 f2b 条目时手动编辑此文件可能是一个可以接受的选择(特别是考虑到如果我忘记这样做,后果并不那么严重),但我想知道是否有更好的选择?
答案1
我已经想到了一个解决方案,但在我看来,它......有点黑客。创建以下文件并运行它。它依赖于 f2b 条目(而不是其他条目),所有条目中都有“f2b”,并且该脚本正在运行而不是iptables-save
直接运行......
~/bin£ cat saveFilteredIptables.sh
#!/usr/bin/zsh
sudo iptables-save | perl -ne 'print if !/f2b/'
~/bin£