温馨提示×

怎样配置ubuntu selinux

小樊
40
2026-09-22 14:55:44
栏目: 智能运维

Ubuntu 上配置 SELinux 需要注意一点:Ubuntu 默认使用的是 AppArmor,而不是 SELinux。SELinux 主要在 RHEL / CentOS / Fedora 中使用。不过 Ubuntu 仍然可以安装并启用 SELinux。

下面是从 安装 → 配置 → 启用 → 管理 的完整流程。


一、确认当前状态

getenforce

如果提示命令不存在,说明 SELinux 未安装。


二、安装 SELinux(Ubuntu)

1. 安装必要软件包

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

2. 启用 SELinux

sudo selinux-activate

⚠️ 这一步会修改 GRUB 启动参数,请确保系统可重启。


三、配置 SELinux 模式

编辑配置文件:

sudo nano /etc/selinux/config

示例内容:

SELINUX=enforcing
SELINUXTYPE=default

模式说明:

  • enforcing:强制模式(真正生效)
  • permissive:仅记录不阻止(调试推荐)
  • disabled:关闭

建议第一次使用先设为 permissive


四、重启系统

sudo reboot

重启后检查:

sestatus

五、常见管理命令

查看状态

getenforce
sestatus

临时切换模式

sudo setenforce 0   # permissive
sudo setenforce 1   # enforcing

查看安全上下文

ls -Z
ps -Z

修改文件上下文

sudo semanage fcontext -a -t httpd_sys_content_t "/var/www(/.*)?"
sudo restorecon -Rv /var/www

六、排错(非常重要)

查看 SELinux 拒绝日志

sudo ausearch -m avc -ts recent

或使用:

sudo sealert -a /var/log/audit/audit.log

生成策略模块(排错用)

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

七、和 AppArmor 的冲突

Ubuntu 默认启用 AppArmor,可能与 SELinux 冲突。

禁用 AppArmor(可选)

sudo systemctl disable apparmor
sudo reboot

八、是否推荐使用 SELinux on Ubuntu?

✅ 适合:

  • 安全研究
  • 学习 SELinux
  • 从 RHEL 迁移

❌ 不推荐:

  • 生产 Ubuntu 服务器(AppArmor 更原生)
  • 新手直接使用 enforcing

如果你愿意,可以告诉我:

  • Ubuntu 版本(20.04 / 22.04 / 24.04)
  • 用途(Web / 数据库 / 容器 / 学习)
  • 是否遇到具体报错

我可以给你 针对性配置方案

0