Docker远程访问控制的安全问题(Docker remote api 访问控制)以及Docker-TLS加密通讯 操作测试

本文介绍如何配置Docker以实现安全的远程API访问,并通过TLS加密确保通信安全,包括设置访问控制及证书生成步骤。

环境:

名字 ip
master 20.0.0.100
client 20.0.0.101

Docker remote api 访问控制

Docker的远程调用 API 接口存在未授权访问漏洞,至少应限制外网访问。建议使用 Socket 方式访问。

监听内网 ip,docker daemon 启动方式如下。

docker -d -H uninx:///var/run/docker.sock -H tcp://主机ip地址:端口号

或者
master服务端开放本地监听地址和端口

服务端开放本地监听地址和端口

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

ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://主机ip地址:端口号

然后,在服务端的 firewalld 上做 IP 访问控制即可。(source address 是客户端地址)

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="客户端ip" port protocol="tcp" port="2375" accept"

firewall-cmd --reload '重载'

或者
关闭防火墙

[root@master ~]# systemctl stop firewalld
[root@master ~]# setenforce 0
vim /usr/lib/systemd/system/docker.service
添加
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://20.0.0.100:2375   
systemctl daemon-reload 守护进程
systemctl restart docker
netstat -ntap | grep 2375
tcp        0      0 20.0.0.100:2375          0.0.0.0:*               LISTEN      69634/dockerd  

docker pull nginx '下载镜像测试'

客户端操作实现远程调用

客户机查看master的镜像

docker -H tcp://20.0.0.10 images

master服务器启动nginx 测试查看

docker run -itd nginx:latest /bin/bash '在服务端运行容器'

docker -H tcp://20.0.0.100 ps -a  '客户端远程查看'

Docker-TLS加密通讯

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

加密通信:

1.密钥
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值