在 Ubuntu 上入门 SELinux,需要先明确一个关键点:
Ubuntu 默认使用的是 AppArmor,而不是 SELinux。
如果你想“入门 SELinux”,通常有两种情况:
- 单纯学习 SELinux 概念(建议用 CentOS/RHEL)
- 在 Ubuntu 上强行启用 SELinux(不推荐新手)
下面我分 概念入门 + Ubuntu 实操 两部分讲。
SELinux(Security-Enhanced Linux)是 强制访问控制(MAC) 系统:
enforcing # 强制执行,违规直接拒绝
permissive # 只记录不拒绝(排错用)
disabled # 关闭
✅ 可以,但要手动装,而且 和 AppArmor 冲突
cat /sys/kernel/security/lsm
Ubuntu 通常是:
lockdown,capability,apparmor
⚠️ 建议用 虚拟机
sudo apt update
sudo apt install selinux-basics selinux-policy-default auditd
sudo systemctl disable apparmor
sudo reboot
sudo selinux-activate
sudo reboot
sestatus
输出示例:
SELinux status: enabled
Current mode: permissive
Mode from config file: permissive
getenforce
sestatus
sudo setenforce 0 # permissive
sudo setenforce 1 # enforcing
ls -Z
ps -Z
semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?"
restorecon -Rv /web
sudo ausearch -m avc -ts recent
sudo sealert -a /var/log/audit/audit.log
sestatus / getenforceavc denied 日志permissive 模式排错如果你是入门 SELinux,不要用 Ubuntu。
✅ 更好的系统:
这些系统:
你可以直接说:
我可以从零带你练。