如何将 selinux 规则/转换/标签/等与模块匹配

如何将 selinux 规则/转换/标签/等与模块匹配

我需要匹配正在运行/加载 selinux 规则/转换/标签/等到定义它们的 selinux 策略模块 (semodules -l)。我需要这个,因为我想在上下文中研究一些 selinux 策略模块,我需要知道我应该检查哪些模块。

有没有比下载所有与 selinux 相关的“src”包、过滤掉未使用的模块并 grep 结果文件中的该信息更简单的方法?

答案1

显然,没有办法做到这一点。这可能与机器使用的策略有关已编译来自仅存在于源代码中的模块:

# file /etc/selinux/default/policy/policy.26
/etc/selinux/default/policy/policy.26: SE Linux policy v26 MLS 8 symbols 7 ocons

# file -i /etc/selinux/default/policy/policy.26
/etc/selinux/default/policy/policy.26: application/octet-stream; charset=binary

编译步骤之后,哪个模块包含哪些规则的详细信息就会丢失。

但是,考虑到你想学习一些SELinux 策略模块(例如一些特定的模块),您可以反过来做,然后:

  1. 安装refpolicy适用于您的发行版的软件包。它包含源代码(是的,不是您想要的,但可能是最简单的方法)

  2. 从编译的策略包文件。您可以在 中找到这些文件/etc/selinux/$policy/modules/active/modules/*pp。关于如何反编译模块的非常详细的解释已经发布这里

相关内容