SELinux在Ubuntu中的工作原理基于强制访问控制(MAC),通过为系统资源(进程、文件、端口等)打上安全上下文标签,并依据策略规则限制主体(进程)对客体(资源)的访问,即使进程拥有root权限也无法绕过策略。
安全上下文(Security Context)
每个进程、文件、端口等资源都会被标记唯一的上下文标签(如httpd_t、httpd_sys_content_t),包含用户、角色、类型等信息,用于标识其安全级别和访问权限。
ls -Z(文件/目录)、ps -Z(进程)。策略规则(Policy Rules)
httpd_t进程访问httpd_sys_content_t类型的文件,但禁止访问其他类型的文件。工作模式
/var/log/audit/audit.log)。决策流程
当进程尝试访问资源时,内核依次检查:
sudo apt install selinux-basics selinux-policy-default
sudo selinux-activate # 启用SELinux
sudo setenforce 0(Permissive)/ 1(Enforcing)。/etc/selinux/config,修改SELINUX=参数后重启。semanage:管理文件/端口标签、布尔值(如允许服务访问特定端口)。audit2allow:根据日志生成自定义策略模块,解决策略拦截问题。参考来源: