iptables配置文件位置全解析(附:linux配置iptables保存/加载实操教程)

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规则(生成配置文件)

  1. 通用保存命令: 保存IPv4规则至指定文件: iptables-save > /etc/iptables/rules.v4(Ubuntu推荐)或iptables-save > /etc/sysconfig/iptables(CentOS推荐); 保存IPv6规则(若启用): ip6tables-save > /etc/iptables/rules.v6;
  2. 发行版专属命令: CentOS/RHEL:service iptables save(自动保存至/etc/sysconfig/iptables); Ubuntu/Debian(安装netfilter-persistent后): netfilter-persistent save(自动保存至/etc/iptables/rules.v4);

2. 加载iptables配置文件(使规则生效)

  1. 通用加载命令: 加载IPv4规则: iptables-restore < /etc/iptables/rules.v4 或 iptables-restore < /etc/sysconfig/iptables; 加载IPv6规则: ip6tables-restore < /etc/iptables/rules.v6;
  2. 发行版专属命令: 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 举报,一经查实,本站将立刻删除。
赞 (0)
拓扑大师的头像拓扑大师普通用户

相关推荐

返回顶部