SElinux强制访问控制机制原理及验证

一、前言

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。是一种基于 标签 运作的MAC强制访问控制实现形式.

2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。SELinux 的结构及配置非常复杂,而且有大量概念性的东西, 如果可以熟练掌握 SELinux 并正确运用,系统的安全性将大大提高.

二、SELinux 的作用及强制访问控制机制原理

2.1 SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。

2.2 SELinux 实现MAC 的具体原理

在使用了 SELinux 的操作系统中,决定一个资源是否能被访问的因素除了上述因素之外,还需要判断每一类进程是否拥有对某一类资源的访问权限。这样一来,即使进程是以 root 身份运行的,也需要判断这个进程的类型以及允许访问的资源类型才能决定是否允许访问某个资源。进程的活动空间也可以被压缩到最小。即使是以 root 身份运行的服务进程,一般也只能访问到它所需要的资源。即使程序出了漏洞,影响范围也只有在其允许访问的资源范围内。安全性大大增加。这种权限管理机制的主体是进程,也称为强制访问控制(MAC)。

三、SELinux 基本概念

3.1 主体(Subject)

可以完全等同于进程。

3.2 对象(Object)

被主体访问的资源。可以是文件、目录、端口、设备等。

3.3 政策和规则(Policy & Rule)

系统中通常有大量的文件和进程,为了节省时间和开销,通常我们只是选择性地对某些进程进行管制。而哪些进程需要管制、要怎么管制是由政策决定的。一套政策里面有多个规则。部分规则可以按照需求启用或禁用(以下把该类型的规则称为布尔型规则)。规则是模块化、可扩展的。在安装新的应用程序时,应用程序可通过添加新的模块来添加规则。用户也可以手动地增减规则。

在 CentOS 7 系统中,有三套政策,分别是:

1. targeted:对大部分网络服务进程进行管制。这是系统默认使用的政策(下文均使用此政策)。

2. minimum:以 targeted 为基础,仅对选定的网络服务进程进行管制。一般不用。

3. mls:多级安全保护。对所有的进程进行管制。这是最严格的政策,配置难度非常大。一般不用,除非对安全性有极高的要求。

政策可以在 /etc/selinux/config 中设定。

3.4 安全上下文(Security Context)

安全上下文是 SELinux 的核心。安全上下文我自己把它分为「进程安全上下文」和「文件安全上下文」。一个「进程安全上下文」一般对应多个「文件安全上下文」。只有两者的安全上下文对应上了,进程才能访问文件。它们的对应关系由政策中的规则决定。文件安全上下文由文件创建的位置和创建文件的进程所决定。而且系统有一套默认值,用户也可以对默认值进行设定。需要注意的是,单纯的移动文件操作并不会改变文件的安全上下文。

 

3.5 SELinux 的工作模式

SELinux 有三种工作模式,分别是:

1. enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。

2. permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。

3. disabled:关闭 SELinux。

SELinux 工作模式可以在 /etc/selinux/config 中设定。如果想从 disabled 切换到 enforcing 或者 permissive 的话,需要重启系统。反过来也一样。enforcing 和 permissive 模式可以通过 setenforce 1|0 命令快速切换。

需要注意的是,如果系统已经在关闭 SELinux 的状态下运行了一段时间,在打开 SELinux 之后的第一次重启速度可能会比较慢。因为系统必须为磁盘中的文件创建安全上下文。

SELinux 日志的记录需要借助 auditd.service 这个服务,请不要禁用它。

3.6 SELinux 工作流程

 

注:上面的安全文本指的就是安全上下文。

四. SELinux 安装验证

1.安装流程

按照install guide 的指导逐步安装

 

 

2. 安装成功后,查看系统策略状态:

 

3. 使用system-config-selinux 命令打开可视化策略编辑器

 

可以看到,可以对文件, 用户, 端口, 策略模块等进行访问策略设置. 在此不再赘述.

4. 以visitor身份访问root权限文件夹:需要身份验证

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值