Answers:
简洁地回答您的问题,否:刷新每个表后将没有任何“剩余”规则。但是,为了更全面,您可能还需要将内置INPUT
和FORWARD
链接的策略设置ACCEPT
为:
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
清除ip6tables规则:
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X
...而且应该这样做。iptables -nvL
应该产生以下(或非常相似的)输出:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
there would not be any "leftover" rules after flushing every table
OP不会刷新每个表。你也没有 如果想要全面了解,这是它的外观。并且您可能想要添加iptables -t "$table" -Z
。请注意,这样可以对表及其链表进行硬编码。因此,我将认真考虑保存-还原解决方案。或者,您可以仅卸载iptables。
这将正确地将iptables系统完全重置为非常基本的状态:
iptables-save | awk '/^[*]/ { print $1 }
/^:[A-Z]+ [^-]/ { print $1 " ACCEPT" ; }
/COMMIT/ { print $0; }' | iptables-restore
所有策略都将重置为ACCEPT并刷新当前使用的每个表。除内置链以外的所有链将不再存在。
iptables
工具明确提供的API,即IMO。
print $1
用print $0
是一致的:)
每当我需要禁用防火墙时,都是这样的:
iptables-save > iptables.bak
service iptables stop
(我在浅顶软呢帽上)您可以iptables
从内核中卸载模块:
modprobe -r iptable_raw iptable_mangle iptable_security iptable_nat iptable_filter
UPD不幸的是,太好了,难以置信。只要表中存在规则或用户定义的链,则相应模块的引用计数为1,并且会modprobe -r
失败。您可以像这样删除规则和用户定义的链:
echo $'*raw\nCOMMIT\n*mangle\nCOMMIT\n*security\nCOMMIT\n*nat\nCOMMIT\n*filter\nCOMMIT' | iptables-restore
要么:
iptables-save | awk '/^[*]/ { print $1 "\nCOMMIT" }' | iptables-restore
另外,您可能希望以这种方式卸载模块(不对模块名称进行硬编码):
lsmod | egrep ^iptable_ | awk '{print $1}' | xargs -rd\\n modprobe -r
从好的方面来说,这之后iptables-save
会产生不错的空输出:)
一个人可以用1或2个命令执行此操作:
$ sudo iptables-save > iptables.bak
$ sudo iptables -F
结果:
$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 3138 packets, 5567K bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 3602 packets, 6547K bytes)
pkts bytes target prot opt in out source destination
我最近不得不阻止所有连接,最终我要做的是
iptables-policy INPUT DROP
iptables-policy OUTPUT DROP
iptables-policy FORWARD DROP
至于保存,我建议以下
Ubuntu:
/etc/init.d/iptables save
/sbin/service iptables save
RedHat / CentOS:
/etc/init.d/iptables save
/sbin/iptables-save
除了备份所有当前的ufw规则外,Ive过去也使用过此规则
cp /lib/ufw/{user.rules,user6.rules} /<BACKUP LOCATION>
cp /lib/ufw/{user.rules,user6.rules} ./
我认为这可能对将来的参考很有用。以为我会分享。