14.7. 管理用于子系统的 SELinux 策略
SELinux 是强制访问控制规则的集合,用于限制未经授权的访问和篡改。有关 SELinux 的详情,请参考为 Red Hat Enterprise Linux 8使用 SELinux 指南。
14.7.1. About SELinux
基本上,SELinux 识别系统中的 对象,可以是文件、目录、用户、进程、套接字或其他 Linux 主机上的任何其他操作。这些对象对应于 Linux API 对象。然后,每个对象 都会映射到安全上下文,它定义了其对象类型以及如何在 Linux 服务器上正常工作。
系统进程在 SELinux 域中运行。每个域都有一组规则,用于定义 SELinux 域如何与系统上的其他 SELinux 对象交互。然后,这组规则决定了进程可以访问哪些资源以及如何对这些资源执行的操作。
对于证书系统,每个子系统类型都在该子系统类型的特定域中运行。该子系统类型的每个实例属于同一个 SELinux 域,无论系统中的实例是什么,例如,如果服务器上安装了三个 CA,则所有三个 CA 都属于 http_port_t SELinux 域。
所有子系统的规则和定义都包含整个证书系统 SELinux 策略。安装子系统时,证书系统 SELinux 策略已配置,每次使用 pkispawn 添加子系统或使用 pkidestroy 被删除时,所有 SELinux 策略都会被更新。
证书系统子系统以 enforcing 模式设置 SELinux,这意味着即使需要遵循所有 SELinux 规则,也可以成功执行证书系统操作。
默认情况下,证书系统子系统受 SELinux 策略限制运行。
14.7.2. 查看 SELinux 策略以查看子系统
所有证书系统策略都是系统 SELinux 策略的一部分。可以使用 SELinux 管理 GUI 查看配置策略,您可以通过安装 policycoreutils-gui 软件包来获得这些策略。
- 运行 system-config-selinux 命令或通过访问主系统菜单的
来打开工具。 - 要检查安装了证书系统 SELinux 策略的版本,请点左侧栏中的 Policy Module 部分。
- 要查看各个文件和进程上设置的策略,请点 File Labeling 部分。要查看子系统的端口分配的策略,请单击 Network Port 部分。
14.7.3. 重新标记 nCipher netHSM 上下文
nCipher netHSM 软件不附带自己的 SELinux 策略,因此证书系统包含一个默认的 netHSM 策略,如 例 14.1 “netHSM SELinux Policy” 所示。
例 14.1. netHSM SELinux Policy
# default labeling for nCipher /opt/nfast/scripts/init.d/(.*) gen_context(system_u:object_r:initrc_exec_t,s0) /opt/nfast/sbin/init.d-ncipher gen_context(system_u:object_r:initrc_exec_t,s0) /opt/nfast(/.*)? gen_context(system_u:object_r:pki_common_t, s0) /dev/nfast(/.*)? gen_context(system_u:object_r:pki_common_dev_t,0)
其他规则允许
pki thet
域与标记为 pki_common_t
和 pki_common_dev_t
的文件进行通信。
如果更改了任何 nCipher 配置(即使它位于默认目录中,
/opt/nfast
),请运行 restorecon 以确保所有文件都被正确标记:
restorecon -R /dev/nfast restorecon -R /opt/nfast
如果在不同的位置安装 nCipher 软件,或者使用不同的 HSM,则需要使用 semanage 重新标记默认的证书系统 HSM 策略。