学习 Ubuntu 下的 SELinux 需要明确一点:Ubuntu 默认使用的是 AppArmor,而不是 SELinux。SELinux 主要出现在 RHEL / CentOS / Fedora 等系统上。不过,Ubuntu 也可以安装和启用 SELinux,只是配置方式略有不同。
下面我给你一个从入门到可实操的学习路线。
SELinux(Security-Enhanced Linux) 是 Linux 的**强制访问控制(MAC)**机制。
核心概念:
Enforcing:强制执行Permissive:只记录不阻止Disabled:关闭cat /sys/kernel/security/lsm
默认通常看到:
lockdown,yama,apparmor
sudo apt update
sudo apt install selinux selinux-utils policycoreutils
编辑 GRUB:
sudo nano /etc/default/grub
在 GRUB_CMDLINE_LINUX 中添加:
security=selinux selinux=1
更新 GRUB:
sudo update-grub
重启:
sudo reboot
sestatus
getenforce
sudo setenforce 0 # Permissive
sudo setenforce 1 # En enforcing
/etc/selinux/config
示例:
SELINUX=enforcing
SELINUXTYPE=default
ls -Z
ps -Z
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www(/.*)?"
sudo restorecon -Rv /var/www
semanage:策略管理restorecon:恢复上下文setsebool:布尔开关ausearch / sealert:日志分析sudo ausearch -m avc -ts recent
sudo apt install setroubleshoot
sealert -a /var/log/audit/audit.log
sudo audit2allow -a
ausearch + sealert 分析audit2allow✅ Ubuntu 可以学 SELinux
❌ 但不如 CentOS/Fedora 顺滑
✅ 如果你是为了 面试 / 运维 / 红帽认证,建议直接用 CentOS Stream 或 Fedora
如果你愿意,我可以:
你更想从哪一块开始?