温馨提示×

Debian Overlay怎样配置防火墙

小樊
37
2025-11-22 23:29:40
栏目: 智能运维

Debian 主机上配置防火墙以适配 Docker Swarm Overlay 网络

先明确 Overlay 所指

  • 若你指的是容器编排中的 Docker Swarm Overlay 网络(跨主机容器通信),需要放行控制面与数据面端口,并确保节点间互通。
  • 若你指的是 OverlayFS(联合文件系统,用于容器镜像/层叠存储),它与网络无关,无需为此配置防火墙。

Docker Swarm Overlay 所需端口与方向

  • 控制面与管理(所有 Swarm 节点)
    • TCP 2377:Swarm 管理通信
    • TCP/UDP 7946:节点间 gossip 通信
    • UDP 4789:VXLAN 数据面(Overlay 隧道)
  • 可选:Ingress 网络(发布端口到外部时)
    • TCP 30000–32767:Swarm 的 ingress 端口范围(仅在需要对外发布服务端口时放行)
  • 管理面建议仅对 管理网段 开放,数据面(7946/4789)按需对 集群节点网段 开放。

在 Debian 上用常见防火墙工具放行

  • 使用 UFW(适合快速配置)
    • 基本策略与常用端口
      • sudo ufw default deny incoming
      • sudo ufw default allow outgoing
      • sudo ufw allow 22/tcp # SSH
      • sudo ufw allow 2377/tcp # Swarm 管理
      • sudo ufw allow 7946/tcp,7946/udp
      • sudo ufw allow 4789/udp
      • 如需对外发布端口:sudo ufw allow 30000:32767/tcp
    • 启用与检查
      • sudo ufw enable
      • sudo ufw status verbose
  • 使用 nftables(Debian 新版本推荐)
    • 保存并启用规则(示例)
      • sudo nft add rule ip filter input tcp dport 2377 accept
      • sudo nft add rule ip filter input tcp dport 7946 accept
      • sudo nft add rule ip filter input udp dport 7946 accept
      • sudo nft add rule ip filter input udp dport 4789 accept
      • sudo nft add rule ip filter input tcp dport 30000-32767 accept # 可选
      • sudo nft add rule ip filter input tcp dport 22 accept
      • sudo nft list ruleset
      • sudo systemctl enable --now nftables
  • 使用 iptables(传统方式)
    • 放行示例
      • sudo iptables -A INPUT -p tcp --dport 2377 -j ACCEPT
      • sudo iptables -A INPUT -p tcp --dport 7946 -j ACCEPT
      • sudo iptables -A INPUT -p udp --dport 7946 -j ACCEPT
      • sudo iptables -A INPUT -p udp --dport 4789 -j ACCEPT
      • sudo iptables -A INPUT -p tcp --dport 30000:32767 -j ACCEPT # 可选
      • sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    • 持久化(Debian 常用做法)
      • sudo iptables-save | sudo tee /etc/iptables/rules.v4
      • 启用持久化服务或写入网卡启动脚本以确保重启后生效。

验证与常见问题

  • 节点互通与端口可达性
    • 管理面:nc -vz <管理IP> 2377
    • Gossip:nc -vzu <节点IP> 7946
    • VXLAN:nc -vzu <节点IP> 4789
    • Ingress:nc -vz <节点IP> 30000-32767(仅当有外部发布端口时)
  • 常见原因与排查
    • 云厂商安全组/ACL 未放行对应端口(与系统防火墙叠加生效,需同时检查两端)。
    • 节点时间不同步导致 TLS/握手异常(建议启用 NTP 同步)。
    • 防火墙规则顺序不当导致被默认拒绝(确认 ACCEPT 规则在 DROP/REJECT 之前,或使用状态匹配如 conntrack)。
    • 误把 OverlayFS 当作网络问题排查(它不影响网络连通性)。

0