温馨提示×

ubuntu防火墙服务最佳实践

小樊
44
2025-12-08 18:39:52
栏目: 智能运维

Ubuntu 防火墙服务最佳实践

一 基础安全策略与启用顺序

  • 采用最小权限原则:默认拒绝所有入站,默认允许所有出站,仅对必需服务放通端口或来源。
  • 启用前先放行管理通道:务必先允许 SSH(端口 22 或自定义端口),再执行启用,避免被锁在服务器外。
  • 云环境双重防护:在 云服务器 上,流量先经安全组过滤,再到操作系统防火墙;两者是“与”关系,需同时放行。
  • 冲突检查:避免同时运行多个防火墙管理工具(如 UFWfirewalld),以免规则冲突。
  • 启用步骤示例:
    • 设置默认策略:sudo ufw default deny incomingsudo ufw default allow outgoing
    • 放行 SSH:sudo ufw allow OpenSSHsudo ufw allow 22/tcp
    • 启用防火墙:sudo ufw enable
    • 验证状态:sudo ufw status verbose

二 规则设计与常用命令

  • 端口与服务:按服务名放行更直观(ssh/http/https),或按端口/协议精确控制(如 sudo ufw allow 443/tcp)。
  • 端口范围:一次性放通连续端口(如 sudo ufw allow 8000:8005/tcp)。
  • 来源限制:仅允许可信网段或主机访问敏感服务(如数据库),示例:sudo ufw allow from 203.0.113.10 to any port 3306;也可按子网 203.0.113.0/24 控制。
  • 接口绑定:多网卡环境可将规则绑定到指定网卡(如 sudo ufw allow in on eth1 to any port 22)。
  • 删除与回滚:使用带编号的规则列表定位并删除(sudo ufw status numberedsudo ufw delete <编号>);必要时重置(sudo ufw reset)。
  • 变更预览:启用前用 sudo ufw show added 预览待激活规则,降低误操作风险。

三 日志监控与维护

  • 开启与查看日志:开启日志 sudo ufw logging on,UFW 日志默认位于 /var/log/ufw.log;结合 grepjournalctl 做关键字告警与审计。
  • 定期核查与报告:例行检查规则与状态,必要时纳入计划任务(如每日邮件摘要),及时发现异常与漂移。
  • 变更留痕:每次调整后使用 sudo ufw status numbered 复核生效规则,确保与预期一致。

四 云环境与高安全场景

  • 云上优先级:先放行云侧安全组入方向端口,再配置 UFW;两者必须同时允许,业务端口才可到达应用。
  • 纵深防御组合:
    • 对面向公网的 SSH,启用 UFW 的速率限制:sudo ufw limit ssh(或 sudo ufw limit 2222/tcp),缓解暴力破解。
    • Fail2ban 联动,进一步抑制暴力尝试与扫描。
    • 对核心服务(如数据库)仅对内网/管理网段开放,避免公网暴露。
  • 严格出站策略(可选):在更高安全需求场景,可设置默认拒绝出站,再按需逐条放通(如 DNS/NTP/HTTPS 等),降低数据外泄风险。

五 快速参考命令清单

  • 安装与启用
    • 安装:sudo apt update && sudo apt install ufw -y
    • 默认策略:sudo ufw default deny incomingsudo ufw default allow outgoing
    • 放行 SSH:sudo ufw allow OpenSSHsudo ufw allow 22/tcp
    • 启用:sudo ufw enable;状态:sudo ufw status verbose
  • 常用放行
    • Web:sudo ufw allow httpsudo ufw allow https
    • 端口范围:sudo ufw allow 10000:20000/tcp
    • 来源限制:sudo ufw allow from 198.51.100.0/24 to any port 22
    • 接口绑定:sudo ufw allow in on enp1s0 to any port 443
  • 维护与回滚
    • 预览:sudo ufw show added
    • 编号删除:sudo ufw status numberedsudo ufw delete <编号>
    • 重置:sudo ufw reset
    • 日志:sudo ufw logging on;查看:sudo tail -f /var/log/ufw.log

0