我正在运行iptables
,Debian 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;