描述
当容器端口需要被映射时,Docker
守护进程都会启动用于端口转发的userland-proxy
方式。如果使用了DNAT
方式,该功能可以被禁用
隐患分析
Docker
引擎提供了两种机制将主机端口转发到容器,DNAT
和userland-proxy
。
在大多数情况下,DNAT
模式是首选,因为它提高了性能,并使用本地Linux iptables
功能而需要附加组件。
如果DNAT
可用,则应在启动时禁用userland-proxy
以减少安全风险。
审计方法
$ ps -ef|grep dockerd
或
$ cat /etc/docker/daemon.json|grep userland-proxy
确保userland-proxy
配置为false
修复建议
编辑文件
$ mkdir -p /etc/docker/
$ vi /etc/docker/daemon.json
添加如下内容
"userland-proxy": false,
重载服务
$ systemctl daemon-reload
$ systemctl restart docker
参考文档
- Docker容器最佳安全实践白皮书(V1.0)
- Docker官方文档
网友评论