温馨提示×

Debian防火墙备份与恢复方法

小樊
39
2025-12-11 04:55:16
栏目: 智能运维

Debian 防火墙备份与恢复方法

一、iptables 与 nftables 的备份与恢复

  • 备份
    • 使用 iptables-save 导出规则到文件(同时处理 IPv4/IPv6):
      • sudo iptables-save > /etc/iptables/rules.v4
      • sudo ip6tables-save > /etc/iptables/rules.v6
    • 使用 nftables 导出当前规则集:
      • sudo nft list ruleset > /etc/nftables.conf
  • 恢复
    • 从备份文件恢复 iptables 规则:
      • sudo iptables-restore < /etc/iptables/rules.v4
      • sudo ip6tables-restore < /etc/iptables/rules.v6
    • 从备份文件恢复 nftables 规则:
      • sudo nft -f /etc/nftables.conf
  • 验证
    • 查看当前规则是否生效:
      • sudo iptables -L -n -v
      • sudo nft list ruleset
  • 说明
    • 以上命令直接作用于运行中的内核规则,适合快速备份/回滚;若需持久化,请结合下一节的持久化方法。

二、持久化与自动恢复

  • 使用 netfilter-persistent(推荐)
    • 安装并保存当前规则:
      • sudo apt-get update && sudo apt-get install netfilter-persistent
      • 安装过程中选择“是”保存当前 iptables 规则;或之后手动保存:
      • sudo netfilter-persistent save
    • 恢复/重载规则:
      • sudo netfilter-persistent reload
  • 使用 UFW 的场景
    • UFW 规则会在启用时写入并管理底层 iptables;若需备份/恢复,优先使用 UFW 自身的配置与状态管理(见下一节)。
  • 说明
    • 通过 netfilter-persistent,系统重启后会自动从 /etc/iptables/rules.v4/etc/iptables/rules.v6 恢复规则,避免丢失。

三、UFW 的备份与恢复

  • 备份
    • 导出规则清单(便于审计与迁移):
      • sudo ufw status numbered > /path/to/backup/ufw-status.txt
    • 备份 UFW 配置目录(包含规则与策略片段):
      • sudo rsync -a /etc/ufw/ /path/to/backup/ufw/
  • 恢复
    • 将备份的配置目录复制回系统:
      • sudo rsync -a /path/to/backup/ufw/ /etc/ufw/
    • 使配置生效:
      • sudo ufw disable && sudo ufw enable
      • 或仅重载:sudo ufw reload
  • 说明
    • UFW 本质是对 iptables/nftables 的封装,直接拷贝规则文件不如使用 UFW 自身的启用/重载流程稳妥。

四、异地备份与快速回滚脚本

  • 本地与远程备份
    • 本地归档:
      • sudo tar czf /backup/firewall-$(date +%F).tgz /etc/iptables /etc/nftables.conf /etc/ufw
    • 远程同步(示例到备份服务器):
      • rsync -avz /etc/iptables/ user@backup:/backup/iptables/
      • rsync -avz /etc/nftables.conf user@backup:/backup/
      • rsync -avz /etc/ufw/ user@backup:/backup/ufw/
  • 快速回滚脚本(iptables 示例)
    • 备份:
      • sudo iptables-save > /root/iptables-rollback-$(date +%F).bak
    • 回滚:
      • sudo iptables-restore < /root/iptables-rollback-YYYY-MM-DD.bak
  • 说明
    • 建议将备份文件纳入版本控制或定期同步到异地存储,保留多个历史版本以便快速回滚。

五、安全操作与常见问题

  • 避免锁死
    • 远程操作(如通过 SSH 22/TCP)时,先确保允许关键端口,再应用更严格的规则;必要时在控制台保留应急通道。
  • 重置为默认
    • iptables 快速清空并放行所有流量(谨慎):
      • sudo iptables -P INPUT ACCEPT
      • sudo iptables -P FORWARD ACCEPT
      • sudo iptables -P OUTPUT ACCEPT
      • sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -F && sudo iptables -X
    • UFW 重置:
      • sudo ufw disable && sudo ufw reset && sudo ufw enable
  • 验证与排错
    • 规则生效后核对:
      • sudo iptables -L -n -v
      • sudo nft list ruleset
      • sudo ufw status verbose
  • 说明
    • 变更前先备份,变更后立即验证,可显著降低误操作风险。

0