SELinux是Linux内核中的强制访问控制安全模块,它通过策略来规定进程能访问哪些资源。在实际使用中,SELinux主要提供三种策略类型,分别是 targeted、minimum 和 mls。下面先说明它们的核心区别与适用场景。

一、SELinux的三种策略类型
1. targeted 策略
这是绝大多数Linux发行版默认采用的策略。它并不限制系统中的所有进程,而是只针对被认定为敏感的网络服务(如httpd、mysqld、sshd等)进行强制访问控制,普通用户进程仍使用较宽松的约束。该策略在安全性与易用性之间取得了较好平衡。
2. minimum 策略
minimum 可以理解为 targeted 的精简版本。它仅对极少数核心服务施加限制,资源占用更低,适合容器、轻量虚拟机或嵌入式环境。在这些场景中,往往只需要保护少数关键守护进程,使用 minimum 能减少策略调试成本。
3. mls 策略
mls 全称 Multi-Level Security,提供多级安全机制。它基于Bell-LaPadula模型,对数据和进程划分安全等级,严格控制信息从高密级流向低密级。该策略配置复杂,通常用于政府、军事等对保密性要求极高的环境。
二、三种策略对比
| 策略类型 | 限制范围 | 适用场景 | 配置难度 |
|---|---|---|---|
| targeted | 敏感网络服务 | 通用服务器 | 低 |
| minimum | 极少核心服务 | 容器、轻量环境 | 低 |
| mls | 全系统多级等级 | 高密级合规环境 | 高 |
三、如何查看与修改策略类型
系统当前使用的SELinux策略类型记录在 /etc/selinux/config 文件中。我们可以用文本编辑器查看 SELINUXTYPE 的值。
# 查看当前策略类型配置 grep SELINUXTYPE /etc/selinux/config # 输出示例 SELINUXTYPE=targeted
如果需要切换策略,应修改该文件中的 SELINUXTYPE 行,然后重新打标并重启系统。例如改为 minimum:
# 修改策略类型为 minimum sed -i 's/^SELINUXTYPE=.*/SELINUXTYPE=minimum/' /etc/selinux/config # 重新对整个文件系统打标 touch /.autorelabel # 重启使策略生效 reboot
四、策略选择建议
- 普通业务服务器:直接使用默认的 targeted 即可,配合
setsebool与审计日志调整规则。 - 容器宿主机或边缘节点:可评估 minimum,降低策略维护负担。
- 涉及敏感数据分级的单位:在专业人员支持下启用 mls,并做完整培训。
注意:修改SELinux策略类型会影响系统访问控制行为,操作前应在测试环境验证,并确认有办法通过控制台修复可能的启动异常。
通过上述说明,我们可以明确SELinux的三种策略类型及其定位。理解 targeted、minimum 与 mls 的差异,是根据自身业务合理落地Linux强制访问控制的第一步。