linux必须运行在enforcing,Linux系统中SELinux的工作模式(Disabled、Permissive和Enforcing)...

通过对SElinux的介绍,初学者可以这样认为,在传统Linux系统使用访问控制方式的基础上,附加使用SELinux可增强系统安全。那么,SELinux是如何运行的呢?

在解释 SELinux 的工作模式之前,先解释几个概念。主体(Subject):就是想要访问文件或目录资源的进程。想要得到资源,基本流程是这样的:由用户调用命令,由命令产生进程,由进程去访问文件或目录资源。在自主访问控制系统中(Linux默认权限中),靠权限控制的主体是用户;而在强制访问控制系统中(SELinux中),靠策略规则控制的主体则是进程。

目标(Object):这个概念比较明确,就是需要访问的文件或目录资源。

策略(Policy):Linux系统中进程与文件的数量庞大,那么限制进程是否可以访问文件的 SELinux规则数量就更加烦琐,如果每个规则都需要管理员手工设定,那么SELinux的可用性就会极低。还好我们不用手工定义规则,SELinux默认定义了两个策略,规则都已经在这两个策略中写好了,默认只要调用策略就可以正常使用了。这两个默认策略如下:-targeted:这是SELinux的默认策略,这个策略主要是限制网络服务的,对本机系统的限制极少。我们使用这个策略已经足够了。

-mls:多级安全保护策略,这个策略限制得更为严格。

安全上下文(Security Context):每个进程、文件和目录都有自己的安全上下文,进程具体是否能够访问文件或目录,就要看这个安全上下文是否匹配。如果进程的安全上下文和文件或目录的安全上下文能够匹配,则该进程可以访问这个文件或目录。当然,判断进程的安全上下文和文件或目录的安全上下文是否匹配,则需要依靠策略中的规则。举个例子,我们需要找对象,男人可以看作主体,女人就是目标了。而男人是否可以追到女人(主体是否可以访问目标),主要看两个人的性格是否合适(主体和目标的安全上下文是否匹配)。不过,两个人的性格是否合适,是需要靠生活习惯、为人处世、家庭环境等具体的条件来进行判断的(安全上下文是否匹配是需要通过策略中的规则来确定的)。

我们画一张示意图,来表示一下这几个概念之间的关系,如图1所示。

36e4f03ce287d42ce7d100f57668492e.png

图1 SELinux运行模式的相关概念

解释一下这张示意图:当主体想要访问目标时,如果系统中启动了SELinux,则主体的访问请求首先需要和SELinux中定义好的策略进行匹配。如果进程符合策略中定义好的规则,则允许访问,这时进程的安全上下文就可以和目标的安全上下文进行匹配;如果比较失败,则拒绝访问,并通过AVC(Access Vector Cache,访问向量缓存,主要用于记录所有和SELinux相关的访问统计信息)生成拒绝访问信息。如果安全上下文匹配,则可以正常访问目标文件。当然,最终是否可以真正地访问到目标文件,还要匹配产生进程(主体)的用户是否对目标文件拥有合理的读、写、执行权限。

我们在进行SELinux管理的时候,一般只会修改文件或目录的安全上下文,使其和访问进程的安全上下文匹配或不匹配,用来控制进程是否可以访问文件或目录资源;而很少会去修改策略中的具体规则,因为规则实在太多了,修改起来过于复杂。不过,我们是可以人为定义规则是否生效,用以控制规则的启用与关闭的。

SELinux的工作模式

SELinux提供了3种工作模式:Disabled、Permissive和Enforcing,而每种模式都为Linux系统安全提供了不同的好处。

Disable工作模式(关闭模式)

在Disable模式中,SELinux被关闭,默认的DAC访问控制方式被使用。对于那些不需要增强安全性的环境来说,该模式是非常有用的。

例如,若从你的角度看正在运行的应用程序工作正常,但是却产生了大量的SELinux AVC拒绝消息,最终可能会填满日志文件,从而导致系统无法使用。在这种情况下,最直接的解决方法就是禁用SELinux,当然,你也可以在应用程序所访问的文件上设置正确的安全上下文。

需要注意的是,在禁用SELinux之前,需要考虑一下是否可能会在系统上再次使用SELinux,如果决定以后将其设置为Enforcing或Permissive,那么当下次重启系统时,系统将会通过一个自动SELinux文件重新进程标记。

关闭SELinux的方式也很简单,只需编辑配置文件/etc/selinux/config,并将文本中SELINUX=更改为SELINUX=disabled即可,重启系统后,SELinux就被禁用了。

Permissive工作模式(宽容模式)

在 Permissive 模式中,SELinux 被启用,但安全策略规则并没有被强制执行。当安全策略规则应该拒绝访问时,访问仍然被允许。然而,此时会向日志文件发送一条消息,表示该访问应该被拒绝。

SELinux Permissive模式主要用于以下几种情况:

审核当前的SELinux策略规则;

测试新应用程序,看看将SELinux策略规则应用到这些程序时会有什么效果;

解决某一特定服务或应用程序在SELinux下不再正常工作的故障。

某些情况下,可使用audit2allow命令来读取SELinux审核日志并生成新的SELinux规则,从而有选择性地允许被拒绝的行为,而这也是一种在不禁用SELinux的情况下,让应用程序在Linux系统上工作的快速方法。

Enforcing工作模式(强制模式)

从此模式的名称就可以看出,在Enforcing模式中,SELinux被启动,并强制执行所有的安全策略规则。

本文来自投稿,不代表访得立场,如若转载,请注明出处:http://www.found5.com//view/1058.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值