SELinux 核心概念与访问控制机制解析
1. SELinux是如何保护资源的?
SELinux 通过安全上下文标记主体与对象,基于预设策略规则强制控制访问行为,并结合最小权限原则和多维度限制,从系统内部层面保护资源,有效防止权限滥用、进程劫持等安全风险。其核心价值在于:即使传统安全机制(如 DAC、root 权限)被突破,仍能通过强制访问控制阻断攻击链。
2. 什么是自由决定的访问控制(DAC)?它有什么特点?
DAC 的核心是 “所有者自主决策”,其优势在于灵活性和易用性,但安全性较弱,适合对安全要求不高的场景。在高安全需求场景中,通常需要结合 MAC、RBAC 等更严格的控制模型。
3. 什么是强制访问控制(MAC)?它有什么特点?
SELinux提供了一个额外的基于对象的安全层,它在粒度规则中定义,称为强制访问控制(MAC),因为MAC策略适用于所有用户,无法通过自主配设置来针对特定用户绕过这些策略。
4. 什么是SELinux上下文?
SELinux 上下文是 SELinux强制访问控制(MAC)机制的核心组成部分,用于标识系统中主体(如进程)和对象(如文件、网络端口)的安全属性。通过为每个资源分配唯一的 “标签”, SELinux 基于这些标签制定访问策略,决定 “主体能否访问对象”,从而实现对系统资源的精细化保护。
5. setenforce 0命令的作用是什么?
setenforce 0 是一个用于控制 SELinux运行状态的命令,其作用是临时将 SELinux 从 “强制模式(Enforcing)” 切换为 “宽容模式(Permissive)”。
6. 定义一条SELinux 文件上下文规则,以便将 /custom 目录及目录中所有文件的上下文类型设置 为httpd_sys_content_t。
要将 `/custom` 目录及其所有内容的SELinux上下文永久设置为 `httpd_sys_content_t`(Web服务器可访问的内容类型),可执行 `sudo semanage fcontext -a -t httpd_sys_content_t "/custom(/.*)?"` 定义永久规则(其中 `-a` 表示添加规则,`-t` 指定类型,`"/custom(/.*)?"` 匹配目录及所有子内容),再执行 `sudo restorecon -Rv /custom` 将规则应用到现有文件(`-R` 递归处理,`-v` 显示详细过程),最后通过 `ls -Z /custom` 验证上下文是否已变更,此规则会永久生效且新增文件也会自动继承该类型。