Ubuntu Overlay安全设置怎么做
小樊
38
2025-12-10 04:27:41
Ubuntu Overlay 安全设置实践
一 基线加固与内核防护
- 保持系统与内核及时更新,及时修补与 OverlayFS 相关的已知漏洞(如 CVE-2021-3493、CVE-2015-1328、CVE-2023-0386),降低本地提权与越权访问风险。
- 谨慎开启非特权用户命名空间的 OverlayFS 挂载。历史上 CVE-2015-1328 允许在用户命名空间内对 OverlayFS 的不当挂载实现本地提权;若业务无需,建议在系统策略层面限制或禁用非特权用户挂载能力。
- 理解 copy-up 语义的安全影响:CVE-2023-0386 显示,在用户命名空间中触发 OverlayFS 的 copy-up 后,某些场景下可能绕过 nosuid/nodev 等挂载选项限制,导致 SUID 程序在退出命名空间后于 upper 层保留并可被利用。对策是:避免在用户命名空间内对不受信任的 lower 层进行写触发的 copy-up;对关键目录使用更严格的挂载选项与隔离。
二 使用 Overlayroot 只读根文件系统
- 安装与启用:在 Ubuntu 上安装 overlayroot,编辑 /etc/overlayroot.conf,将 overlayroot 设为 tmpfs(或其他模式)以在只读根之上提供可写视图,重启后生效。
- 典型配置与验证:
- 配置示例:overlayroot=“tmpfs”(按需添加选项,如持久化数据到其他分区)。
- 重启后通过 mount 应能看到类型为 overlay 的挂载,且 lowerdir 指向只读根分区(如 /media/root-ro),upperdir 为 tmpfs(如 /media/root-rw)。
- 维护与应急:
- 需要临时写入根分区时,可在 GRUB 启动项添加 overlayroot=disabled 进入可写模式;完成维护后恢复默认配置。
- 如需保留部分目录可写,可结合配置项(如 recurse)仅对指定子树启用覆盖,避免全盘可写。
三 容器与手动挂载场景的加固
- 容器场景(Docker/K8s):优先使用发行版与上游已验证的联合文件系统驱动与内核版本;为容器根文件系统启用只读根(readOnlyRootfs)、最小权限与 seccomp/AppArmor/SELinux 等运行时防护,减少通过挂载与 copy-up 触发的攻击面。
- 手动挂载要点:
- 明确指定 lowerdir/upperdir/workdir,确保 workdir 为专用空目录且仅由可信主体使用。
- 对敏感挂载点使用 nosuid,nodev,noexec 等选项;当挂载点在用户命名空间中使用时,避免对不受信任的 lower 层执行会触发 copy-up 的操作(如创建/修改文件元数据)。
- 验证挂载:使用 mount | grep overlay 检查挂载参数与层路径是否符合预期。
四 审计与持续监测
- 启用内核审计 auditd,对 OverlayFS 相关系统调用与策略变更进行记录:
- 安装与启动:sudo apt install auditd audispd-plugins linux-audit;sudo systemctl enable --now auditd。
- 按需添加规则(示例):监控挂载与关键目录访问,定期用 ausearch 检索 AVC/挂载事件,核查异常 copy-up、权限变更与可疑挂载行为。
- 建立变更与补丁管理流程:对 /etc/audit/ 规则、/etc/overlayroot.conf 与容器/内核配置变更进行版本化管理与定期复盘;关注与 OverlayFS 相关的安全通告并及时升级。