RHEL8:配置SELinux

来自CloudWiki
跳转至: 导航搜索

配置SELinux

SELinux简介
在SELinux访问控制体系的限制下,进程只能访问那些在他的任务中所需要的文件,从而实现系统的安全性。
SELinux(Security-Enhanced Linux,安全增强型Linux)是美国国家安全局(NAS)对于强制访问控制的实现,在这种访问控制体系的限制下,进程只能访问哪些在他的任务中所需的文件。SELinux在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的控制概念。

在SELinux中定义了许多类型(TYPE),每一个进程、文件、设备等都必须标识他所属的类型进程只能读取相同类型的文件,如果没有相关类型,并且SELinux不允许读取的时候,则无法读取文件。SELinux除了约束进程读取文件的能力之外,还限制进程对设备、网络联机、通信端口、跨进程通信的读取能力,并提供更细致的读取控制。
配置教程
三种模式:
Enforcing:强制模式,在selinux运作时,已经开始限制domain/type。
permissive: 警告模式,在selinux运作时,会有警告讯息,但不会限制domain/type的存取。
disabled: 关闭模式。
可用getenforce查看selinux状态。

getenforce

打开配置文件vi /etc/selinux/config中的“SELINUX”参数的值

# SELINUX=enforcing  原始配置
SELINUX=disabled    关闭selinux

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

目前系统文件权限的管理有两种:DAC(传统的) 和 MAC(SELinux)

1.2 DAC
传统的文件权限与帐号关系:自主式存取控制, DAC(Discretionary Access Control, DAC)

在没有使用 SELinux 的操作系统中,决定一个资源是否能被访问的因素是:某个资源是否拥有对应用户的权限(读、写、执行)。

只要访问这个资源的进程符合以上的条件就可以被访问。

而最致命问题是,root 用户不受任何管制,系统上任何资源都可以无限制地访问。

这种权限管理机制的主体是用户,也称为自主访问控制(DAC)。

1.3 MAC
以政策规则订定特定程序读取特定文件:委任式存取控制,MAC

在使用了 SELinux 的操作系统中,决定一个资源是否能被访问的因素除了上述因素之外,还需要判断每一类进程是否拥有对某一类资源的访问权限。

这样一来,即使进程是以 root 身份运行的,也需要判断这个进程的类型以及允许访问的资源类型才能决定是否允许访问某个资源。进程的活动空间也可以被压缩到最小。

即使是以 root 身份运行的服务进程,一般也只能访问到它所需要的资源。即使程序出了漏洞,影响范围也只有在其允许访问的资源范围内。安全性大大增加。

这种权限管理机制的主体是进程,也称为强制访问控制(MAC)。

而 MAC 又细分为了两种方式,一种叫类别安全(MCS)模式,另一种叫多级安全(MLS)模式。
在 DAC 模式下,只要相应目录有相应用户的权限,就可以被访问。
在 MAC 模式下,还要受进程允许访问目录范围的限制。