CentOS 中 SELinux 安全级别选择指南
一、先明确两个维度
二、不同场景的选择建议
| 场景 | 运行模式 | 策略类型 | 说明 |
|---|---|---|---|
| 生产业务服务器 | Enforcing | targeted | 兼顾安全与可用性,是默认且推荐的稳态选择。 |
| 新应用上线或故障排查 | Permissive | targeted | 先放行并记录 AVC 拒绝日志,定位后再回到 Enforcing。 |
| 学习/测试、短期快速交付 | 可临时 Disabled | targeted | 为降低复杂度可临时关闭;上线前应恢复 Enforcing 或改为 Permissive 并调策略。 |
| 高安全/涉密要求 | Enforcing | mls | 需充分评估与专人运维,准备完整的标签与策略工程。 |
三、快速切换与验证
getenforce、sestatussetenforce 0(Permissive)、setenforce 1(Enforcing);仅能在 enforcing/permissive 间切换,不能 setenforce 到 disabled。/etc/selinux/config
SELINUX=enforcing|permissive|disabledSELINUXTYPE=targeted|mlsgetenforce、sestatus 确认;若切到 mls,建议按引导执行文件重标记(如创建 /.autorelabel 或执行 fixfiles -F onboot)。四、排障与策略收敛建议
ausearch -m avc -ts recent 或 grep denied /var/log/audit/audit.log;必要时安装 setroubleshoot 并使用 sealert -l <UUID> 获取可读化建议。audit2allow -a -M mypolicysemodule -i mypolicy.ppsemanage fcontext -a -t <type> "/path(/.*)?"restorecon -R /pathsemanage port -a -t <port_type> -p tcp <port>getsebool -a | grep <服务名> 查看布尔值,必要时 setsebool -P <name> on/off 持久化调整。