带有 iptables-persistent 的fail2ban

带有 iptables-persistent 的fail2ban

我已经运行了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£

相关内容