lxc-container-default-with-nesting AppArmor profile有什么作用



我正在使用带有lxc-container-default-with-nesting配置文件的嵌套LXC,如下所示。

profile lxc-container-default-with-nesting flags=(attach_disconnected,mediate_deleted) {
  #include <abstractions/lxc/container-base>
  #include <abstractions/lxc/start-container>
#  Uncomment the line below if you are not using cgmanager
#  mount fstype=cgroup -> /sys/fs/cgroup/**,
  deny /dev/.lxc/proc/** rw,
  deny /dev/.lxc/sys/** rw,
  mount fstype=proc -> /var/cache/lxc/**,
  mount fstype=sysfs -> /var/cache/lxc/**,
  mount options=(rw,bind),
}

我对以下行有两个问题。

  mount fstype=proc -> /var/cache/lxc/**,
  1. 为什么允许容器挂载/proc 是安全的?

  2. 为什么容器需要在/var/cache/lxc 下挂载/proc?

嵌套

容器配置

该配置文件允许您创建一个嵌套的LXC容器,一个在另一个容器中。默认情况下,此功能处于禁用状态,因为它绕过了一些默认的 cgroup 限制(更多信息在这里(。

通常,它会更改 apparmor 规则以允许 lxc 在容器内重新挂载某些系统资源(具有某些限制(。

lxc.container.conf

如果您查看 man lxc.container.conf ,本节介绍了您可以编辑的设置,以了解如何挂载proc我认为它默认使用 proc:mixed(但我还没有确认这一点!

  lxc.mount.auto
          specify which standard kernel file systems should be
          automatically mounted. This may dramatically simplify
          the configuration. The file systems are:
          · proc:mixed (or proc):
            mount /proc as read-write, but
            remount /proc/sys and
            /proc/sysrq-trigger read-only
            for security / container isolation purposes.
          · proc:rw: mount
            /proc as read-write

非特权 LXC

顺便说一句,如果您不使用非特权LXC,则应使用。说真的。它增加了一个额外的保护层,限制容器中的root用户可以执行的操作(它实际上将其映射到容器外部的非 root 用户(。这为/proc提供了额外的保护层,以防万一有什么东西滑倒了盔甲规则。

至于为什么使用/var/cache/lxc,我不知道。一个猜测是,这与不与cgmanager冲突有关。如果您对推理感兴趣,查看源代码可能是一个很好的起点。

相关内容

  • 没有找到相关文章

最新更新