Ubuntu SELinux如何开启和关闭
小樊
36
2025-12-20 10:57:16
Ubuntu 上 SELinux 的开启与关闭
前置说明
- Ubuntu 默认不启用 SELinux,而是使用 AppArmor 作为强制访问控制(MAC)框架。若需使用 SELinux,需要手动安装并启用相关组件。SELinux 有三种模式:Disabled(未加载策略)、Permissive(仅记录不拒绝)、Enforcing(强制执行策略)。在 Ubuntu 中,安装后首次启动通常默认进入 Permissive 以便校验策略。
安装与启用 SELinux
- 安装必要软件包与策略(建议先更新索引):
- sudo apt update
- sudo apt install selinux-basics selinux-policy-default auditd
- 激活 SELinux(设置内核启动参数并准备首次标记):
- sudo selinux-activate
- 为首次启用安全上下文重标记创建标记文件:sudo touch /.autorelabel
- 配置模式(编辑配置文件,建议先使用 Permissive 验证):
- sudo nano /etc/selinux/config
- 设置:SELINUX=permissive(或 enforcing);SELINUXTYPE=default
- 重启系统(首次启动因重标记可能耗时较长):
- 验证状态:
- getenforce(应返回 Permissive 或 Enforcing)
- sestatus(应显示 enabled、Loaded policy name 等关键信息)
临时切换运行模式
- 在 Enforcing 与 Permissive 之间切换(无需重启):
- 切换为宽容模式:sudo setenforce 0
- 切换为强制模式:sudo setenforce 1
- 查看当前模式:getenforce
- 注意:从 Permissive 切换到 Enforcing 前,建议在日志中排查潜在拒绝事件,避免业务中断。
永久关闭 SELinux
- 编辑配置文件,将模式设为 Disabled:
- sudo nano /etc/selinux/config
- 设置:SELINUX=disabled
- 保存并重启系统:sudo reboot
- 验证:getenforce 应返回 Disabled,sestatus 显示 SELinux status: disabled。
常见问题与注意事项
- 与 AppArmor 的关系:两者都是 MAC 框架,通常不建议同时启用。启用 SELinux 后,AppArmor 不会生效;如需彻底移除 AppArmor,可先停止并卸载(生产环境谨慎操作):
- sudo systemctl stop apparmor
- sudo apt purge apparmor
- 首次启用务必使用 Permissive 并创建 /.autorelabel,完成文件系统安全上下文重标记后再切换到 Enforcing,以降低因标签缺失导致的访问拒绝风险。
- 日志与排错:SELinux 拒绝日志位于 /var/log/audit/audit.log,可用以下工具分析:
- 查看最近 AVC 拒绝:sudo ausearch -m avc -ts recent
- 生成 AVC 报告:sudo aureport -m avc
- 风险提示:切换或禁用安全模块会影响系统安全态势与业务可用性,操作前请做好备份与变更评估,优先在非生产环境验证。