docker 安全
1-将容器的根文件系统挂载为只读
--read-only
-read-only 选项可以设置容器的文件系统为只读,这样无法修改和新建容器里面的文件
2-确保docker.sock不被挂载
docker.sock挂载的容器容易被获取特殊权限,一旦危险进入到docker中,严重影响了宿主机的安全,生产环境中,需要确保docker.sock不被挂载。
不要使用-v /var/run/docker.sock:/var/run/docker.sock参数来挂载/var/run/docker.sock文件。
这样做可以防止容器内的进程获取宿主机的Docker守护进程的控制权。
3-审核Docker文件和目录安全审计
除了审核常规的Linux文件系统和系统调用之外,还审核所有与Docker相关的文件和目录。 Docker守护程序以“ root”特权运行。 其行为取决于某些关键文件和目录。如 /var/lib/docker、/etc/docker、docker.service、 docker.socket、/usr/bin/docker-containerd、/usr/bin/docker-runc等文件和目录
找到/etc/audit/audit.rules与/etc/audit/rules.d/audit.rules文件(若没有则先确认是否已安装auditd服务), 在文件中添加以下行:
-w /var/lib/docker -k docker
-w /etc/docker -k docker
-w /usr/lib/systemd/system/docker.service -k docker
-w /usr/lib/systemd/system/docker.socket -k docker
-w /usr/bin/docker-containerd -k docker
-w /usr/bin/docker-runc -k docker
-w /usr/bin/containerd -k docker
然后,重新启动audit程序。 例如
systemctl restart auditd.service
重启遇到错误: Failed to stop auditd.service: Operation refused 连接
4- 确保不共享主机的网络命名空间服务配置
启动容器时不要通过--net = host选项。
检查提示
加固建议
在守护程序模式下运行docker并传递'--icc = false'作为参数。 例如,
/usr/bin/dockerd --icc=false
若使用systemctl管理docker服务则需要编辑` `` /usr/lib/systemd/system/docker.service
文件中的`ExecStart`参数添加 `--icc=false`选项
--icc = false
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --icc=false
编辑后重启docker
systemctl daemon-reload
systemctl restart docker.service
欢迎来撩 : 汇总all