温馨提示×

怎样学习ubuntu selinux

小樊
45
2026-10-04 09:50:13
栏目: 智能运维

学习 Ubuntu 上的 SELinux 可以从“先理解、再对比、后实操”的思路来,下面给你一个比较系统的学习路径。


一、先搞清楚:Ubuntu 默认用的是什么?

重要前提:

  • Ubuntu 默认使用的是 AppArmor,不是 SELinux
  • SELinux 在 RHEL / CentOS / Rocky / Fedora 中才是默认

所以学 Ubuntu 上的 SELinux,本质是:

在 Ubuntu 上“手动启用并管理 SELinux”


二、SELinux 基础概念(必须懂)

在学习命令前,先理解这几个核心概念:

1. SELinux 的三种模式

enforcing   # 强制模式(真的拦截)
permissive  # 只记录不拦截(排错用)
disabled    # 关闭

查看当前模式:

getenforce

2. 三种策略类型

  • Targeted(最常用):只管特定服务
  • MLS / MCS:多级安全(少见)

3. 核心思想

不是“用户能不能访问文件”,而是
“进程能不能访问资源”


三、在 Ubuntu 上启用 SELinux(实操开始)

1. 安装 SELinux 相关包

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

2. 激活 SELinux

sudo selinux-activate

3. 先设为 permissive(非常重要)

编辑:

sudo nano /etc/selinux/config

内容示例:

SELINUX=permissive
SELINUXTYPE=default

4. 重启系统

sudo reboot

重启后确认:

getenforce
# 应为 Permissive

四、关键命令学习(必须练)

1. 查看安全上下文

ls -Z
ps -Z

2. 修改文件上下文

chcon -t httpd_sys_content_t /var/www/html/index.html

恢复默认:

restorecon -Rv /var/www

3. 查看 SELinux 拒绝日志

sudo ausearch -m avc -ts recent
sudo sealert -a /var/log/audit/audit.log

4. 自动生成策略模块(非常实用)

sudo audit2allow -a
sudo audit2allow -a -M mypolicy
sudo semodule -i mypolicy.pp

五、推荐学习顺序(别跳)

  1. 先学 AppArmor(Ubuntu 原生)
  2. 再学 SELinux 基础概念
  3. 在虚拟机里启用 SELinux(permissive)
  4. 故意制造拒绝(如 Web 服务访问文件)
  5. 用 audit2allow 解决
  6. 最后再切到 enforcing

六、学习资源推荐

官方 / 文档

  • Debian SELinux Wiki(Ubuntu 基于 Debian)
  • Red Hat SELinux 文档(最权威)
  • man selinux, man chcon

书籍

  • 《SELinux by Example》
  • 《Red Hat Enterprise Linux Security Guide》

视频

  • Red Hat SELinux 教程(YouTube)
  • 国内 B 站“SELinux 入门”

七、给你一句学习忠告

不要在生产 Ubuntu 上直接开 enforcing

SELinux 是“配置对了很安全,配置错了很崩溃”

如果你愿意,我可以:

  • 给你一个 Ubuntu + SELinux 实验环境搭建步骤
  • 或针对 Web / Docker / Nginx 场景讲 SELinux 实战

你想从哪一块开始?

0 踩