温馨提示×

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
  • 重启系统(首次启动因重标记可能耗时较长):
    • sudo reboot
  • 验证状态:
    • getenforce(应返回 PermissiveEnforcing
    • sestatus(应显示 enabled、Loaded policy name 等关键信息)

临时切换运行模式

  • EnforcingPermissive 之间切换(无需重启):
    • 切换为宽容模式: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
  • 风险提示:切换或禁用安全模块会影响系统安全态势与业务可用性,操作前请做好备份与变更评估,优先在非生产环境验证。

0