当前位置: 首页 > 工具软件 > SELinux > 使用案例 >

SELINUX

诸葛苏燕
2023-12-01

一,背景和概念
SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问的控制,是Linux历史上最杰出的新安全子系统。
SELinux提供了一种灵活的强制访问控制(MAC)系统,且内嵌于Linux Kernel中。SELinux定义了系统中每个用户,进程,应用和文件的转变的权限,然后它可以使用一个安全策略来控制这些实体(用户,进程,应用和文件)之间的交互,安全策略指定如何安全或宽松的进行检查。

  1. 对内核对象和服务的访问控制
  2. 对进程初始化,继承和程序执行的访问控制
  3. 对文件系统,目录,文件和打开文件描述的访问控制
  4. 对端口,信息和网络接口的访问控制

安全值:在Linux里所有的文件和进程都有一个值。(当满足或者匹配到这个安全值,才能进行访问)
二,SELinux的作用及权限管理机制
1,SELinux的作用
SELinux主要作用就是最大限度的减小系统中服务进程可访问的资源(最小权限原则)。
2,DAC
在没有使用SELinux的操作系统中,决定一个资源是否能被访问的因素:某个资源是否拥有对应用户的权限(读,写,执行)。但是由于root用户不受任何管制,系统上任何资源都可以无限制的访问。
这种权限管理机制主体是用户,也称自主访问控制(DAC)。
3,MAC
在使用SELinux的操作系统中,决定一个资源能否被访问的因素除了上述因素外,还需要判断每一类进程是否拥有对某一类资源的访问权限。(即使是root用户也需要判断,因此进程的活动空间也被压缩到最小。安全性大大增加)
这种权限管理机制的主体是进程,也称为强制访问控制(MAC)。而MAC又分为俩种方式:类别安全(MCS)模式;多级安全(MLS)模式。
三,MSC模式下操作
1,SELinux基本概念
1)主体(Subject):可以完全等同于进程(为了方便理解,以下均把进程视为主体)
2)对象(Object):被主体访问的资源,可以是文件,目录,端口,设备等(为了方便理解,以下均把文件或者目录视为对象)
3)政策和规则(Policy&Rule)
系统中通常有大量的文件和进程,为了节省时间和开销,通常我们只是选择性的对某些进程进行管制。而哪些进程需要管制,要怎么管制都是由政策决定的。一套政策里面有多个规则。部分规则可以按照需求启用或者禁用(以下把该类型的规则称为布尔型规则)。规则是模块化的,可扩展的。在安装新的应用程序时,应用程序可通过添加新的模块来添加规则。用户也可以手动增减规则。
4)安全上下文(Security Context)

  • SELinux的核心:安全上下文
  • 安全上下文:进程安全上下文;文件安全上下文【一个进程上下文对应多个文件安全上下文】
  • 只有俩者的安全上下文对应上了,进程才能访问文件,它们的对应关系是由政策中的规则决定的。
  • 文件安全上下文由文件创建的位置和创建文件的进程所决定的。而且系统有一套默认值,用户也可以对默认值进行设定。需要注意的是,单纯的移动文件操作并不会改变文件的安全上下文。
  • 安全上下文的结构及含义:有四个阶段,分别用冒号隔开。(system_u:object_r:admin_home_t:s0)。

(system_u:object_r:admin_home_t:s0)
用户身份:角色:类型(标签):安全级别
system_u指的是selinux用户,root表示root账户身份,user_u表示普通用户无特权用户,system_u表示系统用户,通过用户可以确定身份类型,一般搭配角色使用。身份和不同的角色搭配时有权限不同,虽然可以使用su命令切换用户但对于selinux的用户并没有发生改变,账户之间切换时此用户身份不变,在targeted策略环境下用户标识没有实质性作用。
object_r:一般为文件目录角色,system_r一般为进程的角色,在targeted策略环境中用户的角色一般为system_r。用户的角色类型类似于用户组的概念,不同的角色具有不同的身份权限,一个用户具备多个角色,但是同一时间只能使用一个角色。在targeted策略环境下角色没有实质作用,在targeted策略环境中所有的进程文件的角色都是system_r角色。
admin_home_t:文件和进程都有一个类型,SELinux依据类型的相关组合来限制存取权限

5)SELinux的工作模式(/etc/selinux/config)
(1)enforcing:强制模式。违反SELinux规则的行为被阻止并记录到日志中。
(2)permissive:宽容模式。违反SELinux规则的行为只会记录到日志中。一般为调试用。
(3)disabled:关闭SELinux。
切换工作模式:需要重启系统

级别切换:
禁用<——>强制:下次启动生效
禁用<——>警告:下次启动生效
强制<——>警告:即时生效

enforcing和permissive切换命令:setenforce 1|0
打开SELinux之后的第一次重启速度慢的原因:系统必须为磁盘中的文件创建安全上下文。
将selinux模式改为强制模式重启慢的原因:selinux在操作系统的安全体制结构上进行扩张,增强对进程模块文件打上了一些安全标记。

 类似资料: