最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Ubuntu Overlay怎样配置防火墙规则
时间:2026-07-16 07:59:55 编辑:袖梨 来源:一聚教程网
Ubuntu Overlay 场景的防火墙规则配置

一、先明确 Overlay 类型与边界
- Docker Swarm Overlay:跨主机容器网络,依赖 Swarm 控制面分发网络;通常通过服务发布端口(–publish)对外暴露,内部服务默认仅在 Overlay 内可达。
- Kubernetes/Calico Overlay:在 K8s 中由 CNI(如 Calico)提供数据面,网络策略以 NetworkPolicy/GlobalNetworkPolicy 声明式管理,适合细粒度与大规模场景。
- 云环境注意:除主机防火墙外,还需检查云厂商的安全组/NACL是否放行相关端口(如 VXLAN 4789/UDP)。
二、主机层防火墙 UFW 快速配置
- 基础启用与默认策略
sudo apt updatesudo apt install ufw -ysudo ufw default deny incomingsudo ufw default allow outgoingsudo ufw enable - 仅允许 Overlay 子网访问 SSH(示例子网 10.0.0.0/24)
sudo ufw allow from 10.0.0.0/24 to any port 22 - 仅允许 Overlay 子网访问某服务端口(示例 80/TCP)
sudo ufw allow from 10.0.0.0/24 to any port 80 proto tcp - 查看与维护
sudo ufw status verbosesudo ufw status numberedsudo ufw delete <编号> - 提示:UFW 适合“主机边界”的最小暴露;Overlay 内部的细粒度东西向流量建议交给容器网络策略(Swarm 服务划分或 K8s NetworkPolicy)。
三、主机层 nftables 精细化示例(适合 VXLAN 场景)
- 假设 Overlay 封装接口为 vxlan0,Overlay 网段为 10.0.0.0/24,仅放行 VXLAN 与控制面端口(示例 22/TCP):
sudo apt install nftables -ysudo nft add table inet filtersudo nft add chain inet filter input { type filter hook input priority 0; policy drop; }sudo nft add rule inet filter input iifname "lo" acceptsudo nft add rule inet filter input ct state established,related acceptsudo nft add rule inet filter input udp dport 4789 accept# VXLANsudo nft add rule inet filter input tcp dport 22 accept # SSHsudo nft add rule inet filter input ip saddr 10.0.0.0/24 acceptsudo nft add chain inet filter forward { type filter hook forward priority 0; policy drop; }sudo nft add rule inet filter forward iifname "vxlan0" ip saddr 10.0.0.0/24 ip daddr 10.0.0.0/24 accept - 持久化(按发行版选择其一)
- 使用 nftables-persistent:
sudo apt install nftables-persistent -ysudo netfilter-persistent save - 或手动保存/恢复:
sudo nft list ruleset > /etc/nftables.conf# 重启后sudo nft -f /etc/nftables.conf
- 使用 nftables-persistent:
- 说明:nftables 可基于接口与子网精确放行,便于在承载 Overlay 的主机上实施“白名单式”边界控制。
四、容器网络内的策略控制
Docker Swarm
- 原则:仅将需要对外暴露的服务通过 –publish 发布到主机端口;其余服务默认仅在 Overlay 内可达,减少攻击面。
- 示例:
docker service create --name web --network my_overlay_network --publish 80:80 nginx - 细粒度访问控制建议结合主机/边界防火墙对 Overlay 子网与服务端口 做限制(见第二、三节)。
Kubernetes/Calico
- 原则:使用 NetworkPolicy/GlobalNetworkPolicy 声明式控制 Pod 间 E/W 向 流量,遵循最小暴露。
- 示例(仅允许 default 命名空间访问某服务 80/TCP,其余默认拒绝):
apiVersion: projectcalico.org/v3kind: NetworkPolicymetadata:name: allow-default-to-svcnamespace: defaultspec:selector: app == 'myapp'ingress:- action: Allowsource:namespaceSelector: name == 'default'destination:ports:- protocol: TCPport: 80egress:- action: Allowprotocol: TCPdestination:nets:- 10.0.0.0/16 - 验证:
kubectl get networkpolicy -Akubectl describe networkpolicy allow-default-to-svc -n default - 提示:在 K8s 中优先用 NetworkPolicy 管理东西向流量,主机防火墙主要做节点边界收敛。
五、验证与排障清单
- 查看与连通性
- 查看网络与服务:
docker network ls/inspect my_overlay_networkdocker service ls/ps webkubectl get networkpolicy -A -o yaml - 进入容器验证:
docker exec -it <容器名> bashping <对端IP或服务名>
- 查看网络与服务:
- 常见问题
- 节点未加入 Swarm 导致 Overlay 不通。
- VXLAN 4789/UDP 被主机/云安全组阻断。
- 策略 selector 不匹配导致放行/拒绝结果与预期不符。
- 变更前备份规则并在维护窗口操作,避免与 Docker/K8s 的 iptables/nftables 规则冲突。
相关文章
- 秋蝉漫画免费阅读攻略-秋蝉韩漫SSS级入口地址直达 07-16
- 巨量百应登录入口的官网-巨量百应官网的入口网址 07-16
- 歪漫漫画下载首页登录入口-免注册直接进入的方法 07-16
- AE图片如何添加斜切效果 07-16
- AE如何利用cc pixel polly特效制作文字破碎效果 07-16
- AE CS6怎样设置文字倾斜角度 07-16