Ubuntu Overlay配置中的安全设置
保持Ubuntu系统及内核更新至最新版本,及时应用安全补丁,是防范OverlayFS已知漏洞(如CVE-2023-2640、CVE-2023-32629等权限提升漏洞)的关键措施。旧版本内核可能存在未被修复的安全隐患,更新后可有效降低被攻击风险。
默认情况下,应限制普通用户对OverlayFS的挂载权限,仅允许特权用户(如root)执行挂载操作。可通过/etc/fstab文件或mount命令的uid/gid选项指定挂载后的文件所有者,避免未授权用户修改OverlayFS中的文件。例如,使用sudo mount -t overlay overlay -o lowerdir=/lower,upperdir=/upper,workdir=/work,uid=1000,gid=1000 /mnt/overlay命令,将挂载点的所有者设置为指定用户。
lowerdir(只读层)和upperdir(可写层)的权限。通常将所有权赋予root用户及组(sudo chown -R root:root /path/to/lower、sudo chown -R root:root /path/to/upper),确保只有授权用户能修改可写层。sudo chown root:root /path/to/mountpoint设置所有者为root,sudo chmod 755 /path/to/mountpoint设置读、执行权限,防止未授权用户删除或修改挂载点。umask设置新创建文件的默认权限(如umask 0022,使新文件权限为644、目录为755),或在挂载时使用default_permissions选项,让OverlayFS继承父目录的权限。启用SELinux或AppArmor等强制访问控制(MAC)框架,对OverlayFS的访问进行更严格的限制。Ubuntu默认启用AppArmor,可创建自定义配置文件限制特定程序(如Docker)对OverlayFS的访问权限,防止恶意进程越权操作。例如,通过aa-genprof工具生成OverlayFS相关的AppArmor profile,细化访问规则。
在容器环境(如Docker)中使用OverlayFS时,启用用户命名空间隔离,将容器内的用户ID(UID)与宿主机上的UID映射为不同值。这可防止容器内用户通过OverlayFS直接访问宿主机的敏感文件,降低权限提升风险。例如,在Docker配置中添加--userns=remap选项,设置用户命名空间映射。
实施文件系统监控与审计机制,及时发现未授权的修改尝试。可通过以下方式实现:
auditd工具监控OverlayFS目录的访问日志(如/etc/audit/audit.rules中添加-w /path/to/overlay -p wa -k overlay_access规则);/var/log/syslog、journalctl -xe | grep overlay),查找可疑的挂载或修改操作。对存储在OverlayFS中的敏感数据(如配置文件、数据库文件)进行加密,即使数据被非法访问,也无法轻易解读。可使用LUKS(Linux Unified Key Setup)加密upperdir或workdir目录,或在应用层(如Docker卷加密)实现数据加密。
检查OverlayFS中的文件,确保只有必要的文件具有SUID(Set User ID)或SGID(Set Group ID)权限。过多的SUID/SGID文件可能被攻击者利用提升权限,可通过find /path/to/overlay -type f \( -perm -4000 -o -perm -2000 \)命令查找并移除不必要的权限。