推荐阅读:

无情的BUG杀手:京东资深架构师分享:RabbitMQ整体架构以及学习方法​zhuanlan.zhihu.com

无情的BUG杀手:爱了爱了,Spring Cloud Alibaba内部微服务架构笔记真的太牛了​zhuanlan.zhihu.com

无情的BUG杀手:面试大厂必问的JVM+Redis+MySQL+并发+分布式等面试题,含答案​zhuanlan.zhihu.com

摘要

之前有很多朋友提过,当使用docker-maven-plugin打包SpringBoot应用的Docker镜像时,服务器需要开放2375端口。由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵、挖矿、CPU飙升这些情况都有发生,今天我们来聊聊如何解决这个问题。

问题产生的原因

首先我们要明白问题产生的原因,才能更好地解决问题!

Docker为了实现集群管理,提供了远程管理的端口。Docker Daemon作为守护进程运行在后台,可以执行发送到管理端口上的Docker命令。

当我们修改docker.service文件,修改启动命令,加入-H tcp://0.0.0.0:2375时,就会开放2375端口,且没有任何加密和认证过程,这种方式一般用在内网测试环境。如果你的服务器部署在公网上,任何知道你IP的人,都可以管理这台主机上的容器和镜像,想想就觉得可怕。

解决思路

开放远程管理端口后,没有做任何安全保护导致了这个问题。我们只要使用安全传输层协议(TLS)进行传输并使用CA认证即可。

制作证书及秘钥

我们需要使用OpenSSL制作CA机构证书、服务端证书和客户端证书,以下操作均在安装Docker的Linux服务器上进行。

  • 首先创建一个目录用于存储生成的证书和秘钥;
mkdir 

  • 创建CA证书私钥,期间需要输入两次用户名和密码,生成文件为ca-key.pem;
openssl 

  • 根据私钥创建CA证书,期间需要输入上一步设置的私钥密码,生成文件为ca.pem;
openssl 

  • 创建服务端私钥,生成文件为server-key.pem;
openssl 

  • 创建服务端证书签名请求文件,用于CA证书给服务端证书签名,生成文件server.csr;
openssl 

  • 创建CA证书签名好的服务端证书,期间需要输入CA证书私钥密码,生成文件为server-cert.pem;
openssl 

  • 创建客户端私钥,生成文件为key.pem;
openssl 

  • 创建客户端证书签名请求文件,用于CA证书给客户证书签名,生成文件client.csr;
openssl 

  • 为了让秘钥适合客户端认证,创建一个扩展配置文件extfile-client.cnf;
echo 

  • 创建CA证书签名好的客户端证书,期间需要输入CA证书私钥密码,生成文件为cert.pem;
openssl 

  • 删除创建过程中多余的文件;
rm 

  • 最终生成文件如下,有了它们我们就可以进行基于TLS的安全访问了。
ca

配置Docker支持TLS

  • 用vim编辑器修改docker.service文件;
vi 

  • 修改以ExecStart开头的配置,开启TLS认证,并配置好CA证书、服务端证书和服务端私钥,修改内容如下;
ExecStart

  • 重启Docker服务,这样我们的Docker服务就支持使用TLS进行远程访问了!
systemctl 

客户端访问

接下来我们将使用docker-maven-plugin来打包Docker镜像,使用的代码为原来的mall-tiny-docker例子。

  • 直接使用docker-maven-plugin打包试试,由于我们的插件版本有点低,使用新一点版本的Docker会出现如下问题,升级到1.2.2版本解决该问题;
