如何审核docker容器中的selinux拒绝

时间:2018-09-14 00:41:06

标签: docker selinux

我有一个docker容器,当禁用selinux时,它运行良好; 但是当启用selinux(即docker守护进程以--selinux-enabled启动)时,它将无法启动。

因此,故障应该是由selinux拒绝引起的,但这未在selinux审核日志中显示。当我使用“ ausearch -m XXX | audit2allow ...”生成策略时,它不包含任何拒绝信息。

想知道如何在容器内获取selinux拒绝信息,以便我可以在生成策略文件时使用它吗?

ps:我检查了访问文件的标签信息,它们似乎正确,但是拒绝了access(ls):

# ls -dlZ /usr/bin
dr-xr-xr-x. root root system_u:object_r:container_file_t:s0:c380,c857 /usr/bin
# ls /usr/bin
ls: cannot open directory /usr/bin: Permission denied

更多:选定的答案回答了问题,但是现在的问题是审核日志显示访问权限为读取“ unlabeled_t”,但是正如“ ls -dZ / usr / bin”所示,它是“ container_file_t” 。我将其放在另一个问题中: Why SELinux denies access to container internal files and claims them as "unlabled_t"?

1 个答案:

答案 0 :(得分:2)

该政策可能包含 dontaudit 规则。 Dontaudit 规则不允许使用acecss,但是禁止记录特定访问权限。

您可以使用semanage禁用 dontaudit 规则:

semanage dontaudit off

解决问题后,您可能想重新打开 dontaudit 规则以减少日志噪音。

还可以使用sesearch搜索可能的 dontaudit 规则:

sesearch --dontaudit -t container_file_t