安全加固Linux内核参数对容器平台的影响评估
在运行 Overlay 网络(VXLAN、IPIP、Geneve 等)的容器主机(K8s Node 或 Docker Swarm Node)上,为了隧道能够正常建立、转发和封装/解封装流量,以下内核参数必须保持“打开”状态,不能随意禁用,否则会导致跨主机容器网络中断。
表格
复制
类别 | 关键内核参数 | 作用/后果(若被禁用) |
---|---|---|
IP 转发 | net.ipv4.ip_forward = 1 | 宿主机无法在不同网络命名空间/网卡间转发包,Overlay 隧道直接失效 。 |
VXLAN 需求 | net.ipv4.conf.all.udp_port_range | 需要 8472/4789 等 UDP 端口能收发 VXLAN 报文。 |
IPIP 需求 | net.ipv4.conf.all.accept_local = 1 (部分场景) | 允许本机发给自己隧道接口,否则 Calico IPIP 模式不通 。 |
ICMP 重定向 | net.ipv4.conf.*.accept_redirects = 1 | 必须保持启用;Overlay 隧道网关常通过 ICMP 重定向更新下一跳,一旦关闭会导致跨子网路由黑洞。 |
ARP/ND 代理 | net.ipv4.conf.*.proxy_arp = 1 (Flannel host-gw/ipip 场景) | 宿主机需代答 ARP,否则跨节点 ARP 解析失败。 |
反向路径过滤 | net.ipv4.conf.*.rp_filter = 0/2 (视 CNI 而定) | 若设为 1(严格模式),隧道封装后的源地址校验会丢包。Calico/Flannel 建议 0 或 2 。 |
小结
禁止关闭的参数:
net.ipv4.ip_forward
、net.ipv6.conf.all.forwarding
、net.*.accept_redirects
。需要根据 CNI 保持开启的参数:
accept_local
、proxy_arp
、rp_filter
等,具体值参考所用网络插件官方文档。
在加固脚本或合规检查中,应显式排除上述参数,避免“一刀切”式地全部设置为 0 或禁用,否则 Overlay 网络将直接不可用。
上面是根据经验已经AI回复,综合评估,算是比较中肯的结论。
IP转发肯定不能关
ICMP重定向,视情况也要保持开启
反向路径过滤,视情况也要保持开启