如何从firewalld ipset 运行时正确删除条目?

如何从firewalld ipset 运行时正确删除条目?

运行 Debian 12

我按照以下方式创建了一个 IPSet:

~$ firewall-cmd --permanent --new-ipset=myipset --type=hash:ip --option=timeout=0
success
~$ firewall-cmd --reload
success
~$ firewall-cmd --permanent --zone=drop --add-source=ipset:myipset
success
~$ firewall-cmd --zone=drop --list-sources
ipset:myipset

我把一个 IP 添加到列表中:

~$ firewall-cmd --ipset=myipset --add-entry=1.2.3.4
success
~$ firewall-cmd --ipset=myipset --get-entries
1.2.3.4

我尝试删除:

~$ firewall-cmd --ipset=myipset --remove-entry=1.2.3.4
success

然而,当我再次检查条目时,该 IP 仍然存在:

~$ firewall-cmd --ipset=myipset --get-entries
1.2.3.4

在永久环境中,该行为按预期工作。这是错误还是预期行为?

还有其他方法可以解决这个问题吗?我正在尝试使用firewalld ipsets进行fail2ban操作,当尝试在同一个监狱内第二次禁止IP时,问题就很明显了。

我希望避免每次执行操作时重新加载firewalld,以减少负载。

相关内容