本文将为大家介绍docker守护进程的相关安全配置项目。
一、测试环境
1.1 安装 CentOS 7
CentOS Linux release 7.7.1908 (Core)
升级内核,重启
# yum update kernel
[root@localhost docker]# uname -a
Linux localhost 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost docker]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
1.2 安装 docker ce 19.03
# yum install -y yum-utils device-mapper-persistent-data lvm2
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# yum install -y docker-ce
[root@localhost docker]# docker --version
Docker version 19.03.8, build afacb8b二、 守护进程安全配置
默认没有配置文件,需要单独创建
/etc/docker/daemon.json,下面配置都是在该文件上进行配置,本地的测试示例。
{
"icc": false,
"log-level": "info",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file":"5",
"labels": "somelabel",
"env": "os,customer"
},
"iptables": true,
"userns-remap": "default",
"userland-proxy": false,
"experimental": false,
"selinux-enabled": true,
"live-restore": true,
"no-new-privileges": true,
"cgroup-parent": "/foobar",
"seccomp-profile": "/etc/docker/seccomp/default-no-chmod.json",
"tls": true,
"tlsverify": true,
"tlscacert": "/etc/docker/CA/ca.pem",
"tlscert": "/etc/docker/CA/server-cert.pem",
"tlskey": "/etc/docker/CA/server-key.pem"
}2.1 配置通过 HTTPS 和证书认证访问 Docker 守护进程
服务器证书
创建 HOST,定义域(IP 也可以),会根据域来生成对应的证书,一般用于注册证书当中的 CN:
创建证书目录:
$ mkdir -p /etc/docker/dockerd/CA && cd /etc/docker/dockerd/CA
生成 key 证书,并填写两次 key 证书密码:
$ openssl genrsa -aes256 -out ca-key.pem 4096
生成 ca 证书,需要输入注册证书基础信息:
$ openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
创建 server 证书:
$ openssl genrsa -out server-key.pem 4096$ openssl req -subj "/CN=localhsot" -sha256 -new -key server-key.pem -out server.csr
设定证书指定的 IP 地址:
$ echo subjectAltName = DNS:localhost,IP:127.0.0.1 >> extfile.cnf
将 Docker 守护程序密钥的扩展使用属性设置为仅用于服务器身份验证:
$ echo extendedKeyUsage = serverAuth >> extfile.cnf










