tmpfs是满足等保三级“剩余信息保护”要求的核心机制,其内存驻留、重启即失、按需分配特性天然规避磁盘残留风险,须配合noexec,nosuid,nodev、size限制及PrivateTmp等策略实现合规落地。
tmpfs 是实现临时文件生命周期可控的核心机制,它天然具备“内存驻留、重启即失、按需分配”的特性,正好契合等保三级对敏感数据“不落盘、不残留、可审计”的强制要求。关键不在于是否用了 tmpfs,而在于是否用对了参数、挂载位置和配套策略。
明确 tmpfs 的合规价值点
等保三级第6.2.3条“剩余信息保护”明确要求:系统停机或用户注销后,存储介质中不得残留可恢复的敏感信息。tmpfs 从根源上规避磁盘残留风险:
- 所有写入 /tmp 的临时文件仅存于 RAM 或 swap,主机重启后自动清空
- 容器停止后,--tmpfs 挂载点内容彻底消失,无清理脚本依赖
- 配合 noexec,nosuid,nodev 使用,可阻断攻击者上传并执行恶意载荷的路径
宿主机 /tmp 的加固配置(满足 CIS + 等保基线)
不是简单挂载 tmpfs,而是必须带安全选项并设上限:
- 编辑 /etc/fstab,添加标准行:
tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,size=2G,mode=1777 0 0 - 执行 mount -o remount /tmp 生效,并验证:
– df -hT /tmp 应显示 fstype=tmpfs
– ls -ld /tmp 权限末位必须是 t(sticky bit)
– 尝试 touch /tmp/test && chmod +x /tmp/test && /tmp/test 应报 Permission denied - 禁止非 root 创建子目录(防目录遍历滥用):
chmod o-w /tmp(需确认不影响 logind socket、dbus 等必要服务)
容器内临时目录的等保级隔离实践
金融、政务类容器严禁共享宿主机 /tmp,必须独立管控:
- 启动时强制使用 --tmpfs,禁用默认绑定:
docker run --tmpfs /tmp:rw,noexec,nosuid,size=128m ... - 对日志类临时路径也做同样处理(如 /var/log/app):
--tmpfs /var/log/app:rw,noexec,nosuid,size=64m - 在 systemd 服务单元中启用 PrivateTmp=yes,确保每个服务有独立命名空间,避免跨服务污染
配套审计与监控不可缺位
tmpfs 解决“存不下”,但等保还要求“看得见、管得住”:
- 用 auditd 监控异常访问:
auditctl -w /tmp -p wa -k tmp_access
定期执行 ausearch -k tmp_access -i | grep -E "(exec|mkdir|chmod)" 审查行为 - 设置 systemd-tmpfiles 清理策略(即使 tmpfs 也需控制会话内文件存活):
在 /etc/tmpfiles.d/99-secure.conf 中添加:
L /tmp - - - - tmpfiles-clean
x /tmp/* - - - 7d(7天未访问即标记待删) - 对 OCR、报表生成等高敏中间件,前端加文件名/EXIF 检测,拦截含 idcard、bankcard、phone 的上传请求,从源头杜绝敏感数据进 /tmp

















