从 iptables 中删除源为 X 的内容

从 iptables 中删除源为 X 的内容

我正在运行iptablesDebian 8需要对某些规则进行一些动态调整。

所以我正在寻找一种方法来做类似的事情:

iptables -D WHERE -s = x.y.z

所以我可以从源 ip 与 xyz 匹配的位置删除所有规则,iptales而不需要知道它是 iptales 中的哪一行。

答案1

抱歉,您的防火墙是基于规则的,默认命令行界面实际上无法使用模式匹配来直接删除许多不同的规则。

我将使用iptables-save中间步骤来获取您当前的运行配置并对其进行模式匹配,替换Add 为删除命令:

iptables-save | grep -- '-s ip-address/prefix' | sed s/^-A/-D/ |xargs iptables

答案2

如果您必须查找和修改单个规则,HBruijn 的解决方案就很好用。要用选定的 IP 地址替换所有规则,我会使用类似下面的方法:

iptables-save | grep -e '-s x.x.x.x/zz' | sed 's/-A/-D/' | while read i; do iptables $i; done;

相关内容