原文:http://www.weiruoyu.cn/?p=392


会添加防火墙规则,但是不会删除,在晚上找了一篇文章,感觉很好,转载过来

http://jar-c.blog.163.com/blog/static/116401250201061541150973/

方法二非常管用,

在学IPTABLES 时,看书上只有往链里添加规则,并没有删除规则,而在实际的使用时。删除规则也很常用啊。

在网上找了一下,删除规则的方法:

语法是: iptables -D chain rulenum [options]

其中: chain 是链的意思,就是INPUT FORWARD 之类的

rulenum 是规则的编号。从1 开始。可以使用 --line-numbers 列出规则的编号


所以,例如上面要删除一个INPUT链的规则的话可以这样:iptables -D INPUT 3

意思是删除第3条规则。

还有第二种方法。第二种办法是 -A 命令的映射,不过用-D替换-A。当你的链中规则很复杂,而你不想计算它们的编号的时候这就十分有用了。也就是说,你如何用iptables -A.... 语句定义了一个规则,则删除此规则时就用 -D 来代替- A 其余的都不变即可。

======================

说一下上面的 --line-numbers 选项,如下面的命令:

#iptables -L INPUT --line-numbers 列出INPUT 链所有的规则

num target prot opt source destination
1 REJECT tcp -- anywhere anywhere tcp dpt:microsoft-ds reject-with icmp-port-unreachable
2 REJECT tcp -- anywhere anywhere tcp dpt:135 reject-with icmp-port-unreachable
3 REJECT tcp -- anywhere anywhere tcp dpt:netbios-ssn reject-with icmp-port-unreachable
4 REJECT udp -- anywhere anywhere udp dpt:microsoft-ds reject-with icmp-port-unreachable
5 REJECT udp -- anywhere anywhere udp dpt:135 reject-with icmp-port-unreachable
...
...
删除指定行规则:
[root@localhost rc.d]#
iptables -D INPUT 4

参考:http://www.weiruoyu.cn/?p=392