Debian系统中Docker安全策略制定指南
sudo apt update && sudo apt upgrade
更新Debian系统及Docker引擎(docker-ce、containerd.io),及时修复已知漏洞;订阅Docker官方安全公告,第一时间获取补丁信息。ufw
或iptables
配置防火墙,仅开放HTTP(80)、HTTPS(443)、SSH(22)等必要端口;设置强密码策略(通过PAM模块要求密码包含字母、数字、特殊符号,定期更换);使用sudo
代替直接root登录,限制root权限使用。debian:bullseye-slim
),避免从未知来源拉取镜像;通过docker pull debian:bullseye-slim
获取官方镜像。COPY --from=builder /app /app
),减少镜像体积;使用Trivy
或Clair
定期扫描镜像(如trivy image my-debian-app
),检测并修复已知漏洞(如CVE-2023-1234)。docker inspect
查看镜像历史,确认无恶意层;使用GPG验证镜像签名(如官方镜像的--disable-content-trust=false
参数),防止篡改。USER
指令创建非root用户(如RUN useradd -m myuser && chown -R myuser /app
),并以该用户运行容器(USER myuser
);避免使用--privileged
参数,如需特殊权限,用--cap-drop
移除不必要的能力(如docker run --cap-drop=ALL --cap-add=CHOWN my-image
)。--cpus
(如--cpus="1.0"
)和--memory
(如--memory="512m"
)参数限制容器CPU和内存使用,防止资源耗尽攻击;启用--oom-kill-disable=false
,允许系统在内存不足时终止容器。docker network create my-bridge
)隔离容器,限制容器间通信;通过--network none
禁用不必要的网络访问,仅暴露必要端口(-p 8080:80
)。--security-opt apparmor=my-profile
(使用AppArmor限制系统调用)、--security-opt seccomp=my-profile.json
(限制危险系统调用)、--no-new-privileges
(禁止容器内提权)等参数;启用用户命名空间(--userns-remap=default
),将容器用户映射到主机非root用户。/var/run/docker.sock
),使用TLS加密通信(配置--tlsverify
、--tlscacert
、--tlscert
、--tlskey
);限制Docker API访问,仅允许可信IP(如--hosts tcp://192.168.1.100:2376
)。docker
组(sudo usermod -aG docker myuser
),替代直接使用root;定期审计/etc/group
中的docker
组成员,移除不必要的用户。--log-driver=json-file
),设置日志大小限制(--log-opt max-size=10m
)和保留数量(--log-opt max-file=3
);使用Logwatch
、Auditd
或Fluentd
集中收集和分析容器日志,监控异常行为(如频繁重启、异常端口访问)。Prometheus
+Grafana
监控容器资源使用(CPU、内存、网络);配置Fail2ban
防止暴力破解;设置告警规则(如容器CPU使用率超过80%持续5分钟),及时通知管理员。Docker Bench
(docker run --rm -it --net host --pid host --userns host --cap-add audit_control -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST docker/docker-bench-security
)检查Docker环境安全配置;定期审查容器日志和系统日志,识别潜在威胁(如未授权访问、异常进程)。