Security Enhanced Linux (SELinux)是一个访问控制服务,基于安全策略加强对系统资源的访问控制。在系统安全的基础上,解决“May <subject> do <action> to <object>”的访问控制问题。
SELinux是一个Linux内核的扩展模块,通过LSM(Linux Security Module)框架在链接时被加入到Linux内核中。
1. SELinux的组成及工作模型
SELinux是由subjects, objects, security context, object manager和security server组成的。
subjects就是系统中运行的进程,往往会发出访问系统资源的请求。每个subjects都有自己的安全属性,通过security context表示。
objects就是系统中的各种资源,如文件、网络等。每个objects都有自己的安全属性,通过security context表示。
object manager是系统资源的组成部分,知道对资源能够进行什么访问,能够实施对资源的访问。
security server是SELinux的核心,运行在Linux系统的内核中。根据SELinux的策略,检查subjects的安全属性与objects的安全属性是否匹配,从而决定subjects是否能够访问objects。
2. SELinux与DAC的关系
Linux的标准访问控制模型DAC (Discretionary Access Control)通过检查user/grou