温馨提示×

ubuntu selinux怎样入门

小樊
40
2026-09-28 12:55:03
栏目: 智能运维

在 Ubuntu 上学习 SELinux,需要先明确一个关键点:

Ubuntu 默认使用的是 AppArmor,而不是 SELinux。
SELinux 主要用于 RHEL / CentOS / Fedora。

所以,“Ubuntu 上入门 SELinux”通常有两种情况:


一、只是想“学习 SELinux 原理和用法”

✅ 推荐方式:在虚拟机里装 CentOS / Rocky / Fedora

入门路线(通用)

  1. 理解基本概念

    • DAC(自主访问控制) vs MAC(强制访问控制)
    • 主体(process)、对象(file / socket)
    • 安全上下文(user:role:type)
    • 策略类型:
      • targeted(最常用)
      • strict
      • MLS
  2. 常用命令

getenforce          # 查看状态
setenforce 0/1      # 临时关闭/开启
sestatus            # 详细信息

ls -Z               # 查看文件上下文
ps -Z               # 查看进程上下文

semanage            # 策略管理
restorecon          # 恢复默认上下文
setsebool           # 布尔开关
ausearch            # 审计日志
sealert             # 错误分析(setroubleshoot)
  1. 典型实验
    • 改 http 目录后修复 SELinux
    • 允许非标准端口
    • 写自定义策略模块

二、坚持在 Ubuntu 上“启用 SELinux”

⚠️ 不推荐生产环境,仅适合学习

1. 安装 SELinux

sudo apt update
sudo apt install selinux selinux-utils policycoreutils

2. 修改启动参数

编辑 GRUB:

sudo nano /etc/default/grub

在 GRUB_CMDLINE_LINUX 加:

security=selinux selinux=1

更新 GRUB:

sudo update-grub

3. 切换模式(先 permissive)

sudo setenforce 0

4. 重启并观察

sestatus

Ubuntu 上 SELinux 支持不完整,很多服务默认策略缺失,容易系统异常。


三、Ubuntu 用户更推荐的学习路径

如果你目标是 系统安全,建议:

  • ✅ 学 AppArmor(Ubuntu 原生)
  • ✅ 再学 SELinux 概念(理论通用)
  • ✅ 用 CentOS 虚拟机做实验

Ubuntu AppArmor 快速体验

sudo aa-status
sudo apt install apparmor-utils
man apparmor

四、学习资源推荐

  • 《SELinux by Example》
  • Red Hat SELinux Guide
  • wiki.ubuntu.com/SELinux
  • danwalsh.livejournal.com(SELinux 作者博客)

总结一句话

Ubuntu 不是学 SELinux 的最佳平台;想入门 SELinux,用 CentOS / Fedora 虚拟机最快。

如果你愿意,我可以:

  • 给你一套 CentOS SELinux 实验清单
  • 或帮你 在 Ubuntu 上配置 SELinux 实验环境

0 踩