SELinux TE规则

SELinux TE规则

ID:45099161

大小:148.12 KB

页数:15页

时间:2019-11-09

SELinux TE规则_第1页
SELinux TE规则_第2页
SELinux TE规则_第3页
SELinux TE规则_第4页
SELinux TE规则_第5页
资源描述:

《SELinux TE规则》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.简介   SELinux策略语言主要描述policy.conf的相关语法,其相关部分如下图所示:2. 类型强制概念   SELinux策略大部分内容都是由多条类型强制规则构成的,这些规则控制被允许的使用权,大多数默认转换标志,审核,以及固定部分的检查。     SELinux策略大部分都是一套声明和规则一起定义的类型强制(TE:TypeEnforcement)策略,一个定义良好、严格的TE策略可能包括上千个TE规则,TE规则数量的巨大并不令人惊奇,因为它们表达了所有由内核暴露出的允许对资源的访问权,这就意味着每个进程对每个资源的访问尝试都必须至少要有一条允许的TE访问规则,如果我们

2、仔细思考一下现代Linux操作系统中进程和资源的数量,就明白为什么在策略中有那么多的TE规则了。当我们添加由TE规则控制的审核配置和标志时,对于具有严格限制的SELinux策略,常常会见到它包含有上千条规则,在“创建和编写SELinux安全策略”中,我们将会讨论如何创建和管理这些大量的规则,本文旨在理解TE规则是如何工作的。  TE规则的绝对数量对理解SELinux策略是一个大的挑战,但是规则本身并不复杂,它们的分类相对较少,所有的规则基本上都属于两类范畴:   • 访问向量(AV)规则   • 类型规则   我们使用AV规则允许或审核两个类型之间的访问权,我们在某些情况下使用类型规则

3、控制默认的标记决定。   SELinux的一个重要概念是TE规则是将权限与程序的访问结合在一起,而不是结合用户。所有SELinux策略语言特性都是处理主体(正常的运行中的进程)对客体(文件、目录和套接字等)的访问权的,主要集中于程序访问控制决策,这也是SELinux的主要益处,它允许SELinux策略编写者基于程序的功能和安全属性,加上用户要完成任务需要的所有访问权做出访问决策,可以将程序限制到功能合适,权限最小化的程度,因此,即使它出了故障或被攻击破坏,但整个系统的安全并不会受到威胁。   SELinux是不会管用户的,可以给同一个程序指定多个域类型(因此有不同的特权集),这样就允许

4、引入角色的概念,尽管如此,访问控制的标准仍然是基于程序的域类型而不是用户的特权。焦点是程序的访问权,而不是用户的访问权。3.类型、属性和别名  正如你从术语类型强制猜测的那样,类型是构成TE规则的最小单位,SELinux主要就是使用类型来确定什么访问是被允许的;属性和别名是为减轻管理和使用类型的策略特性,我们使用属性利用单个标识符来引用一组类型。通常,策略语言允许我们在TE规则中类型的适当位置使用属性,而别名允许我们为类型定义另一个名字,别名标识符和类型标识符做同等地位对待。 3.1类型声明  在使用类型前,必须使用type语句明确地声明一个类型标识符,SELinux没有预定义类型,我

5、们必须自行声明,例如:假设我们想声明一个类型(httpd_t),并打算将其作为Web服务器的域类型,而另一个类型(http_user_content_t)准备应用于用户数据文件,即Web服务器显示内容的文件,我们使用type语句进行声明,如下:  [cpp] viewplaincopy1.type httpd_t;   2.type http_user_content_t;    声明了类型后就可以在安全上下文、TE规则和其它策略语句中使用它们了。   类型声明的语法:   • type类型名称[alias别名集][,属性集];  1)别名集:如果指定的不止一个别名标识符,要在一对大括

6、号中用空格将各个别名区别开来,如:alias{aliasa_taliasb_t}。  2)属性集:是一个或多个预先声明的属性标识符,如果同时指定多个属性标识符,属性之间使用逗号进行分隔,如:typebin_t,file_type,exec_type;  3) 类型声明在整个策略中,以及基础载入模块和非基础载入模块中都是有效的。但在有条件的语句中无效。3.2 类型和属性   可能你已经想到,一个大型的,复杂的策略可能包括上万个代表系统上不同资源的类型,例如:FedoraCore4(FC4)的targeted策略相对较小,但也声明了超过800个类型。由于默认的规则是拒绝所有的访问,所以任何

7、一个访问都需要明确地被允许,这就导致了类型注定会很冗长,这时策略语言的属性特性就派上用场了。属性可以理解为:   1)类型的性质或属性,或二者兼得   2)一组类型   在任何一种情况下,原理都是相同的。   假设我们想让一个备份程序可以访问所有的文件,首先我们创建一个备份应用程序的域类型(backup_t),并允许它访问与任何文件关联的类型:[cpp] viewplaincopy1.type backup_t;   2.allow backu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。