6.3. 将 SELinux 策略切换到 MLS
使用以下步骤将 SELinux 策略从 targeted 切换到多级别安全(MLS)。
不要在运行 X Window 系统的系统上使用 MLS 策略。另外,当您使用 MLS 标签重新标记文件系统时,系统可能会阻止受限制的域访问,这会阻止您的系统正确启动。因此请确定您在重新标记文件前将 SELinux 切换到 permissive 模式。在大多数系统中,您会看到在切换到 MLS 后出现了很多 SELinux 拒绝信息,且其中很多都不容易修复。
步骤
- 安装 - selinux-policy-mls软件包:- dnf install selinux-policy-mls - # dnf install selinux-policy-mls- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在您选择的文本编辑器中打开 - /etc/selinux/config文件,例如:- vi /etc/selinux/config - # vi /etc/selinux/config- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 SELinux 模式从 enforcing 改为 permissive,并从 targeted 策略切换到 MLS: - SELINUX=permissive SELINUXTYPE=mls - SELINUX=permissive SELINUXTYPE=mls- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 保存更改,退出编辑器。 
- 在启用 MLS 策略前,您必须使用 MLS 标签重新标记文件系统中的每个文件: - fixfiles -F onboot - # fixfiles -F onboot System will relabel on next boot- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 重启系统: - reboot - # reboot- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 检查 SELinux 拒绝信息: - ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent -i - # ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent -i- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 因为前面的命令没有涵盖所有情况,请参阅 SELinux 故障排除中有关识别、分析以及修复 SELinux 拒绝的指导。 
- 在确定您的系统中没有与 SELinux 相关的问题后,通过更改 - /etc/selinux/config中的对应选项将 SELinux 切换回 enforcing 模式:- SELINUX=enforcing - SELINUX=enforcing- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 重启系统: - reboot - # reboot- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
					如果您的系统没有启动,或者您无法在切换到 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。
				
验证
- 验证 SELinux 是否在 enforcing 模式下运行: - getenforce - # getenforce Enforcing- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 检查 SELinux 的状态是否返回 - mls值:- sestatus | grep mls - # sestatus | grep mls Loaded policy name: mls- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow