iptables通过评论文本删除规则?

时间:2017-06-06 13:11:07

标签: iptables

我想通过搜索特定的评论来删除特定的IPTable规则。

如果我使用以下方式添加规则:

iptables -I INPUT -p udp -s xxx.xxx.xxx.xx -j DROP -m comment --comment 'DROP RULE'

如何查找规则然后根据评论将其删除?

iptables -L --line-number | grep -i 'drop rule'

应该显示完整规则,有没有办法获取行号并将其传递给iptables -D INPUT x

由于

1 个答案:

答案 0 :(得分:0)

汤姆自己的评论几乎就是答案。假设我们在这里以root用户身份运行以下命令:

iptables -D INPUT $(iptables -L --line-number | grep "DROP RULE" | awk '{print $1}')

我已将其更新为与grep更加具体(匹配大小写)。 如果您有多个规则且带有相同的注释字符串,则可以将其放在循环中,并按照以下步骤将其全部删除,尽管您必须小心并在上一个删除之后获取每个规则的行号,作为该行删除规则后,数字可能会更改:

while iptables -L --line-number | grep "DROP RULE" > /dev/null; do iptables -D INPUT $(iptables -L --line-number | grep "DROP RULE" | head -1 | awk '{print $1}'); done

现在,有些事情要注意。确保您的注释字符串是唯一的,并且仅与您想要的规则完全匹配。像“随处可见”或“已建立”之类的注释可能会删除比您想要的更多的规则。