温馨提示×

SELinux在Ubuntu上怎么用

小樊
43
2026-07-13 19:19:29
栏目: 智能运维

SELinux(Security-Enhanced Linux)在 Ubuntu 上默认并不启用,Ubuntu 官方更常用的是 AppArmor。不过你仍然可以手动安装和使用 SELinux。下面给你一个实用、可操作的说明,从“能不能用”到“怎么用”。


一、先说结论(很重要)

Ubuntu 支持 SELinux,但不是默认安全模块
Ubuntu 官方更推荐 AppArmor
服务器 / 学习 SELinux / 合规需求 → 可以用 SELinux
桌面日常使用 → 不建议折腾

如果你只是想做 访问控制 / 安全加固,先确认是否真的需要 SELinux。


二、检查 Ubuntu 当前安全模块

cat /sys/kernel/security/lsm

常见输出:

lockdown,capability,apparmor

说明当前是 AppArmor


三、在 Ubuntu 上安装 SELinux

1️⃣ 安装 SELinux 相关包

sudo apt update
sudo apt install selinux selinux-utils selinux-basics auditd

2️⃣ 激活 SELinux(关键步骤)

sudo selinux-activate

这会:

  • 修改 GRUB 启动参数
  • 启用 SELinux 初始化

然后 必须重启

sudo reboot

四、设置 SELinux 模式

查看当前模式

getenforce

可能结果:

  • Disabled
  • Permissive
  • Enforcing

修改模式(临时)

sudo setenforce 0   # Permissive
sudo setenforce 1   # Enforcing

永久修改(推荐)

编辑:

sudo nano /etc/selinux/config

示例:

SELINUX=permissive
SELINUXTYPE=default

⚠️ 第一次强烈建议用 permissive,否则系统可能起不来


五、SELinux 常见操作命令

查看 SELinux 状态

sestatus

查看文件安全上下文

ls -Z

示例:

-rw-r--r--  user:user unconfined_u:object_r:user_home_t:s0 test.txt

修改文件上下文

sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
sudo restorecon -Rv /var/www/html

查看拒绝日志(非常重要)

sudo ausearch -m avc -ts recent

或:

sudo dmesg | grep avc

六、SELinux + Ubuntu 的常见坑

❌ 1. 和 AppArmor 冲突

Ubuntu 默认启用 AppArmor,建议:

sudo systemctl disable apparmor
sudo reboot

或至少不要同时强依赖两者。


❌ 2. 系统起不来(Enforcing 模式)

✅ 解决方式:

  • 启动时进入 GRUB
  • 添加:
enforcing=0

❌ 3. Ubuntu 对 SELinux 支持不完整

某些策略包不如 RHEL / CentOS 完善,可能需要:

  • 自己写策略
  • 使用 audit2allow

七、何时该用 SELinux(建议)

✅ 以下情况适合用 SELinux:

  • 学习 SELinux
  • 企业合规(等保 / 金融)
  • 服务器安全加固
  • 从 CentOS / RHEL 迁移

❌ 不推荐:

  • Ubuntu 桌面
  • 新手直接 Enforcing
  • 短期项目

八、替代方案(你可能真正需要的)

✅ AppArmor(Ubuntu 默认)

sudo aa-status

AppArmor 更简单,Ubuntu 生态更好。


九、快速决策表

需求 建议
学习 SELinux ✅ 用 Ubuntu / CentOS
Ubuntu 服务器安全 ✅ AppArmor
等保 / 合规 ✅ SELinux
快速上手 ❌ SELinux

如果你愿意,我可以:

  • ✅ 给你 Ubuntu + SELinux 实战示例
  • ✅ 帮你 排查 AVC 拒绝日志
  • ✅ 对比 SELinux vs AppArmor
  • ✅ 给你 最小可用 SELinux 配置

你现在是 学习 / 服务器 / 考试 / 合规 哪一种?

0