iptables是Linux系统核心防火墙工具,其配置文件位置因Linux发行版(如CentOS、Ubuntu)不同存在差异,且默认配置分“临时生效”与“永久生效”两类,直接影响规则是否能跨重启保留。本文详细说明各系统下iptables配置文件的默认位置、配置保存/加载方法、文件格式及实操注意事项,助力运维人员精准管理防火墙规则。
一、不同Linux发行版的iptables默认配置文件位置
iptables本身无统一默认配置文件,需通过工具保存规则至文件,不同发行版的“永久配置文件”默认路径不同,核心分两类:
1. CentOS/RHEL系列(CentOS 6/7/8、RHEL 6/7/8)
该系列系统默认将iptables规则保存至
/etc/sysconfig/iptables,同时存在备份文件与模块配置文件,具体如下:-
核心配置文件:
/etc/sysconfig/iptables(永久生效规则,手动编辑或通过service iptables save命令生成); -
备份文件:
/etc/sysconfig/iptables.save(部分系统默认备份,规则变更后自动生成,可用于恢复); -
模块配置文件:
/etc/sysconfig/iptables-config(配置iptables模块加载参数,如默认保存的表、模块路径等); -
注意点:CentOS 7及以上默认防火墙为firewalld,若已禁用firewalld启用iptables,需手动安装iptables-services包(
yum install iptables-services -y),才能生成上述配置文件。
2. Ubuntu/Debian系列(Ubuntu 16.04+/Debian 8+)
该系列系统默认无
/etc/sysconfig/iptables,需通过iptables-save命令手动指定保存路径,常用默认路径如下:-
推荐保存路径:
/etc/iptables/rules.v4(IPv4规则,官方推荐路径,需手动创建目录); -
IPv6规则路径:
/etc/iptables/rules.v6(若启用IPv6防火墙,单独保存IPv6规则); -
历史兼容路径:部分老系统可能使用
/etc/iptables.up.rules(需通过脚本加载,现已逐步淘汰); -
注意点:Ubuntu/Debian默认不自动保存iptables规则,重启后规则会丢失,需手动配置保存脚本或通过netfilter-persistent工具实现规则持久化。
3. 其他发行版(如SUSE、Fedora)
-
SUSE Linux:默认配置文件为
/etc/sysconfig/iptables,与CentOS系列一致,可通过rcSuSEfirewall2 save命令保存规则; -
Fedora:默认防火墙为firewalld,禁用后启用iptables,配置文件路径同CentOS(
/etc/sysconfig/iptables),需安装iptables-services包。
4. 临时规则与永久规则的区别
需注意:通过
iptables -A等命令直接添加的规则为“临时规则”,仅存于内存,重启后失效;只有保存至上述配置文件中的规则,才是“永久规则”,重启后自动加载。二、iptables配置的保存与加载实操(全系统通用)
无论哪种发行版,均可通过
iptables-save(保存)和iptables-restore(加载)命令操作配置文件,实操步骤如下:1. 保存当前iptables规则(生成配置文件)
-
通用保存命令: 保存IPv4规则至指定文件:
iptables-save > /etc/iptables/rules.v4(Ubuntu推荐)或iptables-save > /etc/sysconfig/iptables(CentOS推荐); 保存IPv6规则(若启用):ip6tables-save > /etc/iptables/rules.v6; -
发行版专属命令: CentOS/RHEL:
service iptables save(自动保存至/etc/sysconfig/iptables); Ubuntu/Debian(安装netfilter-persistent后):netfilter-persistent save(自动保存至/etc/iptables/rules.v4);
2. 加载iptables配置文件(使规则生效)
-
通用加载命令: 加载IPv4规则:
iptables-restore < /etc/iptables/rules.v4或iptables-restore < /etc/sysconfig/iptables; 加载IPv6规则:ip6tables-restore < /etc/iptables/rules.v6; -
发行版专属命令: CentOS/RHEL:
service iptables restart(重启iptables服务,自动加载配置文件); Ubuntu/Debian(安装netfilter-persistent后):netfilter-persistent reload(重新加载配置文件,无需重启服务);
3. 配置开机自动加载规则
确保重启系统后规则自动生效,需配置开机加载:
-
CentOS/RHEL: 启用iptables服务开机自启:
systemctl enable iptables(CentOS 7+)或chkconfig iptables on(CentOS 6); -
Ubuntu/Debian: 安装netfilter-persistent工具(自动配置开机加载):
apt install netfilter-persistent -y,安装后自动关联配置文件,开机无需手动加载; -
通用手动配置(适用于所有系统): 将加载命令添加至
/etc/rc.local文件(需确保文件可执行):echo "iptables-restore < /etc/iptables/rules.v4" >> /etc/rc.local,重启后自动执行。
三、iptables配置文件格式说明(读懂规则结构)
iptables配置文件为文本格式,记录了防火墙规则的链、匹配条件、目标动作等信息,核心格式如下(以CentOS
/etc/sysconfig/iptables为例):
# Generated by iptables-save v1.4.21 on Thu Dec 25 10:00:00 2025 *filter # 指定表(filter表,默认过滤表) :INPUT ACCEPT [0:0] # 定义INPUT链默认策略为ACCEPT,[数据包计数:字节计数] :FORWARD ACCEPT [0:0] # FORWARD链默认策略 :OUTPUT ACCEPT [0:0] # OUTPUT链默认策略 -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT # 允许已建立连接的数据包 -A INPUT -p icmp -j ACCEPT # 允许ICMP协议(ping命令) -A INPUT -i lo -j ACCEPT # 允许回环接口(localhost) -A INPUT -p tcp -m tcp –dport 22 -j ACCEPT # 允许22端口(SSH) -A INPUT -j REJECT –reject-with icmp-host-prohibited # 拒绝其他所有INPUT数据包 -A FORWARD -j REJECT –reject-with icmp-host-prohibited COMMIT # 提交规则 # Completed on Thu Dec 25 10:00:00 2025
关键说明:① 开头
*表名指定规则所属表(filter、nat、mangle等);② :链名 策略 [计数]定义链的默认策略;③ -A 链名 匹配条件 -j 目标动作为具体规则;④ 结尾COMMIT表示提交规则,缺一不可。四、iptables配置文件操作注意事项(避坑指南)
-
1. 修改配置文件前必备份:修改前先备份原配置文件,如
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak,避免规则错误导致无法远程连接(尤其是SSH端口被误封),可通过备份文件恢复:iptables-restore < /etc/sysconfig/iptables.bak。 -
2. 手动编辑文件后需加载生效:直接编辑配置文件(如
vim /etc/iptables/rules.v4)后,需执行加载命令(iptables-restore < 配置文件路径),否则规则不生效。 -
3. 避免默认策略误设为DROP:新手配置时,若将INPUT链默认策略设为DROP,且未开放SSH端口,会导致远程连接中断,需本地终端修改恢复。
-
4. 注意配置文件权限:配置文件建议设置权限为600(
chmod 600 /etc/sysconfig/iptables),仅root用户可读写,避免普通用户误修改。 -
5. CentOS 7+需先禁用firewalld:若CentOS 7+同时启用firewalld和iptables,会导致规则冲突,需先禁用firewalld:
systemctl stop firewalld && systemctl disable firewalld,再启用iptables。
五、总结
iptables配置文件位置核心分两类:CentOS/RHEL系列默认
/etc/sysconfig/iptables,Ubuntu/Debian系列推荐/etc/iptables/rules.v4。关键是区分“临时规则”与“永久规则”,通过iptables-save/iptables-restore命令实现规则的保存与加载,并配置开机自启,确保规则跨重启生效。操作时务必备份配置文件,避免规则错误导致业务中断,新手建议先在测试环境验证规则,再应用到生产环境。
更多iptables规则配置技巧、故障排查攻略,记得关注【其其网www.qiqicto.com】!后续还会更新iptables常用规则模板、端口放行/封禁实操,感兴趣就常来逛呀~
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 qiqicto@qq.com 举报,一经查实,本站将立刻删除。