学习 Ubuntu 上的 SELinux 可以从“先理解、再对比、后实操”的思路来,下面给你一个比较系统的学习路径。
重要前提:
所以学 Ubuntu 上的 SELinux,本质是:
在 Ubuntu 上“手动启用并管理 SELinux”
在学习命令前,先理解这几个核心概念:
enforcing # 强制模式(真的拦截)
permissive # 只记录不拦截(排错用)
disabled # 关闭
查看当前模式:
getenforce
不是“用户能不能访问文件”,而是
“进程能不能访问资源”
sudo apt update
sudo apt install selinux-basics selinux-policy-default auditd
sudo selinux-activate
编辑:
sudo nano /etc/selinux/config
内容示例:
SELINUX=permissive
SELINUXTYPE=default
sudo reboot
重启后确认:
getenforce
# 应为 Permissive
ls -Z
ps -Z
chcon -t httpd_sys_content_t /var/www/html/index.html
恢复默认:
restorecon -Rv /var/www
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
man selinux, man chcon不要在生产 Ubuntu 上直接开 enforcing
SELinux 是“配置对了很安全,配置错了很崩溃”
如果你愿意,我可以:
你想从哪一块开始?