【问题标题】:How to audit the selinux denial inside a docker container如何审核 docker 容器内的 selinux 拒绝
【发布时间】:2019-02-18 18:25:39
【问题描述】:

我有一个 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】:

    该策略可能包含 dontaudit 规则。 Dontaudit 规则不允许访问,但禁止记录特定访问。

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

    semanage dontaudit off
    

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

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

    sesearch --dontaudit -t container_file_t
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-31
      • 2016-11-02
      • 1970-01-01
      • 2021-10-07
      • 2023-03-30
      • 1970-01-01
      • 2021-11-25
      相关资源
      最近更新 更多