温馨提示×

Ubuntu防火墙怎样更新策略以适应新需求

小樊
48
2026-01-05 06:01:03
栏目: 智能运维

Ubuntu 防火墙更新策略实操指南

一、变更前的安全准备

  • 备份当前规则与配置,便于快速回滚:
    • 备份规则集:sudo iptables-save > /root/iptables-$(date +%F).bak
    • 备份 UFW 配置与用户规则:sudo cp -a /etc/ufw /root/ufw-$(date +%F).bak
  • 先用试运行检查将要执行的改动,避免误伤生产:
    • UFW 试运行:sudo ufw --dry-run enable
    • 查看带编号的规则,确认目标条目:sudo ufw status numbered
  • 调整前务必先放行关键管理通道(如 SSH 22/TCP),再启用或重载规则,防止被锁:
    • 放行 SSH:sudo ufw allow ssh 或 sudo ufw allow 22/tcp
  • 生产环境建议在维护窗口操作,并准备回滚方案(如云控制台的 VNC/串行控制台 或本地终端)。

二、UFW 场景化更新步骤

  • 启用与默认策略
    • 启用:sudo ufw enable
    • 默认拒绝入站、允许出站:sudo ufw default deny incoming;sudo ufw default allow outgoing
  • 新增或调整规则(按需选择其一或组合)
    • 按端口/协议:sudo ufw allow 80/tcp;sudo ufw allow 443/tcp
    • 按服务名:sudo ufw allow http;sudo ufw allow https
    • 按来源 IP/子网:sudo ufw allow from 203.0.113.10;sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
    • 按网络接口:sudo ufw allow in on eth1 to any port 3306
    • 端口范围:sudo ufw allow 10000:20000/tcp
    • 限速防暴力:sudo ufw limit ssh(默认每分钟 6 次),或 sudo ufw limit 22/tcp rate 10/minute
  • 使配置生效
    • 动态生效:sudo ufw reload
    • 若需重启守护进程:sudo systemctl restart ufw(一般无需重启)
  • 删除或替换规则
    • 按编号删除:sudo ufw status numbered → sudo ufw delete <编号>
    • 按规则删除:sudo ufw delete allow 80/tcp
    • 调整顺序/插入:sudo ufw insert 3 allow 443/tcp(将新规则插入到第 3 条前)
  • 高级与全局配置
    • 日志:sudo ufw logging on;sudo ufw logging medium;日志路径 /var/log/ufw.log
    • 应用配置:sudo ufw app list;sudo ufw allow “Apache Full
    • 配置文件:/etc/ufw/before.rules、after.rules、before6.rules、after6.rules;/etc/default/ufw 可控制 IPv6 与默认策略。

三、从 UFW 切换到 nftables 或 iptables 原生管理

  • 若需更细粒度或更高性能,可迁移到 nftables/iptables 原生规则集:
    • 保存现有 UFW 规则:sudo ufw status verbose 核对;必要时用 iptables-save 备份当前表
    • 关闭并重置 UFW:sudo ufw disable;sudo ufw reset(会清空规则并关闭防火墙)
    • 切换到 nftables(Ubuntu 20.04+ 常见):
      • 编写 /etc/nftables.conf(示例:inet filter input/output forward 表与链、放行 lo、已建立/相关、ICMPv6 邻居发现、以及需要开放的端口)
      • 启用:sudo systemctl enable --now nftables
    • 或继续使用 iptables:
      • 使用 iptables-restore 从备份恢复规则集:sudo iptables-restore < /root/iptables-2025-08-01.bak
      • 持久化:Debian/Ubuntu 常见做法为安装 iptables-persistent 并在保存后自动加载
  • 迁移后务必逐项验证:关键业务端口、管理通道、内外网隔离策略、日志与监控告警。

四、变更后的验证与回滚

  • 快速验证
    • 状态与规则核对:sudo ufw status verbose;必要时 sudo ufw status numbered
    • 连通性测试:ss -lntp | grep -E ‘(:80|:443|:22)’; curl -Iv http://localhost
    • 外部连通性:从可信网络测试 22/80/443 等端口;必要时使用 nc/telnet 验证
    • 日志审计:sudo tail -f /var/log/ufw.log | grep “UFW BLOCK”;或 sudo journalctl -t ufw -e
  • 回滚方案
    • UFW:sudo ufw disable;sudo ufw reset;或从备份恢复 /etc/ufw 后 sudo ufw enable
    • nftables/iptables:用已保存的规则文件快速恢复(nft -f /etc/nftables.conf 或 iptables-restore < backup.bak)
  • 变更记录
    • 记录变更单:时间、操作者、变更前后规则摘要、验证结果、回滚步骤与联系人。

0