CentOS 上提升 Overlay 安全性的实用方案
一 加固基础系统与访问控制
- 保持系统与软件为最新:定期执行 yum update,及时修补内核与关键组件漏洞。
- 最小化服务与账户:关闭不必要的服务与端口,清理或锁定默认多余账户(如 adm、lp、sync 等),仅保留必要的管理员账户。
- 强化身份与登录安全:设置高强度口令策略(长度≥10位,包含大小写字母、数字与特殊字符),处理空口令账户;限制 su 使用范围;为 root 设置会话超时(如设置 TMOUT);禁用 Ctrl+Alt+Del 重启组合键。
- 启用并正确配置 SELinux:将 SELINUX=enforcing,必要时为业务配置最小权限的 SELinux 策略,避免以牺牲安全为代价换取兼容。
- 边界与端口防护:使用 firewalld 仅开放必需端口(如 22/80/443/3306),对管理口与数据库口实施来源限制与最小暴露面。
- 关键文件保护:对 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 设置不可变属性(如 chattr +i),降低被篡改风险。
二 容器与 Overlay 存储安全配置
- 存储驱动与内核:容器运行时优先选用 overlay2,并确保内核支持;如需临时绕过版本检查,可在 /etc/docker/daemon.json 中设置 “overlay2.override_kernel_check”: true,但应仅作过渡并尽快升级内核。
- 启用 SELinux 与 MCS/MLS:保持 SELinux enforcing,为容器与 Overlay 层启用多类别/多级安全标签,减少横向移动与越权访问。
- 网络隔离:使用 Docker Overlay 网络 或自定义网络策略,按业务划分 Namespace/子网,限制容器间不必要的互通。
- 资源与权限限制:为每个容器设置 CPU/内存/磁盘 I/O 上限,启用只读根文件系统(如可行)、非特权模式运行,按需挂载最小化的 /proc、/sys 等敏感伪文件系统。
- 镜像与运行时安全:仅使用可信基础镜像与签名镜像,启用镜像漏洞扫描;容器最小化安装,删除不必要的包与内核模块。
三 主机上直接使用 OverlayFS 的安全要点
- 安装与挂载:安装 fuse-overlayfs 与 fuse,按规范创建 lowerdir、upperdir、workdir 并挂载,挂载点权限最小化(如 0755/0700)。
- 最小权限与访问控制:仅授权可信用户/进程执行挂载与访问;通过 ACL 与 SELinux 限制挂载点与上层目录的访问范围。
- 审计与监控:使用 auditd 记录 mount/umount 与关键目录访问;通过 mount/findmnt 定期巡检 Overlay 挂载与层级使用情况。
- 资源与稳定性:通过 cgroups/systemd 为使用 Overlay 的进程设置 CPU/内存/磁盘 上限,避免因异常写入导致 DoS。
- 持久化与备份:将 upperdir 放在冗余与备份可达的存储上,定期快照/校验关键数据。
四 审计 加密与持续运维
- 日志与审计:集中收集与分析 auditd、journald、容器运行时日志,对异常挂载、权限变更、暴力登录等进行告警与追溯。
- 数据加密:对包含敏感数据的 lowerdir/upperdir 所在文件系统启用 LUKS/dm-crypt 等加密,降低物理或介质被盗导致的数据泄露风险。
- 变更与合规:变更前备份配置与数据,变更后在测试环境验证;定期复核 firewalld 规则、SELinux 策略与容器安全基线,形成持续合规。
五 关键配置示例
- 启用 SELinux 并重启生效
- 编辑 /etc/selinux/config:SELINUX=enforcing
- 执行:setenforce 1 && reboot
- firewalld 仅开放必要端口
- 启动服务:systemctl start firewalld
- 放通端口:firewall-cmd --permanent --add-port={22,80,443}/tcp
- 重载规则:firewall-cmd --reload
- Docker 使用 overlay2 并限制容器权限
- /etc/docker/daemon.json:
{
“storage-driver”: “overlay2”,
“default-ulimits”: { “nofile”: { “Name”: “nofile”, “Hard”: 65536, “Soft”: 65536 } }
}
- 重启:systemctl restart docker
- 运行容器示例:docker run --rm -it --security-opt no-new-privileges --read-only --tmpfs /tmp busybox sh
- 主机 OverlayFS 挂载示例(FUSE)
- 安装:yum install -y fuse-overlayfs fuse
- 创建目录:mkdir -p /mnt/ovl/{lower,upper,work,merged}
- 挂载:mount -t overlay overlay -o lowerdir=/mnt/ovl/lower,upperdir=/mnt/ovl/upper,workdir=/mnt/ovl/work /mnt/ovl/merged
- 验证:mount | grep overlay;df -h /mnt/ovl/merged
- 审计 Overlay 挂载
- 规则示例:echo ‘-a always,exit -F arch=b64 -S mount -S umount2 -k overlay_fs’ >> /etc/audit/rules.d/overlay.rules
- 重载:service auditd restart
提示:在生产环境启用如 overlay2.override_kernel_check 或放宽 SELinux/MCS 前,请在测试环境充分验证,并结合变更管理与回滚预案,确保业务连续性与合规性。