首页/安全/安全加固速查/ufw 与 Docker 端口绕过(DOCKER-USER 链)
本包目录(363 条)
主机加固基线90 条
防火墙与访问控制50 条
口令与认证策略55 条服务与端口收敛50 条补丁与漏洞管理50 条日志与审计34 条基线核查命令34 条

ufw 与 Docker 端口绕过(DOCKER-USER 链)

Docker 发布端口时经 nat 表 DNAT 直达容器,绕过 ufw 的 filter 规则——这是最经典的“防火墙开着但端口全网可达”事故现场。

安全加固速查安全更新于 2026-10-12
加固项容器端口暴露面
适用平台Linux(Docker + ufw)
风险等级高
基线DOCKER-USER 链白名单

验证是否绕过

验证是否绕过
sudo iptables -t nat -L DOCKER -n --line-numbers | head
sudo iptables -L DOCKER-USER -n --line-numbers
ss -tulnp | grep docker

在 DOCKER-USER 链做白名单(只放行 10.0.0.0/8 访问 8080)

在 DOCKER-USER 链做白名单(只放行 10.0.0.0/8 访问 8080)
sudo iptables -I DOCKER-USER -p tcp --dport 8080 ! -s 10.0.0.0/8 -j DROP
更彻底的做法是 docker run 时绑定 127.0.0.1:port,让端口不出本机、由反向代理统一对外。

易错点

  • 重启 docker 会重建相关链但保留 DOCKER-USER:规则虽可存活,仍需在 docker 重启后复验
  • 只信 ufw status 会误判:暴露面以另一台机器实际扫描连通性为准

数据来源与参考

  • Docker 官方文档:packet filtering and firewalls
  • ufw-docker 社区项目说明

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