您当前的位置:首页 > 网站建设 > 网站维护
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery |

Docker暴露2375端口导致服务器被攻击问题及解决方法

51自学网 2022-07-04 11:43:26
  网站维护

相信了解过docker remote API的同学对2375端口都不陌生了,2375是docker远程操控的默认端口,通过这个端口可以直接对远程的docker daemon进行操作。

当$HOST主机以docker daemon -H=0.0.0.0:2375方式启动daemon时,可以在外部机器对$HOST的docker daemon进行直接操作:

docker -H tcp://$HOST:2375 ps

好,说说如何“入侵”,怎么通过这个端口入侵宿主机呢?

这个应该要从几个点说起吧:
1. docker对user namespace没有做隔离,也就是说,容器内部的root用户就是宿主机的root用户,一旦挂载目录,就可以在容器内部以宿主机的root用户身份对挂载的文件系统随意修改了。

  • docker服务拥有很高的执行权利(相当于root),并且在docker用户组下的普通用户不需要任何其他验证就可以执行docker run等命令。
  • 暴露的docker remote API端口如果没有启动ssl验证的话,任何能连通到这台docker宿主机的的机器都可以随意操作这台docker宿主机的docker daemon(docker run、docker ps、docker rm等等这些命令都不在话下)。

结合以上3点,就基本具备入侵docker宿主机的条件了

讲得似乎有点悬,不多说,直接拿一个活鲜鲜的例子来讲吧:

(请允许我用最近新学的一道菜将流程带过
下载地址:
浅析SpringBoot打包上传到docker并实现多实例部署(IDEA版)
CentOS下宝塔部署Django项目的详细教程

51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1