- Docker/OCI 容器并非天生安全;无根容器是一项关键的加固措施。
- 无根容器通过确保任何容器逃逸都以非特权主机用户(而非 root)的身份落地,从而限制攻击影响。
- 无根操作依赖于用户命名空间和从属 UID/GID 映射(例如 /etc/subuid)。
- Podman 默认是无守护进程的,使用 systemd 服务单元进行无根容器管理。
- 为服务用户启用 lingering,以便无根服务在无活动登录会话时也能运行。
- 示例 PostgreSQL 容器配置包括 UserNS=keep-id、带有 :U 的 Volume,以及私有 IP 上的 PublishPort。
- 示例 Anubis 容器配置增加了 ReadOnly=true、NoNewPrivileges=true 和 DropCapability=ALL。
- 像 systemctl --user 这样的命令需要 XDG_RUNTIME_DIR 和 DBUS_SESSION_BUS_ADDRESS 环境变量。
- 无根容器的网络差异(特权端口、源 IP 保留、防火墙)将在后续文章中讨论。