温馨提示×

为何开启ubuntu selinux

小樊
39
2026-10-04 09:56:50
栏目: 智能运维

在 Ubuntu 上开启 SELinux(Security-Enhanced Linux) 的主要原因,和其安全设计目标有关。下面从“为什么要用”以及“Ubuntu 上的特殊情况”两方面说明。


一、为什么要开启 SELinux(通用原因)

SELinux 是 强制访问控制(MAC) 机制,相比传统的 Linux 权限(DAC)有更强的安全能力:

1. 防止权限滥用

  • 即使用户/进程是 root,也受 SELinux 策略限制
  • 防止“一个服务被攻破 → 控制整台机器”

2. 最小权限原则

  • 每个进程只能访问它被允许的资源
  • 例如:Web 服务器不能随便读 /etc/shadow

3. 遏制漏洞影响范围

  • 即使程序有 0day 漏洞,SELinux 也能限制其破坏范围
  • 常用于:
    • 服务器
    • 多用户系统
    • 高安全合规环境

4. 满足合规要求

  • 等保、金融、政务系统常要求 MAC 控制
  • SELinux 是常见合规方案之一

二、Ubuntu 上开启 SELinux 的特殊背景

Ubuntu 默认使用的是 AppArmor,不是 SELinux

  • Ubuntu 官方支持并默认启用 AppArmor
  • SELinux 在 Ubuntu 上 可用但不默认

为什么有人在 Ubuntu 上开启 SELinux?

常见原因包括:

  1. 统一安全策略

    • 公司其他系统用的是 RHEL / CentOS(SELinux)
    • 想在 Ubuntu 上保持一致性
  2. 从 RHEL 迁移

    • 运维熟悉 SELinux
    • 策略可复用
  3. 特定安全需求

    • 需要 SELinux 特有的策略粒度
    • AppArmor 无法满足
  4. 测试 / 学习 SELinux

    • 在 Ubuntu 上验证 SELinux 行为

三、Ubuntu 开启 SELinux 的代价

⚠️ 需注意:

  • Ubuntu 对 SELinux 的 支持不如 RHEL 完善
  • 可能出现:
    • 启动问题
    • 服务异常
    • 需要大量策略调试

一般流程:

安装 selinux 软件包
修改 grub / kernel 参数
切换 enforcing / permissive
排错

四、总结一句话

Ubuntu 开启 SELinux,主要是为了更强的安全隔离和策略控制,但通常只在有特殊需求或跨平台一致性要求时才会这么做。

如果你愿意,我可以:

  • 对比 SELinux vs AppArmor
  • 给你 Ubuntu 开启 SELinux 的具体步骤
  • 或说明 什么场景不推荐在 Ubuntu 用 SELinux

你想看哪一个?

0 踩