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

问题描述 投票:1回答:1

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

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

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

ps:我检查了访问文件的标签信息,它们似乎是正确的,但访问(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"?

docker selinux
1个回答
2
投票

该政策可能包含dontaudit规则。 Dontaudit规则不允许使用acecss,但禁止针对特定访问进行日志记录。

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

semanage dontaudit off

解决问题后,您可能希望重新启用dontaudit规则以减少日志噪音。

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

sesearch --dontaudit -t container_file_t
© www.soinside.com 2019 - 2024. All rights reserved.