一 SElinux是什么

![]()

![]()
SElinux安全性上下文:对系统资源进行限制(文件目录的安全上下文)

![]()
![]()
![]()
SElinux是美国国家安全局开发为linux安全强化,是在程序、文件等权限设置时依据的一个核心模块。
自主式存取控制(DAC):根据程序的拥有者和文件rwx权限决定操作者对文件有无存取权限,所以root就可以操作任何文件(不安全,容易误操作)。
委任式存取控制(MAC):针对特定的程序与特定的程序与文件进行权限的控管(root也是)。
而SElinux就是通过MAC方式来控制程序,它有些控管默认的政策和规则。
二SElinux运行模式
1)主体程序(进程)必须要通过SELinux政策内的规则放行后,就可以与目标资源进行安全性上下文的比对。
2)若比对失败则无法存取目标,若比对成功则可以开始存取目标。
(服务用不了跟SElinux有关的:要么是
规则的布林值限制
直接定义了,要么就是
安全上下文不匹配
)
目前的政策一般用
targeted。
(
getsebool
-a 可查看规则限制
)
SELinux策略包括两点:域和安全上下文
SElinux域:对进程资源进行管理(其实算是进程的安全上下文)
ps -Z 查看
SElinux安全性上下文:对系统资源进行限制(文件目录的安全上下文)
安全性上下文存在于主体程序中与目标文件资源中。每个文件都有,存在文件的indoe中。
ls -Z 可查看
可分为三字段: Identify (_u):role (_r):type (_t)
Identify(身份识别):
1.unconfined_u:不受限用户。
2.system_u:系统用户。
role(角色):
1.object_r:代表文件和目录等文件资源。
2.system_r:代表程序。
type(类型)(重要!)
1.type:在文件资源上
2.domain:在主体程序上(进程的域)
type与domain匹配,程序才能够顺利读取文件资源
三 SElinux模式
1.enforcing:强制模式。运行,开始限制domain/type.
2.permissive:宽容模式。运行,不限制只警告
3.disabled:关闭。

SElinux相关命令(/etc/selinux/config)
1.getenforce 查看SElinux状态
2.sestatues 查看SELinux的政策
-v检测列于 /etc/sestatus.conf 内的文件与程序的安全本文内容
-b 将目前规则的规则布林值列出,也就是某些规则(role)是否启动(0/1)
3.SElinux开启与关闭 修改/etc/selinux/config下的SELINUX=(mode) (要重启,必须的)
4.setenforce nu 开启状态模式切换 (不用重启)
0 permissive模式
1 Enforcing模式
四 SElinux政策里的规则管理(查看SElinux政策的规则是否允许某些服务在某些目录下开发)
1.getsebool 规则名 查看规则是否启动
-a 列出所有系统的所有SElinux规则的布林值设置启动

2.setsebool 设置规则的布林值开启/关闭
-P 永久生效
(扩充工具应用)
规则具体限制要查看需seinfo sesearch工具(默认不安装 yum install setools-console-*)
1.seinfo
-A 列出SELinux的状态、规则布林值、身份识别、角色、类别
-u 列出SElinux的所有身份识别(user)种类
-r 列出SELinux的所有角色(role)种类
-t 列出SELinux的所有类别(type)种类
-b 列出所有规则种类
2.sesearch [-A] [-s 主体类别] [-t 目标类别] [-b 布林值]
-a 列出后面数据允许"读取或放行"的相关数据
-t type
-b SELinux规则

![]()
五 SElinux安全本文的修改(主要用于文件因SElinux的type不符合要求而无法运行的修改)
1.chcon file/dir
-R 连同该目录下的此目录也同时修改
-t type 指定安全文本的类型字段
-u Identify 指定身份
-r role 指定角色
-v 若有变化,列出变化结果
--reference=file1(范例文档) 拿某个文档当范例来修改后接文件
2.restorecon file/dir 把目录下的文件恢复成默认目录的type (常用)
-R 连同次目录一起修改
-v 显示过程
-e 排除目录
-i 忽略不存在文件
-F 强制恢复
3.semanage 默认目录的安全性本文查询与修改
{login|user|port|interface|fcontext|translation}
fcontext : 主要用于安全环境。(/etc/selinux/targeted/contexts/)
{login|user|port|interface|fcontext|translation}
fcontext : 主要用于安全环境。(/etc/selinux/targeted/contexts/)
-l 查询
-a 增加目录的默认安全性本文设置
-m 修改
-d 删除
-t type
指定安全文本的类型字段
-u
Identify
指定身份
-r
role
指定角色
(修改后,ll -Z 显示不会立即变,可用 restorecon -Rv 目录 恢复立即才会生效)
(修改后,ll -Z 显示不会立即变,可用 restorecon -Rv 目录 恢复立即才会生效)
(整理自《鸟哥》《Linux就该这么学》)