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