RHCE: SELinux
一.SELinux
1.SELinux概述
SELinux 是 Security-Enhanced Linux 的缩写,意思是安全强化的 linux.SELinux 主要由美国国家安全局( NSA )开发,当初开发的目的是为了避免资源的误用现在主要是通常用于实现强制访问控制(MAC),以增强系统的安全性
2.SELinux的工作原理
SELinux是通过MAC的方式来控制管理进程,它控制的主体是进程,而目标则是该进程能否读取的文件资源。
1).SELinux的组成部分
主体( subject ):就是进程目标( object ):被主体访问的资源,可以是文件、目录、端口等。策略( policy): 由于进程与文件数量庞大,因此 SELinux 会依据某些服务来制定访问安全策略。安全上下文( security context):主体能不能访问目标除了策略指定外,主体与目标的安全上下文必须 一致才能够顺利访问。注: 最终文件的成功访问还是与文件系统的 rwx 权限设置有关 。
2) 策略
目前主要的策略有:
targeted :针对网络服务限制较多,针对本机限制较少,是默认的策略;strict :完整的 SELinux 限制,限制方面较为严格。
3) .查看文件的安全上下文
[root@server SELinux]# ll -Z
4). 安全上下文的组成部分
安全上下文用冒号分为四个字段:
Identify:role:type:
身份标识(Identify):相当于账号方面的身份标识,主要有以下三种常见的类型:root:表示root 的账号身份;system_u:表示程序方面的标识,通常就是进程;unconfined_u:代表的是一般用户账号相关的身份。角色(role):通过角色字段,可知道这个数据是属于程序、文件资源还是代表用户。一般角色有:object_r:代表的是文件或目录等文件资源;system_r:代表的是进程。类型(type):在默认的targeted策略中,Identify与role字段基本上是不重要的,重要的在于这 个类型字段。分别是:type:在文件资源上面称为类型。domain:在主体程序中则称为域。domain需要与type 搭配,则该程序才能够顺利读取文件资源。最后一个字段是和MLS和MCS相关的东西,代表灵敏度,一般用s0、s1、s2来命名,数字代表灵敏 度的分级。数值越大、灵敏度越高。
5) 启动关闭SELinux
方法一:
setenforce + 0/1 : 1 (打开) / 0(修改为宽容模式,暂时关闭)
方法二:
[root@server SELinux]# vim /etc/selinux/config
可以将enforcing 修改为:
enforcing :强制模式,代表 SELinux 正在运行中,开始限制 domain/type 。permissive :宽容模式,代表 SELinux 正在运行中,不过仅会有警告信息并不会实际限制domain/type 的访问。disabled :关闭, SELinux 并没有实际运行。
6). 修改安全上下文
1. 修改
chcon [-R] [-t type] [-u user] [-r role]
文件
-R :连同该目录下的子目录也同时修改;-t :后面接安全上下文的类型字段;-u :后面接身份识别;-r :后面接角色
chcon [-R]
--reference
=
范例文件 --> 将文件的安全上下文按照范例文件修改
2.恢复默认安全上下文
restorecon [-Rv]
文件或目录
-R :连同子目录一起修改;-v :将过程显示到屏幕上
3. 查看与修改默认的安全上下文
查看:
semanage
{
login|user|port|interface|fcontext|translation
}
-l
修改:
semanage fcontext
-
{a|d|m} [-frst] file_spec
-l 为查询;-a :增加一些目录的默认安全上下文的设置;-m :修改;-d :删除。