Linux安全中阶教程之SElinux(适合有一定水平的管理员) ...
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux安全中阶教程之SElinux(适合有一定水平的管理员)
一:SElinux(安全增强linux简介)
1:使用SElinux可以将进程放入在特定的SElinux域,同时赋予系统上的资源(如文件,网络套接字,系统调用等)SElinux上下文。装入SElinux的策略(通常作为系统启动过程的一部分),然后决定哪个进程域可以访问哪些资源上下文。
2:在红帽企业版linux 5中,有关SElinux的选择有下面几种:
(1)
我是否需要启用SElinux
(2)
一旦启用,我需要SElinux处于允许(permissive)还是强制(enforcing)状态。
(3)
我需要在文件上赋予什么样的SElinux上下文。
3:在实际工作中,红帽企业版linux 5支持一种SElinux策略,叫目标策略(targeted).这个策略在大多数应用之中。在目标策略之中,只有目标进程受到SElinux的影响。而其他进程运行在非限制模式下。目标策略只影响常用的网络应用程序。受到限制的服务在200个以上,有增加的趋势。SElinux限制的典型应用程序如下:
(1)
dhcp
(2)
httpd
(3)
mysqld
(4)
named
(5)
nscd
(???)
(6)
ntpd
(???)
(7)
portmap
(8)
postgres
(???)
(9)
snmpd
(???)
(10)
squid
(11)
syslogd
4:启用SElinux
/etc/sysconfig/selinux
setenforce
getenforce
/etc/sysconfig/selinux
(1)
强制(enforcing):任何违法SElinux的操作都被禁止。
(2)
允许(permissive):任何违反SElinux的操作都会受到一个警告信息。但是行动可以继续。
(3)
停用(disabled):不启用SElinux策略。
Setenforce和getenforce命令
Setenforce 0/1
0 表示允许;1 表示强制
Getenforce
查看当前SElinux的状态。
5:查看SElinux上下文
使用命令 ps –Z 和 ls –Z
每个进程都属于个SElinux域;
每个文件都被赋予一个SElinux上下文。
相关的域和上下文可以使用ls和ps命令的命令选项–Z 来显示
进程SElinux域和SElinux上下文,具有以下格式:
System_u:object_r:httpd_exec:s0
说明:
上面的字段以冒号作为分隔符,
第一个字段:用户
第二个字段:角色
第三个字段:类型
第四个字段:与MLS,MCS有关
说明:
SEliunx目标策略只于第三个字段有关,即类型字段(TYPE).
二:SElinux介绍
SElinux是美国国家安全局为linux系统设计的一项开放源码项目,主要是希望将其作为系统的最后一道防线,来抵御黑客的攻击和入侵系统。
1.
常见的读取控制
1.1
DAC (Discretionary Access Control)”任意式读取控制”。在DAC的架构下,每个对像都会记录一个拥有者的信息。只要是对象的拥有者,就可以获得该对象的完全控制权限。DAC 允许拥有者完全权限。其他需要读取该对象时候,必须授予适当的权限。但是每个对象仅有一组拥有者的信息,如果需要更复杂的读取控制能力,必须使用ACL。ACL的全名是“访问
控制列表(Access Control List)”.是DAC的延伸。在ACL环境下,你可以不同的用户设置一组权限。如此一来,就可以对不同的用户设置不同的权限了。
1.2
MAC (Mandatory Access Control)“强制性读取控制”.在MAC架构下,会为每一个对象添置一个安全的上下文(Security Context).进程和用户除了具备传统的的权限之外,还必须获得SElinux的授权,方能读取对象。
1.2.1
RBAC
RBAC全称是“角色基础读取控制”(Role-based Access Control),在此架构下,是以用户所属的角色进行读取权限判定的动作的。如:老板的可以读取哪些对象,经理可以读取哪些对象。等
1.2.2
MLS
MLS全名是“多层次安全”(Mulit-Level Security),在此架构下,是以对象的机密等级来决定进程对该物的读取权限的。
2:SElinux
SElinux是一个在内核中执行,提供MAC能力的子系统,以弥补传统的DAC架构的不足。SElinux子系统以“类型强制性”读取控制机制为主,并融合RBAC,MLS与MCS 3种MAC读取控制机制的特性。
2.1 什么是类型强制性的读取控制机制?
在SElinux世界里,定义了许多的类型(TYPE).每一个进程,文件,设备,网络连线等,都必须标示其所属的类型。进程仅能读取相同类型的文件,如果非相关的类型,且SEliunx 不允许读取时,则无法读取。这就是类型强制性的读取控制机制。
警告:SElinux的类型读取控制是在传统的DAC权限之后进行的。换言之,就是说在取得了DAC权限之后,再由SElinux来进行类型的强制性控制了。
3:SElinux的术语
3.1 对象
在SElinux里,所有可被读取的的皆为对象。
3.2 主体
在SElinux里,把进程理解为主体
3.3 类型
SElinux允许你为系统中的每一个主体或对象定义一个类型。
3.4 领域
3.5 用户