Red Hat Training

A Red Hat training course is available for RHEL 8

6.3. 将 SELinux 策略切换到 MLS

使用以下步骤将 SELinux 策略从 targeted 切换到多级别安全(MLS)。

重要

红帽不推荐在运行 X 窗口系统的系统中使用 MLS 策略。另外,当您使用 MLS 标签重新标记文件系统时,系统可能会阻止受限制的域访问,这会阻止您的系统正确启动。因此请确定您在重新标记文件前将 SELinux 切换到 permissive 模式。在大多数系统中,您会看到在切换到 MLS 后出现了很多 SELinux 拒绝信息,且其中很多都不容易修复。

步骤

  1. 安装 selinux-policy-mls 软件包:

    # yum install selinux-policy-mls
  2. 在您选择的文本编辑器中打开 /etc/selinux/config 文件,例如:

    # vi /etc/selinux/config
  3. 将 SELinux 模式从 enforcing 改为 permissive,并从 targeted 策略切换到 MLS:

    SELINUX=permissive
    SELINUXTYPE=mls

    保存更改,退出编辑器。

  4. 在启用 MLS 策略前,您必须使用 MLS 标签重新标记文件系统中的每个文件:

    # fixfiles -F onboot
    System will relabel on next boot
  5. 重启系统:

    # reboot
  6. 检查 SELinux 拒绝信息:

    # ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent -i

    因为前面的命令没有涵盖所有情况,请参阅 SELinux 故障排除中有关识别、分析以及修复 SELinux 拒绝的指导。

  7. 在确定您的系统中没有与 SELinux 相关的问题后,通过更改 /etc/selinux/config 中的对应选项将 SELinux 切换回 enforcing 模式:

    SELINUX=enforcing
  8. 重启系统:

    # reboot
重要

如果您的系统没有启动,或者您无法在切换到 MLS 后登录,请将 enforcing=0 参数添加到内核命令行。如需更多信息,请参阅在引导时更改 SELinux 模式

另请注意,在 MLS 中,以 root 用户身份通过 SSH 登录映射到 sysadm_r SELinux 角色,它与作为 staff_r 中的 root 登录不同。在 MLS 中首次启动系统前,请考虑通过将 ssh_sysadm_login SELinux 布尔值设置为 1 来允许以 sysadm_r 身份登录 SSH 登录。要稍后才启用 ssh_sysadm_login(已在 MLS 中),您需要在 staff_r 中以 root 身份登陆,使用 newrole -r sysadm_r 命令切换到 sysadm_r 中的 root,然后将布尔值设置为 1

验证

  1. 验证 SELinux 是否在 enforcing 模式下运行:

    # getenforce
    Enforcing
  2. 检查 SELinux 的状态是否返回 mls 值:

    # sestatus | grep mls
    Loaded policy name:             mls

其他资源

  • The fixfiles(8), setsebool(8), 和 ssh_selinux(8) man pages.