Ubuntu 启用 SELinux 宽松模式 Permissive 指南
前置说明
- Ubuntu 默认使用 AppArmor 作为内核级安全模块,SELinux 并非默认启用;在 Ubuntu 上启用 SELinux 属于可选方案,功能与生态支持相对有限。若需要完整的 SELinux 体验,可考虑 CentOS/RHEL 等发行版。以下步骤适用于在 Ubuntu 上手动安装并切换到 SELinux 的宽松模式(Permissive)。
安装与启用步骤
- 安装 SELinux 基础组件与默认策略
执行:sudo apt-get update && sudo apt-get install selinux-basics selinux-policy-default auditd audispd-plugins
说明:安装策略与审计组件,为后续策略加载与日志分析做准备。
- 激活 SELinux
执行:sudo selinux-activate
说明:准备 SELinux 运行环境(如策略与文件标记流程),准备完成后按提示重启。
- 重启系统
执行:sudo reboot
- 将运行模式设为宽松模式
编辑配置文件:sudo nano /etc/selinux/config,将 SELINUX= 设为
SELINUX=permissive
保存后再次重启:sudo reboot
说明:Permissive 模式会记录违规但不阻断,便于排查与策略调优。
验证与切换操作
- 查看当前模式
执行:getenforce(返回 Permissive 或 Enforcing)
- 查看详细状态
执行:sestatus(可见 SELinux status、Mode、Loaded policy name 等)
- 在 Enforcing 与 Permissive 间临时切换(无需重启)
切换为宽松:sudo setenforce 0
切换为强制:sudo setenforce 1
说明:临时切换仅对当前运行有效,永久生效需修改 /etc/selinux/config 并重启。
日志分析与策略调优
- 查看 AVC 拒绝日志
执行:sudo ausearch -m avc -ts recent
说明:定位被策略拒绝的访问尝试,便于生成或调整规则。
- 解释拒绝原因并生成建议规则
执行:sudo ausearch -m avc -ts recent | audit2why
说明:将 AVC 日志转换为可读解释,并给出基于策略的修改建议,辅助从 Permissive 向 Enforcing 平滑过渡。
常见问题与提示
- 从 Disabled 切换到 Permissive/Enforcing 通常需要重启;在已启用状态下,Enforcing 与 Permissive 之间可用
setenforce 即时切换。
- 若系统曾完全禁用 SELinux,后续改为启用时可能需要一次文件系统重新标记(创建
/.autorelabel 并重启)以确保文件安全上下文正确。
- 在 Ubuntu 上 SELinux 的可用性与工具链不如 RHEL/CentOS 完备;若长期需要 SELinux 的完整特性与官方支持,建议优先选择以 SELinux 为核心的发行版。