Docker容器–TLS安全管理

一、Docker remote api 访问
Docker的远程调用API接口存在未授权访问的漏洞,至少也应该限制外网访问,这里配置使用Socket方式访问。
这里我们使用centos7 ip:192.168.100.101作为被访问方;
centos7 ip:192.168.100.100作为远程调用方。
使用

docker -d -H unix:///var/run/docker.sock -H tcp://192.168.100.101:2375

或者

vim /usr/lib/systemd/system/docker.service

添加配置

ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://192.168.100.101:2375

systemctl daemon-reload
systemctl restart docker

查看2375端口是否开启

[root@compute1 ~]# netstat -anpt | grep 2375
tcp 0 0 192.168.100.101:2375 0.0.0.0:* LISTEN 96472/dockerd

然后在宿主机的firewalld上做IP访问控制即可,或者关闭firewalld,不做策略。

firewall-cmd –permanent –add-rich-rule=”rule family=”ipv4″ source address=”192.168.100.100″ port protocol=”tcp” port=”2375″ accept”
firewall-cmd –reload

查看firewall rich-rules

[root@compute1 ~]# firewall-cmd –list-rich-rules
rule family=”ipv4″ source address=”192.168.100.100″ port port=”2375″ protocol=”tcp” accept

测试远程调用docker
docker -H tcp://192.168.100.101 images

远程调用192。168.100.101的docker images命令

docker -H tcp://192.168.100.101 ps -a

远程调用192.168.100.101的docker ps -a命令

5
二、Docker-TLS加密
为了防止链路劫持、会话劫持等问题导致 Docker 通信时被中 间人攻击,c/s 两端应该通过加密方式通讯。

mkdir /tls
cd /tls

hostnamectl set-hostname master
su

vim /etc/hosts
127.0.0.1 master

  1. 创建ca密钥
    openssl genrsa -aes256 -out ca-key.pem 4096 //输入123123
  2. 创建ca证书
    openssl req -new -x509 -days 1000 -key ca-key.pem -sha256 -subj “/CN=*” -out ca.pem //输入123123
  3. 创建服务器私钥
    openssl genrsa -out server-key.pem 4096
  4. 签名私钥
    openssl req -subj “/CN=*” -sha256 -new -key server-key.pem -out server.csr
  5. 使用ca证书与私钥证书签名,输入123123
    openssl x509 -req -days 1000 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem
  6. 生成客户端密钥
    openssl genrsa -out key.pem 4096
  7. 签名客户端
    openssl req -subj “/CN=client” -new -key key.pem -out client.csr
  8. 创建配置文件
    echo extendedKeyUsage=clientAuth > extfile.cnf
  9. 签名证书,输入123123,需要(签名客户端,ca证书,ca密钥)
    openssl x509 -req -days 1000 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf
  10. 删除多余文件
    rm -rf ca.srl client.csr extfile.cnf server.csr
  11. 配置docker
    vim /lib/systemd/system/docker.service
    ExecStart=/usr/bin/dockerd –tlsverify –tlscacert=/tls/ca.pem –tlscert=/tls/server-cert.pem –tlskey=/tls/server-key.pem -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock

systemctl daemon-reload
systemctl restart docker

scp ca.pem root@192.168.100.100:/etc/docker/
scp cert.pem root@192.168.100.100:/etc/docker/
scp key.pem root@192.168.100.100:/etc/docker/
验证
本地验证
docker –tlsverify –tlscacert=ca.pem –tlscert=cert.pem –tlskey=key.pem -H tcp://master:2376 version
client验证
docker –tlsverify –tlscacert=ca.pem –tlscert=cert.pem –tlskey=key.pem -H tcp://master:2376 images
————————————————
版权声明:本文为CSDN博主「归海十八刀」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_46480020/article/details/114901345

