LXC - 使用生成的 apparmor 配置文件,但 apparmor 状态显示不受限制

LXC - 使用生成的 apparmor 配置文件,但 apparmor 状态显示不受限制

我一直在使用非特权lxc容器(以 root 身份运行,但具有用户命名空间),并使用以下配置来利用 apparmor:

lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1

当容器运行时,我看到确实生成了 apparmor 配置文件,并且它已加载到系统日志中。例如:

Jan 15 04:00:16 localhost kernel: [1315978.637961] audit: type=1400 audit(1673776816.182:395): apparmor="STATUS" operation="profile_remove" profile="/usr/bin/lxc-start" name="lxc-apache_</var/lib/lxc>" pid=2951275 comm="apparmor_parser"
Jan 15 04:00:34 localhost kernel: [1315996.830889] audit: type=1400 audit(1673776834.374:396): apparmor="STATUS" operation="profile_load" profile="/usr/bin/lxc-start" name="lxc-apache_</var/lib/lxc>" pid=2953280 comm="apparmor_parser"


ls -la '/var/lib/lxc/apache/apparmor/lxc-apache_<-var-lib-lxc>'
-rw------- 1 root root 38155 Jan 15 04:00 'lxc-apache_<-var-lib-lxc>'

但是,当我运行时aa-status,我得到以下输出:

   /usr/bin/busybox (2954962) lxc-apache_</var/lib/lxc>//&:lxc-apache_<-var-lib-lxc>:unconfined
   /usr/sbin/sshd (2956272) lxc-apache_</var/lib/lxc>//&:lxc-apache_<-var-lib-lxc>:unconfined
   /usr/sbin/httpd (2956340) lxc-apache_</var/lib/lxc>//&:lxc-apache_<-var-lib-lxc>:unconfined
   /usr/sbin/httpd (2956353) lxc-apache_</var/lib/lxc>//&:lxc-apache_<-var-lib-lxc>:unconfined
   /usr/sbin/httpd (2956363) lxc-apache_</var/lib/lxc>//&:lxc-apache_<-var-lib-lxc>:unconfined
   /usr/bin/busybox (2956473) lxc-apache_</var/lib/lxc>//&:lxc-apache_<-var-lib-lxc>:unconfined

如果我理解正确的话,它告诉我正在应用两个 apparmor 配置文件,lxc-apache_</var/lib/lxc>//&并且lxc-apache_<-var-lib-lxc>:unconfined.

当它似乎告诉我在unconfined模式下第二次加载相同的配置文件时,我不确定这意味着什么。这是使用nestingand/or的结果吗userns

由于容器以非特权方式运行,因此我并不关心容器的安全性,而是对 AppArmor 在这种情况下的工作方式感兴趣。

相关内容