管理 SELinux 安全性
SELinux是如何保护资源的?
SELinux(Security-Enhanced Linux)通过强制访问控制(MAC)机制来保护系统资源。
SELinux 依据预定义的安全策略来管理进程对资源的访问。这些策略详细规定了哪些进程能够访问哪些资源,以及可以执行何种操作。
SELinux 为系统中的每个进程、文件、目录和网络端口等都分配了一个唯一的安全上下文标签。这个标签包含了主体(进程)和客体(资源)的安全信息。当进程尝试访问资源时,SELinux 会比较主体和客体的上下文标签,并根据策略判断是否允许访问。
在进程发起资源访问请求时,SELinux 会在多个层面进行安全检查,包括进程的创建、文件的打开、网络连接的建立等。只有当所有检查都通过时,才会允许访问操作。
什么是自由决定的访问控制(DAC)?它有什么特点?
自由决定的访问控制是一种常见的访问控制模型,在这种模型中,资源的所有者可以自主决定谁能够访问该资源以及可以执行哪些操作。
资源所有者拥有很大的自主权,可以根据自己的需求和判断来设置访问权限,能够适应不同用户和场景的多样化需求。访问控制主要基于用户的身份,例如用户的用户名、用户组等。只要用户的身份符合资源所有者设定的权限条件,就可以访问相应的资源。DAC 的实现相对简单,易于理解和管理,不需要复杂的策略配置和管理机制。然而,这也导致了其安全性相对较低,因为资源所有者可能会因为疏忽或错误配置而导致安全漏洞。
什么是强制访问控制(MAC)?它有什么特点?
强制访问控制(Mandatory Access Control,MAC)是一种更为严格的访问控制模型,在这种模型中,系统会根据预定义的安全策略来强制实施访问控制,而不是由资源所有者自行决定。无论资源所有者的意愿如何,所有的访问请求都必须经过系统的安全检查,只有符合策略的请求才会被允许。
MAC 能够提供更高的安全性,因为它通过系统级的策略来严格控制资源的访问,减少了因用户误操作或恶意行为导致的安全风险。安全策略由系统管理员集中管理和配置,用户无法自行修改访问权限,这确保了策略的一致性和可控性。但同时也增加了管理的复杂性。
什么是SELinux上下文?
SELinux 上下文是一个包含安全信息的标签,用于标识系统中的进程、文件、目录、网络端口等对象。它是 SELinux 强制访问控制机制的核心组成部分,主要由用户、角色、类型组成。
setenforce 0命令的作用是什么?
setenforce 命令用于临时改变 SELinux 的强制模式。setenforce 0 命令的作用是将 SELinux 从强制模式(Enforcing)切换到宽容模式(Permissive)。
在强制模式下,SELinux 会严格执行安全策略,当进程的访问请求违反策略时,会阻止该操作并记录相关的审计信息。而在宽容模式下,SELinux 不会阻止违反策略的访问请求,但会记录这些违规行为的审计信息。这在调试或测试阶段非常有用,管理员可以在不影响系统正常运行的情况下,查看哪些操作违反了 SELinux 策略,以便进行相应的调整和修复。
定义一条SELinux 文件上下文规则,以便将 /custom 目录及目录中所有文件的上下文类型设置为httpd_sys_content_t。
sudo semanage fcontext -a -t httpd_sys_content_t "/custom(/.*)?"