日更第28日: 容器安全之Docker守护进程配置TLS身份认证

日更第28日: 容器安全之Docker守护进程配置TLS身份认证,第1张

可以让 Docker 守护进程监听特定的 IP 和端口以及除默认 Unix 套接字以外的任何其他 Unix 套接字。

配置 TLS 身份验证以限制通过 IP 和端口访问 Docker 守护进程。

默认情况下, Docker 守护程序绑定到非联网的 Unix 套接字,并以 root 权限运行。

如果将默认的 Docker 守护程序更改为绑定到 TCP 端口或任何其他 Unix 套接字,那么任何有权访问该端口或套接字的人都可以完全访问 Docker 守护程序,进而可以访问主机系统。

因此,不应该将 Docker 守护程序绑定到另一个 IP /端口或 Unix 套接字。

如果必须通过网络套接字暴露 Docker 守护程序,请为守护程序配置 TLS 身份验证

生产环境下避免开启 tcp 监听,若避免不了,执行以下 *** 作。

192.168.235.128 为当前主机 IP 地址

停服务

编辑配置文件

替换 ExecStart=/usr/bin/dockerd 为以下

重启

在使用容器访问一个自签名证书站点的时候碰到如下报错:

解决方法:将该证书加到Docker镜像中,让系统信任这类证书

我使用的是基于alpine的镜像,Dockerfile如下

build镜像过程中看到如下提醒,可以忽略

启动并进入容器内检查 cat /etc/ssl/certs/ca-certificates.crt ,自签名证书已经被加入ca-certificates.crt文件,系统已信任该证书。

参考: CA certificate on linux

我们需要使用一个完成的PKI基础设施,创建自己的证书授权中心,并且客户端和服务端都需要支持TLS认证。

秘钥的生成和证书的签发都有现成的文档,不做叙述。这里只说三个重点。

服务端有两个参数需要注意一下

--tls: 只启用TLS,而不适用客户端的验证功能,类似于https

--tlsverify: 启用客户端的验证功能

客户端有两个参数需要注意一下

--tls: 只启用TLS,而不适用客户端的验证功能,类似于https

--tlsverify: 启用客户端的验证功能

需要增加一个额外的扩展字段

下面是相关资料


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11523542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存