环境:
| 名字 | 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.密钥

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

被折叠的 条评论
为什么被折叠?



