这感觉就像是有史以来最可怕的命运转折……用户让我设置 tomEE ( apache-tomee-jaxrs-1.7.4
)。这是在 RHEL6 机器上。
我已经从 apache 网站上提供的 tarball 中进行了安装,并准备好selinux
使其正常工作...然后意识到,因为它来自源代码...所以没有应用任何默认上下文。
我以前从未需要从这方面开始工作,通常我会与 selinux 进行斗争,让东西在安全状态下工作,现在我需要将已经在工作的东西强行放入一个密闭空间中,我真的不是确定从哪里开始。
所以我想我的问题是......如何开始为当前仅在默认非受限环境中设置的内容构建一个受限空间?
答案1
如果您没有编写自定义 SELinux 策略模块的经验,您可以开始使用policygentool
生成最小模块。该模块包含基本文件类型、标签规则以及向受限域的过渡。
生成基本模块
policygentool <name> <executable>
重要的文件是类型强制 (
.te
) 和文件上下文 (.fc
) 文件。策略规则位于类型强制文件中,标签规则位于文件上下文文件中。如果您需要其他标签规则,请在文件上下文文件中定义它们。使用
selinux-devel
(/usr/share/selinux/devel/Makefile
或类似)提供的 makefile 编译策略模块。然后使用 来安装模块semodule
。策略的其余部分可以使用 生成
audit2allow
。在运行应用程序之前,semanage permissive
可以将域设置为宽容模式,允许在生成 AVC 拒绝消息时正常操作。获得足够的日志后,用于
audit2allow
生成规则并将其附加到类型强制文件中。还要增加那里的版本号。然后编译并安装新模块。如果不再生成 AVC 拒绝消息,您可以将域更改回强制模式。否则从步骤 3 开始重复。