在 Ubuntu 上配置 SELinux 和在 RHEL/CentOS 上不太一样,因为 Ubuntu 默认使用的是 AppArmor。下面我分步骤说明,包含是否建议、安装、启用、配置、验证以及排错。
cat /proc/fs/security*
# 或
aa-status
如果看到 apparmor,说明当前是 AppArmor。
sudo apt update
sudo apt install selinux selinux-basics selinux-policy-default auditd
sudo systemctl disable apparmor
sudo systemctl stop apparmor
或者内核参数方式(更彻底):
编辑 /etc/default/grub:
GRUB_CMDLINE_LINUX="apparmor=0 selinux=1"
然后:
sudo update-grub
编辑:
sudo nano /etc/selinux/config
内容示例:
SELINUX=permissive
SELINUXTYPE=default
⚠️ 第一次一定要用 permissive,不要直接 enforcing
sudo selinux-activate
sudo reboot
重启后执行:
sestatus
输出示例:
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 31
确认日志无大量拒绝:
sudo ausearch -m avc -ts recent
如果没问题:
sudo setenforce 1
永久生效:
SELINUX=enforcing
/etc/selinux/configpermissivesudo restorecon -Rv /etc/ssh
sudo fixfiles onboot
sudo reboot
| 场景 | 建议 |
|---|---|
| 学习 SELinux | ✅ Ubuntu 可装 |
| 生产服务器 | ❌ 建议用 RHEL/CentOS |
| 不想折腾 | ✅ 用 AppArmor |
如果你愿意,我可以:
你现在是 学习 / 实验 / 生产 场景?