温馨提示×

Ubuntu下SELinux开启方法

小樊
40
2025-12-28 05:40:49
栏目: 智能运维

Ubuntu 下启用 SELinux 的完整步骤

前置说明与准备

  • Ubuntu 默认使用 AppArmor 作为强制访问控制(MAC)框架,SELinux 并非默认启用;在 Ubuntu 上启用 SELinux 属于可选操作,部分功能与生态支持不如 RHEL/CentOS 完备,生产环境需充分评估与测试。
  • 建议准备:可回滚的快照/备份、控制台访问权限、对 SELinux 基础与日志排查有基本了解。

安装与启用步骤

  1. 更新索引并安装必要软件包
    执行:sudo apt update
    安装:sudo apt install selinux-basics selinux-policy-default auditd(auditd 用于记录 SELinux 拒绝事件,便于排错)。
  2. 激活 SELinux
    执行:sudo selinux-activate(该脚本会配置启动参数以在内核命令行加入 SELinux 支持)。
  3. 配置启动参数(可选,若 selinux-activate 未生效时手动设置)
    编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX 行追加:security=selinux
    更新引导:sudo update-grub
    重启:sudo reboot
  4. 设置 SELinux 运行模式
    编辑 /etc/selinux/config,将 SELINUX= 设为:
    • enforcing(强制模式)
    • permissive(宽容模式,仅告警不阻断,便于初期排错)
    • disabled(禁用)
      保存后重启生效。
  5. 验证启用结果
    执行:sestatusgetenforce
    期望看到:SELinux status: enabled,且 Current mode 与配置一致。

常用操作与排错

  • 临时切换模式(无需重启)
    设为宽容:sudo setenforce 0;设为强制:sudo setenforce 1(仅在当前会话有效,重启后以 /etc/selinux/config 为准)。
  • 查看与恢复文件安全上下文
    查看:ls -Z /path;恢复默认标签:sudo restorecon -v /path
  • 策略与布尔值管理
    安装策略工具后可管理布尔值(示例):sudo setsebool -P httpd_enable_homedirs 1(使 Apache 可访问用户主目录)。
  • 查看拒绝日志与生成报告
    查看 AVC 拒绝:sudo ausearch -m AVC -ts today;生成 AVC 报告:sudo aureport -m avc -ts recent;详细审计日志位于 /var/log/audit/audit.log

注意事项与建议

  • 初次上线建议先设为 permissive 观察日志与告警,确认无明显阻断后再切换为 enforcing
  • 若系统曾运行 AppArmor,启用 SELinux 后请确认服务与策略不冲突,必要时调整或禁用 AppArmor 相关配置。
  • 遇到访问被拒时,优先检查 /var/log/audit/audit.log 的 AVC 记录,使用 ausearch/aureport 辅助定位,再按需调整文件上下文或布尔值。
  • Ubuntu 上 SELinux 的可用性与工具链支持相对有限,若需更完善的 SELinux 生态与文档,可考虑 RHEL/CentOS 等发行版。

0