温馨提示×

Ubuntu SELinux如何提高系统安全性

小樊
34
2025-12-26 07:01:47
栏目: 智能运维

Ubuntu 启用与配置 SELinux 的实操指南

一 背景与准备

  • Ubuntu 默认使用 AppArmor,如要使用 SELinux 需先安装并启用相关组件,再切换安全框架。准备步骤:
    • 安装基础工具与策略包(不同版本包名略有差异):
      • sudo apt update
      • sudo apt install selinux-basics selinux-utils selinux-policy-default auditd setools
    • 激活 SELinux(会设置内核启动参数并准备策略环境):
      • sudo selinux-activate
    • 重启后验证:
      • sestatus(应显示 enabled,Current mode 为 Permissive 或 Enforcing)
      • getenforce(查看当前运行模式)
    • 说明:首次从“禁用”切换到“启用”时,系统可能需要一次全量文件上下文重标,见下文“首次启用注意事项”。

二 启用与模式切换

  • 三种模式与用途:
    • Disabled:完全关闭(不建议)
    • Permissive:仅记录拒绝事件,不阻断(用于排错)
    • Enforcing:强制执行策略(生产推荐)
  • 常用操作:
    • 查看状态:
      • sestatus
      • getenforce
    • 临时切换(重启失效):
      • sudo setenforce 1(Enforcing)/ 0(Permissive)
    • 永久生效(编辑配置文件):
      • sudo nano /etc/selinux/config
      • 设置:SELINUX=enforcing;SELINUXTYPE=targeted(或 minimum/mls)
      • 保存并重启
    • 重要提示:
      • Disabled 直接改为 Enforcing 容易因文件标签缺失导致服务异常,建议先设为 Permissive 观察日志,再改为 Enforcing
      • 若曾通过内核参数禁用(如 selinux=0enforcing=0),需编辑 /etc/default/grub,移除相关参数后更新 GRUB 并重启:
        • grub2-mkconfig -o /boot/grub2/grub.cfg(BIOS)
        • grub2-mkconfig -o /boot/efi/EFI/*/grub.cfg(UEFI,路径因平台而异)
      • 首次启用或长期禁用后启用,建议创建 /.autorelabel 并重启,触发全量重标,避免上下文错误导致服务启动失败。

三 安全加固与运维要点

  • 管理安全上下文与标签:
    • 查看:ls -Z、ps -eZ、secon
    • 修复/重标:restorecon、fixfiles、setfiles(新增策略或迁移数据后执行)
  • 策略与布尔值调优:
    • 查看/切换布尔值:getsebool、setsebool -P(加 -P 永久生效)
    • 例:限制用户从家目录执行程序
      • sudo setsebool -P allow_user_exec_content off
    • 模块管理:semodule -l(列出现有模块)、必要时用 audit2allow 生成本地策略模块并加载(先分析日志,最小化授权)
  • 日志与排错:
    • 审计日志:/var/log/audit/audit.log
    • 辅助分析:ausearch、sealert(图形/文本分析工具)
    • 排错流程建议:Permissive 模式验证 → 依据日志定位 → 用布尔值/本地模块最小化放行 → 回到 Enforcing。

四 与防火墙和其他安全措施的协同

  • SELinux 是 MAC 层,应与网络层防护协同:
    • Ubuntu 常用 UFW 做基础防火墙:
      • sudo ufw enable
      • sudo ufw allow 22/tcp,80/tcp,443/tcp
      • sudo ufw status verbose
  • 同时做好系统基线与最小化:
    • 及时更新(apt update/upgrade)
    • 仅开启必需服务,禁用不必要服务
    • 强化 SSH(禁用 root 登录、使用密钥登录、按需改端口)
    • 配置密码/口令策略与登录审计
  • 以上措施与 SELinux 互补,能显著降低攻击面并提升整体安全态势。

五 常见注意事项与最佳实践

  • 默认策略选择:优先使用 targeted,在可控范围内逐步引入更严格的 mls/minimum
  • 变更节奏:先 Permissive 验证,再 Enforcing;任何策略调整遵循“最小权限”原则。
  • 文件与数据迁移:拷贝后执行 restorecon -R 修正标签,避免因标签错误引发访问拒绝。
  • 容器与虚拟化:确保宿主机与客体(容器/VM)策略一致,必要时为容器加载专用模块。
  • 备份与回滚:变更前备份 /etc/selinux/config 与关键策略模块;保留回滚方案。
  • 性能影响:SELinux 会带来一定开销,但在正确配置下通常可控;以安全收益为先,结合业务压测验证。

0