温馨提示×

Docker安全设置CentOS上如何操作

小樊
33
2025-12-13 11:26:35
栏目: 智能运维

CentOS 上 Docker 安全设置实操指南

一 基础加固

  • 保持系统与 Docker 版本为最新,及时修补漏洞;将 /var/lib/docker、/etc/docker、docker.service、docker.socket、/usr/bin/containerd、/usr/sbin/runc 等关键文件纳入审计(auditd),并严格管控权限与属主。
  • 启用并正确配置 SELinux(或 AppArmor),为容器提供更强的强制访问控制;在需要时仅对特定目录做 SELinux 上下文调整,避免全局放宽策略。
  • 仅使用可信镜像源,开启内容信任(Content Trust);定期扫描镜像(如 Trivy/Clair),清理过期/未使用镜像与容器,减少攻击面。
  • 禁止在生产环境暴露未认证的 Docker 守护进程端口 2375;如需远程 API,启用 TLS 认证并仅开放必要来源 IP。

二 守护进程与远程访问

  • 远程访问推荐启用 TLS:在 Docker 主机生成 CA/服务器证书/服务器密钥,编辑服务启动参数,仅监听 2376/tcp 并强制客户端证书校验;保留本地 unix:///var/run/docker.sock 以便本机管理。
  • 示例(systemd 单元 ExecStart 末尾追加,注意保留本地套接字):
    --tlsverify \
    --tlscacert=/etc/docker/ca.pem \
    --tlscert=/etc/docker/server-cert.pem \
    --tlskey=/etc/docker/server-key.pem \
    -H tcp://0.0.0.0:2376 \
    -H unix:///var/run/docker.sock
    
    变更后执行:systemctl daemon-reload && systemctl restart docker,并用 ss -lntp | grep 2376 校验监听。
  • 防火墙放行:仅允许受控网段访问 2376/tcp,例如:
    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/8" port port="2376" protocol="tcp" accept'
    firewall-cmd --reload
    
  • 安全提示:切勿同时开放 23752376;TLS 证书妥善保管,禁用匿名访问。

三 容器运行时权限与隔离

  • 以非 root 运行:在镜像中创建并切换至非 UID 0 用户,或在运行容器时使用 --user;启用 用户命名空间 将容器内 root 映射为宿主机非特权用户。
  • 最小权限:遵循“默认丢弃、按需添加”的原则,使用 --cap-drop ALL 后仅 --cap-add 必需能力(如 NET_BIND_SERVICE);避免使用 --privileged
  • 文件系统与进程:容器根文件系统设为只读(--read-only),对需要写入的路径使用卷;限制 PID 数量防止 fork 炸弹。
  • 挂载与敏感目录:避免挂载敏感主机目录(尤其是可写);如确需挂载,结合 SELinux 或只读/最小权限挂载传播(private/slave)。
  • 网络与端口:优先使用自定义网络实现服务隔离;避免共享主机网络/进程/IPC/UTS 命名空间;不要映射 1–1023 特权端口到容器。
  • 安全增强:启用 seccomp 默认策略或自定义白名单;启用 AppArmor/SELinux 配置;禁止在容器内运行 sshd;禁止将 /var/run/docker.sock 挂载进容器。

四 资源限制与网络策略

  • 资源配额:为容器设置 CPU/内存/IO 限额,防止资源耗尽导致 DoS;示例:
    docker run -d --name app \
      --cpus="1.0" --memory="512m" --memory-swap="512m" \
      nginx:1.25
    
  • 进程与重启:限制容器内进程数(--pids-limit),设置合适的重启策略(--restart=on-failure:5)。
  • 网络隔离:使用自定义 bridge 网络分段业务;仅暴露必要端口到外部;对跨容器通信按“最小连通性”原则配置。
  • 主机加固:保持 firewalld 启用并与容器网络策略协同,最小化暴露面。

五 镜像与合规 监控与审计

  • 镜像治理:使用受信任/签名的镜像,启用 Docker Content Trust;在 CI/CD 中集成 Trivy/Clair 漏洞扫描,阻断含高危 CVE 的镜像进入生产。
  • 合规自检:定期运行 Docker Bench for Security(基于 CIS Docker Benchmark)进行配置基线核查与整改。
  • 运行时监控:集中采集容器与宿主机日志(如 ELKPrometheus+Grafana);使用 Falco 等工具进行系统调用与行为异常检测与告警。
  • 审计与职责:对 Docker 守护进程与关键文件实施 auditd 审计;严格控制 docker 组成员,仅授予受信任人员。

0