Files
nexus/wiki/concepts/Immutable-Root-Filesystem.md

2.1 KiB
Raw Blame History

title, type, tags, sources, last_updated
title type tags sources last_updated
Immutable Root Filesystem concept
Security
Linux
Container OS
public-cloud-learning-sessions-eks-optimization-part-2-of-3-running-containers-w
2026-04-24

Immutable Root Filesystem

只读根文件系统是一种操作系统安全加固技术,通过将根文件系统挂载为只读,确保操作系统核心文件在运行时无法被修改。任何运行时变更必须通过镜像更新机制完成,从而消除因意外或恶意修改导致的系统不可用风险。

核心原理

根文件系统在启动后被挂载为只读read-only即使拥有 root 权限也无法直接写入 / 目录下的文件。需要修改系统配置时,必须:

  1. 重新构建包含更新内容的 OS 镜像
  2. 通过安全的更新机制(如 A/B 分区切换)部署新镜像
  3. 重启系统以激活变更

典型实现

技术 实现方式
dm-verity 通过加密哈希树验证根文件系统块设备完整性,篡改被检测
OverlayFS 在只读底层之上叠加可写层,但底层不变
OSTree Git-like 分层镜像系统,支持原子升级和回滚
A/B 分区 双分区设计,在线下载新镜像到非活动分区,重启切换

在 Bottlerocket 中的实现

Bottlerocket OS 默认启用只读根文件系统:

  • 根分区通过 dm-verity 加密验证,任何篡改被检测
  • /etc 目录作为 tmpfs临时文件系统运行时可写但重启清空
  • 所有持久配置通过 API 或 userdata 注入,不直接修改根文件系统

安全价值

  • 防篡改:恶意软件无法修改系统关键文件
  • 一致性保证:每次启动系统状态可预测
  • 最小化攻击面:无需运行时包管理器,降低漏洞暴露
  • 原子更新:通过镜像级更新确保系统要么完全更新,要么保持原状

适用场景

  • 容器宿主操作系统Bottlerocket、Flatcar Container Linux、CoreOS
  • 嵌入式安全系统
  • 无法物理访问的远程服务器
  • 需要严格合规(如 PCI-DSS、FIPS的基础设施