温馨提示×

SELinux在Ubuntu中如何更新

小樊
33
2025-12-08 13:51:43
栏目: 智能运维

Ubuntu 中更新 SELinux 的正确做法

前置说明

  • Ubuntu 默认不启用 SELinux,默认使用 AppArmor。如未手动安装并启用 SELinux,执行 “更新” 通常没有意义;此时应继续使用 AppArmor 的安全策略管理。若确需 SELinux,需先安装并启用,再谈更新策略与组件。

更新思路总览

  • 已启用 SELinux:通过系统包管理器更新相关软件包,并在需要时重新加载或重建策略,使新规则生效。
  • 未启用 SELinux:无需更新;如要启用,先完成安装与启用,再按“已启用”路径维护策略。

已启用 SELinux 时的更新步骤

  • 更新软件包
    • 执行系统常规更新,确保 SELinux 工具链、策略包与审计组件为最新:
      • sudo apt update && sudo apt full-upgrade
      • 常见相关包:selinux-basics、selinux-policy-default、policycoreutils、selinux-utils、auditd、audispd-plugins。如曾安装过可针对性执行:sudo apt install --only-upgrade <包名>。
  • 检查与切换模式(避免直接 enforcing 导致锁死)
    • 查看状态:sestatus(关注 SELinux statusCurrent mode
    • 建议先切到 permissive 再重启加载新策略:sudo setenforce 0(或编辑 /etc/selinux/config 将 SELINUX=enforcing 改为 SELINUX=permissive,然后 sudo reboot)。
  • 使新策略生效
    • 重启后确认处于 permissiveenforcing,必要时执行:sudo fixfiles -F onboot 或按需 restorecon 刷新文件上下文;如更新了自定义模块,使用:sudo semodule -i <模块名>.pp。
  • 回切 enforcing(可选)
    • 验证无 AVC 拒绝后:sudo setenforce 1(或将配置文件改回 SELINUX=enforcing 并重启)。

从审计日志生成并安装新策略模块

  • 收集拒绝日志:grep avc /var/log/audit/audit.log
  • 生成自定义模块:audit2allow -M mypol
  • 安装模块:sudo semodule -i mypol.pp
  • 应用文件上下文:sudo restorecon -Rv /path/to/your/directory
  • 说明:这是“按需更新策略”的常用方式,用于补齐缺失规则,避免直接放宽全局策略。

未启用 SELinux 时的建议

  • 继续使用 AppArmor 进行强制访问控制,无需安装 SELinux。
  • 若因兼容性需求必须启用 SELinux,请先在测试环境完成全量验证,再在生产环境变更;SELinux 在 Ubuntu 上的支持有限,管理复杂度更高。

0