Original: https://www.cnblogs.com/javalinux/p/16479848.html
Author: hellodev
Title: Docker容器–TLS安全管理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/8632/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • linux批量修改字符串

    grep “要修改的字符串aa.com_” -rl .| xargs sed -i “s/要修改的字符串aa.com_/替换之后的字符串aa.c…

    Linux 2022年8月11日
    0340
  • linux自动备份mysql数据库

    备份脚本记录一下–(单个数据库) 2021-11-15 1.新建shell脚本:vim **.sh #!/bin/bashCKUP=/data/backup/db #获…

    Linux 2022年9月10日
    0180
  • ubuntu代理设置

    在许多情况下,服务器不具备连接外部互联网的条件,需要使用代理服务器访问外部网络资源来升级软件包: [En] In many cases, the server does not h…

    Linux 2022年8月26日
    0440
  • 你所需要知道的一些git 的使用命令:分支

    即时分支合并是Git最给力的杀手锏。 问题 :外部因素要求必须切换场景。在发布版本中突然蹦出个严重缺陷。某个特性完成功的最后期限即将到来。一位可以在项目关键部分提供帮助的开发人员正…

    Linux 2022年8月30日
    0330
  • Sonar系列:Gitlab集成Sonarqube实现自动检测代码并发送报告给提交者(五)

    1、GitLab-Runner安装 (1)在Admin面板 — >Runners,查看GitLab-Runner安装方式 (2)下载安装 # Download t…

    Linux 2022年8月30日
    0300
  • git clone 指定分支

    git clone不指定给分支时,默认会把远程仓库整个给clone下来,但只会在本地默认创建一个master分支。 如果远程还有其他的分支,此时用git branch -a查看所有…

    Linux 2022年8月30日
    0300
  • win10,win11安装gitblit服务不能启动问题

    在win10或者win11系统上安装gitblit服务时,不能启动gitblit服务问题。 可能出现问题如下: 问题1 gitblit 在windows 下安装服务的时候可能会出现…

    Linux 2022年8月30日
    0420
  • linux 子系统折腾记 (三)

    所以,英语真的是一件好事,很多资料只有英文,如果你不懂英语,甚至你不知道这些资料的存在,更不用说使用糟糕的翻译软件来翻译了。 [En] So, English is really …

    Linux 2022年8月20日
    0250
  • Linux基础命令之cat使用方法大全

    今天在学习部署安装openstack的时候,看到一个关于cat的奇怪用法,可能是本人的才疏学浅没见过这种写法,于是乎查阅资料了一番,并进行了总结,希望也能够帮助有需要的朋友。 以下…

    Linux 2022年8月20日
    0310
  • Centos 6 DNS 配置 解决 Unknown host

    测试服务器Maven 打包时遇到了如下的错误 看上去应该是对 maven.aliyun.com的DNS 域名解析出问题了。 登录到服务器上 ping maven.aliyun.co…

    Linux 2022年9月10日
    0190
  • linux c 开发中的 assert作用

    断言(assert)作为一种软件调试的方法,提供了一种在代码中进行正确性检查的机制,目前很多开发语言都支持这种机制。 它的主要作用是对一个 boolean 表达式进行检查,一个正确…

    Linux 2022年8月26日
    0320
  • linux下使用grep进行日志过滤

    #查看日志中,包&…

    Linux 2022年8月26日
    0360
  • Ubuntu下配置Window CIFS共享

    准备windows共享文件夹 安装 cifs-utilssudo apt-get install cifs-utils 注意比较旧的系统使用smbfs sudo apt-get i…

    Linux 2022年8月26日
    0290
  • Linux报swap空间占用过高,但物理内存还有空余

    收到报警,swap空间占用过高,登录到系统查看内存使用详情,看到物理内存还有很多未使用 问题分析 Swap配置对性能的影响分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,…

    Linux 2022年8月24日
    0320
  • mysql使用注意

    MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。 最新的 UTF-8 规范只使用一到四个字节…

    Linux 2022年8月11日
    0290
  • Java/Android中的引用类型及WeakReference应用实践

    一、背景 一般意义上而言,Java/Android中的引用类型包括强引用、软引用、弱引用、虚引用。不同的引用类型具有各自适用的应用场景,并与JVM的GC直接相关。 作为Java/A…

    Linux 2022年8月30日
    0300
  • git比较两个分支之间的区别

    实际工作场景中经常会用到的一个技巧,比较两个分支之间差了哪些commit还没有合并?? 回答一个问题:我当前开发的这个feature/001分支,有哪些commit还没有被合并到m…

    Linux 2022年8月30日
    0220
  • 记主控 i2c 无信号输出(linux)

    因主控没有集成 RTC 功能,需要外挂时钟芯片 PCF8563 — i2c通讯; 把原厂提供的驱动添加完成后,可以板上 i2c0 下找到对应节点(PCF8563 挂在 …

    Linux 2022年8月11日
    0310
  • Linux创建用户,SFTP只允许访问指定目录

    首先创建用户 我这里配置lus1这个用户目录,为sftp指向目录,即/home/lus1/ 重启sshd服务 指定文件夹权限 这时,lus1即可SFTP登录,并且只能访问指定的目录…

    Linux 2022年8月24日
    0260
  • CentOS7安装部署Zabbix监控服务

    Zabbix Server通过Agent传来的数据写入数据库(MySQL),最终通过PHP+Apache在Web界面进行前端展示所以在启动Zabbix之前需要搭建LAMP环境 1、…

    Linux 2022年9月10日
    0190
  • linux开发缩写

    1.CONFIG_OF 在一些驱动中经常看到#ifdef CONFIG_OF,这里的OF是Open Firmware。 Open Firmware. This was invent…

    Linux 2022年8月13日
    0320
  • Redisson实现分布式锁源码解读

    文章目录 一、分布式锁的概念 和 使用场景 二、将redis官网对于分布式锁(红锁)的定义和Redisson实现做概括性总结 三、基于Redisson的分布式实现方案 四、加锁过程…

    Linux 2022年9月14日
    0580
  • Linux解压缩命令tar

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个命令是独立的命令,其中一个应该用于压缩和解压缩,可以与其他命令…

    Linux 2022年8月20日
    0360
  • 中国程序员容易发错音的单词「GitHub 热点速览 v.22.23」

    中国程序员容易发错音的单词,像极了学生时代的纠错本,收录着偶尔会忘记的单词。不过,它似乎更新频率跟不上我们的进步速度,至少一半以上的单词读起来是没有压力的。同样没有压力的还有让应用…

    2022年8月30日
    0260
  • fatal: not in a git directory Error: Command failed with exit 128: git

    brew -v git config –global –add safe.directory /opt/homebrew/Library/Taps/home…

    Linux 2022年8月30日
    0320
  • 更快的网络文件系統 — Oxfs

    什麽时候需要网络文件系统 ? 做嵌入式的同学经常会使用 NFS 将 host 上的某个目录挂载到开发板上,方便 host 上编译构建后能直接在板子上运行,减少手工拷贝操作。网站开发…

    Linux 2022年8月20日
    0290

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部