为什么将docker守护程序绑定到0.0.0.0很容易?

时间:2017-10-14 08:23:11

标签: security docker continuous-integration port

最近我在docker gitlab CI容器中收到错误:

无法连接到Docker守护程序。 docker守护程序是否在此主机上运行?

我在one post suggests找到了这个帖子: sudo service docker stop && sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &

最终我在我的服务器主机上收到了滥用警告,我的盒子是端口扫描到端口2375

我找到了https://hub.docker.com/r/kannix/monero-miner/的实例 杀死它十次并最终重新启动,并且从那以后它没有返回。

This site表示有:

  

思科Docker Engine配置中的漏洞   CloudCenter Orchestrator(CCO;以前的CliQr)可以允许   未经身份验证的远程攻击者用于安装Docker容器   受影响系统的高权限。受影响的产品:这个   漏洞影响Cisco CloudCenter Orchestrator的所有版本   Docker Engine TCP端口2375在其上打开的(CCO)部署   系统并绑定到本地地址0.0.0.0(任何接口)。

所以我的问题是:以上方式(绑定到tcp://0.0.0.0:2375)启动docker守护程序本身是否容易受到攻击(如果是,为什么?)或者它是docker中的错误?

1 个答案:

答案 0 :(得分:2)

“任何接口”意味着您希望docker守护程序侦听所有网络接口上的传入连接,而不仅仅是localhost。这意味着任何可以访问服务器的人都可以连接到端口2375并到达Docker守护程序并利用它。 “高权限”是“root”,因此您的系统受到了损害,应该从头开始重新安装。

解决这个问题的简单方法是,您应该只能从可信主机连接到docker守护程序,这反过来意味着选择要绑定的网络接口。典型的选择是“localhost”,因为它只允许来自机器本身的连接。