iptables-save
利用iptables-save命令可以将iptable规则保存到一个持久化存储的目录中,不同的系统保存的目录也有所不同(IPv4):
Debian/Ubuntu: iptables-save > /etc/iptables/rules.v4
RHEL/CentOS: iptables-save > /etc/sysconfig/iptables
保存之后,可以通过iptables-restore命令载入(IPv4):
Debian/Ubuntu: iptables-restore < /etc/iptables/rules.v4
RHEL/CentOS: iptables-restore < /etc/sysconfig/iptables
上面是针对IPv5的规则,如果你有使用IPv6的规则,通常需要执行下面对应的IPv6保存和恢复的命令(IPv4:
Debian/Ubuntu: ip6tables-save > /etc/iptables/rules.v6RHEL/CentOS: ip6tables-save > /etc/sysconfig/ip6tables
注意: 这种方式只是保存规则和恢复的一种方式,并不是说保存规则后下次启动就会自动加载。
第一种开机启动方式
Debian/Ubuntu 系统:
iptables-save > /etc/iptables.up.rules
echo -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules' > /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables
一定要记住这点,如果要想系统启动后自动加载请看下面的方式。
第二种开机启动方式:iptables-persistent (Debian/Ubuntu)
从 Ubuntu 10.04 LTS (Lucid) 和 Debian 6.0 (Squeeze) 版本开始,可以通过安装一个名为 “iptables-persistent” 的包,安装后它以守护进程的方式来运行,系统重启后可以自动将保存的内容加载到iptables中。当然前提也是需要先保存规则。
安装
apt-get install iptables-persistent
保存规则
service iptables-persistent save* Saving rules... * IPv4... * IPv6...ls -1 /etc/iptables/rules.v4rules.v6cat /etc/iptables/rules.v4# Generated by iptables-save v1.4.21 on Thu Aug 20 08:59:52 2015*filter:INPUT ACCEPT [5726:774869]:FORWARD ACCEPT [170:27598]:OUTPUT ACCEPT [5467:789045]COMMIT# Completed on Thu Aug 20 08:59:52 2015# Generated by iptables-save v1.4.21 on Thu Aug 20 08:59:52 2015*nat:PREROUTING ACCEPT [23:1596]:INPUT ACCEPT [0:0]:OUTPUT ACCEPT [9:540]:POSTROUTING ACCEPT [0:0]-A POSTROUTING -s 10.0.0.0/16 -o eth0 -j MASQUERADECOMMIT# Completed on Thu Aug 20 08:59:52 2015
RHEL 和 CentOS 保存规则
RHEL/CentOS 提供了简单的方式来持久化存储iptables规则,可以直接通过iptables服务的命令来完成:
chkconfig --list | grep iptablesiptables 0:off1:off2:on3:on4:on5:on6:off# 如果不是开机启动,需要执行下面命令chkconfig iptables on# 保存规则service iptables save
IPv4规则信息会保存到 /etc/sysconfig/iptables 文件中,IPv6 规则保存到 /etc/sysconfig/ip6tables 文件中。 必须执行service iptables save 命令才会保存,保存后系统重启后会自动加载。