温馨提示×

如何开启ubuntu selinux

小樊
39
2026-09-22 14:53:43
栏目: 智能运维

Ubuntu 上开启 SELinux 并不像在 RHEL / CentOS 上那样默认启用,因为 Ubuntu 默认使用 AppArmor。下面是从零开始在 Ubuntu 上启用 SELinux 的常规步骤(以常见版本为例,如 20.04 / 22.04)。


一、注意事项(非常重要)

  • Ubuntu 官方并不推荐普通用户启用 SELinux
  • 启用 SELinux 可能导致系统无法启动(尤其是桌面版)
  • 建议:
    • 使用 服务器版
    • 虚拟机 / 测试机 上操作
    • 先设为 permissive 模式,确认无误后再 enforcing

二、安装 SELinux 相关软件包

sudo apt update
sudo apt install selinux selinux-basics selinux-policy-default auditd

三、禁用 AppArmor(避免冲突)

sudo systemctl disable apparmor
sudo systemctl stop apparmor

(可选)彻底屏蔽 AppArmor:

sudo apt remove apparmor

四、激活 SELinux

sudo selinux-activate

该命令会:

  • 修改 GRUB 启动参数
  • 设置 SELinux 为启用状态

五、设置 SELinux 模式

编辑配置文件:

sudo nano /etc/selinux/config

内容示例:

SELINUX=permissive
SELINUXTYPE=default

推荐先使用 permissive(只记录不阻止)


六、重启系统

sudo reboot

七、验证 SELinux 状态

重启后执行:

sestatus

正常输出示例:

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
Current mode:                   permissive
Mode from config file:          permissive

八、从 permissive 切换到 enforcing(谨慎)

确认日志无大量拒绝后:

sudo setenforce 1

或修改配置文件:

SELINUX=enforcing

然后重启。


九、常见问题

1. 系统无法启动

  • 进入恢复模式
  • 修改 /etc/selinux/config
  • 设为 SELINUX=permissivedisabled

2. Ubuntu 官方态度

  • Ubuntu 优先支持 AppArmor
  • SELinux 支持有限,文档较少

十、建议替代方案

如果你只是想要更强的安全隔离:

  • 继续使用 AppArmor
  • ✅ 使用 Ubuntu Pro + hardening
  • ✅ 考虑 RHEL / Rocky / AlmaLinux(SELinux 原生支持)

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • 服务器 / 桌面
  • 使用场景(容器、Web、数据库等)

我可以给你更精确的配置建议。

0