centos防火墙备份怎么操作
小樊
31
2025-12-17 11:12:55
CentOS 防火墙备份与恢复操作指南
一、先确认使用的防火墙类型
- 查看 firewalld 是否运行:systemctl status firewalld(Active 为 running 表示在用 firewalld)。
- 查看 firewalld 状态:firewall-cmd --state(返回 running/not running)。
- 查看 iptables 当前规则:iptables -nvL(有规则输出说明在用 iptables)。
- 注意:CentOS 7 及以上默认使用 firewalld;若你手动切换到 iptables,备份方法不同。
二、使用 firewalld 的备份与恢复
- 备份步骤
- 备份当前“运行时”配置到永久区(避免丢失最近改动):firewall-cmd --runtime-to-permanent。
- 拷贝配置目录(含所有 zone 与自定义服务):
- 全量备份:cp -a /etc/firewalld /path/to/backup/firewalld-$(date +%F)
- 仅备份区域:cp -a /etc/firewalld/zones /path/to/backup/firewalld-zones-$(date +%F)
- 如有自定义服务:cp -a /etc/firewalld/services /path/to/backup/firewalld-services-$(date +%F)
- 可选:导出默认区域配置到单独文件:firewall-cmd --list-all --permanent > /path/to/backup/zone-$(firewall-cmd --get-default-zone)-$(date +%F).txt。
- 恢复步骤
- 先停止 firewalld:systemctl stop firewalld。
- 恢复配置目录(覆盖前建议先备份现有配置):
- 全量恢复:cp -a /path/to/backup/firewalld-YYYY-MM-DD /etc/firewalld
- 或仅恢复区域:cp -a /path/to/backup/firewalld-zones-YYYY-MM-DD /etc/firewalld/zones
- 启动并加载:systemctl start firewalld && firewall-cmd --reload。
- 说明:firewalld 的配置主要位于 /etc/firewalld/(含 zones/、services/ 与 firewalld.conf)。
三、使用 iptables 的备份与恢复
- 备份步骤
- 备份 IPv4 规则:iptables-save > /path/to/backup/iptables-$(date +%F).rules
- 备份 IPv6 规则(如启用):ip6tables-save > /path/to/backup/ip6tables-$(date +%F).rules
- 传统方式(若系统使用 iptables 服务):service iptables save(会写入 /etc/sysconfig/iptables)。
- 恢复步骤
- 从文件恢复:iptables-restore < /path/to/backup/iptables-YYYY-MM-DD.rules
- IPv6:ip6tables-restore < /path/to/backup/ip6tables-YYYY-MM-DD.rules
- 使用服务方式恢复:service iptables restart(会读取 /etc/sysconfig/iptables)。
- 提示:规则顺序很重要,恢复时按正确顺序导入;确保具备 root 权限。
四、自动化与注意事项
- 建议做法
- 在备份命令中加入时间戳:$(date +%F),便于多版本留存与回滚。
- 备份完成做一次校验:firewalld 可对比 –list-all 输出;iptables 可对比 iptables -S 或 iptables -nvL。
- 变更前先备份,变更后用 firewall-cmd --reload(不中断现有连接)或 systemctl restart firewalld 使配置生效。
- 风险提示
- 远程操作防火墙存在断连风险,建议通过带外管理或先放行 SSH 22/TCP,并在低峰期执行。
- 覆盖 /etc/firewalld/ 前务必先备份现有目录;恢复后及时验证业务连通性。