[

  • 修改完版本后打包,发现TLS不再支持http了,需要改用https,修改<dockerHost>配置为https;
[

  • 修改完成后再次打包,继续失败,需要添加对应的客户端证书才能访问;
[

  • 将如下文件复制到指定目录,这里复制到了I:developerenvdocker-ca;
ca

  • 然后将该目录配置在插件的<dockerCertPath>节点下,最终插件配置如下;
<

  • 再次打包镜像,发现已经可以成功打包镜像,从此我们的2375端口终于可以安全使用了!
[

作者:MacroZheng
链接:https://juejin.im/post/6861749836249563143

ubuntu服务器开放端口_Docker服务开放了这个端口,服务器分分钟变肉机相关推荐

  1. Docker服务开放了这个端口,服务器分分钟变肉机

    之前有很多朋友提过,当使用docker-maven-plugin打包SpringBoot应用的Docker镜像时,服务器需要开放2375端口.由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵 ...

  2. 云服务器网无响应,服务器之家教你dns服务器未响应导致无法上网怎么办

    最近服务器之家在逛网页的时候看到有不少的网友在讨论dns未响应的解决方法,然后服务器之家就给网友们进行解答了这个问题,俗话说"独乐乐不如众乐乐",所以,今天服务器之家我就决定也来和 ...

  3. linux系统查看端口对应服务,linux下查找端口号对应的服务名

    根据端口号查找对应的服务名 1)grep -w 端口号 /etc/services 2)grep "\b端口号\b" /etc/services 以2049端口为例,执行grep ...

  4. linux端口对应服务

    计算机系统"端口"是英文 port 的义译,可以认为是计算机与外界通讯交流的出口.其中 硬件领域的端口又称接口,如:USB 端口.串行端口.打印机端口等.软件领域的端口一般 指网络 ...

  5. 介绍Windows Server服务器角色、角色服务和功能

    1.1 服务器角色.角色服务和功能 什么是服务器角色.角色服务和功能? 本部分定义适用于 Windows Server 2008 的术语:角色.角色服务和功能. 角色 Roles是出现Windows ...

  6. 请检查ftp文件服务器是否开启,查看服务器是否开启ftp服务

    查看服务器是否开启ftp服务 内容精选 换一换 已准备用于安装鲲鹏代码迁移工具的x86服务器或者基于鲲鹏916/920的服务器.已安装操作系统,操作系统版本要求请参见鲲鹏开发套件兼容性查询助手.已安装 ...

  7. 华为服务器显示f03报错,win2003服务器f新建ftp服务

    win2003服务器f新建ftp服务 内容精选 换一换 本文以裸金属服务器的操作系统为"CentOS 7.0 64位"为例,采用fdisk分区工具为数据盘设置分区.MBR格式分区支 ...

  8. 阿里云服务器ECS+安心备案服务套餐:低至156.12元

    阿里云服务器ECS+安心备案服务套餐:低至156.12元 现在阿里云服务器的价格越来越便宜了,不过对于初次购买阿里云服务器的用户来说,备案流程是否麻烦,能否成功备案下来是很多用户所关心的,对于有这种担 ...

  9. 使用Arcmap往服务器上发布地图服务

    要在服务器上发布地图服务,只需要在服务器上把ArcGIS server安装好就可以了,然后有服务器的ip地址就可以在别的电脑上往服务器上发布服务了 1.先将地图配置好,然后选择文件菜单栏下的共享为-- ...

  10. 80端口封了怎么办,80端口被屏蔽解决方法

    80端口封了怎么办,要不要采用什么80端口穿透服务?其实80端口被封或被屏蔽可以采用NAT端口映射技术解决,当然,目前NAT123端口映射应用技术也是解决80端口被屏蔽的主要技术手段. 80端口被屏蔽 ...

最新文章

  1. 洛奇6里很喜欢的一段话!洛奇6经典台词!而是你能挨多重,并且坚持向前,你能承受多少并且坚持向前,这样才叫胜利!
  2. 图解选择排序与插入排序
  3. 平面分割 题解(1.16 递推模拟)
  4. 主攻计算机专业英语翻译,湖师大“博导”黄振定,主攻“翻译学”
  5. js 函数实参列表arguments和形参的那点事儿
  6. 阅文推“单本可选新合同”:授权分级、免费或付费自选
  7. 卖肾换来一部iPhone后生活不能自理,那手机电商平台现在卖10块钱!
  8. parentNode,parentElement,offsetParent
  9. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(二)菜单导航
  10. 【2012百度之星/初赛上】小小度刷礼品
  11. spp色散关系 matlab,表面等离极化激元(SPP)基本原理教案分析.ppt
  12. 一拳超人手游显示服务器断开,一拳超人最强之男游戏无法登陆怎么办 解决方案一览...
  13. 破解获取微信小程序源代码
  14. 从0到一开发微信小程序(4)—小程序组件
  15. excel sumif 多条件
  16. word大括号中公式左对齐
  17. 路由器技术彻底解决路由器IP地址冲突问题
  18. 搭建HTTP Live Streaming直播系统
  19. 网络费用报销管理系统的设计与实现
  20. Kotlin GreenDao

热门文章

  1. 在Debian 6 安装pptpd ×××。
  2. 4.数据结构 --- 串
  3. 29.yii2 RBAC
  4. 58. 网络驱动器设备: iSCSI 服务器
  5. 中兴echat_中兴高达震撼发布12款新品 助力专网行业融合发展
  6. MySQL中int(11)最大长度是多少?
  7. Java Web从前端到后台常用框架介绍
  8. Angular 2 ViewChild ViewChildren
  9. 使用jQuery快速高效制作网页交互特效(6)
  10. vim基础学习之自动补全功能