温馨提示×

Ubuntu SELinux功能介绍

小樊
46
2025-11-14 21:06:16
栏目: 智能运维

Ubuntu 中的 SELinux 功能与定位

核心概念与默认策略

  • SELinux(Security-Enhanced Linux)是 Linux 内核的强制访问控制(MAC)框架,由NSA主导开发,通过为进程与对象打上安全上下文并强制执行策略来限制越权访问。与基于路径的 AppArmor 不同,SELinux 的策略模型更细粒度、可组合性更强。Ubuntu 默认启用的是 AppArmor,而 SELinux 并非默认启用,在 Ubuntu 上的支持与生态相对有限,部分功能或工具可能需要额外安装与适配。

在 Ubuntu 上的作用与价值

  • 最小权限执行:仅允许进程完成其任务所必需的操作,缩小攻击面。
  • 进程与服务隔离:将不同应用划分到独立安全域,降低漏洞横向传播风险。
  • 细粒度资源控制:对文件、目录、端口、进程间通信等资源实施访问控制。
  • 审计与告警:记录**访问拒绝(AVC)**等安全事件,便于审计与取证。
  • 策略可定制:通过模块与布尔开关灵活调整策略,适配多种业务场景。
  • 在 Ubuntu 上启用 SELinux 能显著提升安全基线,但需评估与现有组件(尤其是 AppArmor)的兼容性与运维复杂度。

启用与基础管理

  • 安装组件(示例):
    • sudo apt update
    • sudo apt install selinux-basics selinux-policy-default auditd audispd-plugins
  • 查看与切换模式:
    • 查看:getenforce(返回 Enforcing/Permissive/Disabled),sestatus(查看详细状态)
    • 临时切换:sudo setenforce 0|1(分别对应 Permissive/Enforcing)
  • 持久化配置:编辑 /etc/selinux/config,设置 SELINUX=enforcing|permissive|disabled,保存后重启生效
  • 常用运维命令:
    • 策略与端口:sudo semanage port -a -t http_port_t -p tcp 8080
    • 自定义策略:ausearch -m avc -ts recent | audit2allow -M mypol;sudo semodule -i mypol.pp
    • 上下文修复:restorecon -Rv /path
    • 审计查询:ausearch -m avc -ts recent;aureport -m avc
  • 提示:在 Permissive 模式下仅记录不阻断,便于问题排查与策略迭代。

与 AppArmor 的关系与选择建议

  • 互斥与共存:两者同属 MAC 框架,通常不建议同时以强制模式运行;在 Ubuntu 上默认是 AppArmor,如需使用 SELinux,应规划迁移与兼容性验证。
  • 选型建议
    • 追求开箱即用与社区支持度:优先使用 AppArmor(Ubuntu 默认、工具链成熟)。
    • 需要跨发行版一致的安全模型、细粒度策略工程或与 RHEL/CentOS/Fedora 生态对齐:可选择 SELinux
  • 无论选择哪种 MAC 框架,都应结合最小权限原则、最小服务暴露面与完备审计来构建纵深防御。

常见功能与命令速览

功能 关键命令或配置 说明
查看状态 sestatus;getenforce 了解是否启用、当前模式与策略概况
切换模式 setenforce 0/1;/etc/selinux/config 0=Permissive,1=Enforcing;修改后需重启持久化
安全上下文 chcon;restorecon -Rv 临时或永久修复文件/目录上下文
端口标签 semanage port -a -t http_port_t -p tcp 8080 为服务分配合规端口类型
布尔开关 getsebool -a;setsebool -P httpd_enable_homedirs 1 细粒度启用/禁用服务特性
策略生成 ausearch -m avc audit2allow -M mypol;semodule -i mypol.pp
审计分析 ausearch -m avc -ts recent;aureport -m avc 快速定位 AVC 拒绝事件与趋势
以上命令适用于在 Ubuntu 上启用 SELinux 后的常见运维场景,有助于策略验证与问题定位。

0