Bootstrap

SElinux学习

一、SElinux简介

SELinux是Security-Enhanced Linux的缩写,意思是安全强化的linux,传统的访问控制在我们开启权限后,系统进程可以直接访问.当我们对权限设置不严谨时,这种访问方式就是系统的安全漏洞。

所以在开启SElinux后

会对进程本身部署安全上下文

会对文件部署安全上下文。会对服务使用端口进行限制

会对程序本身的不安全功能做限制

二、selinux的工作原理

2.1.SElinux的工作方式

SELinux是通过MAC的方式来控制管理进程,,它控制的主体是进程,而目标则是该进程能否读取的文件资源

主体(subject):就是进程

目标(object):被主体访问的资源,可以是文件、目录、端口等。

策略(policy):由于进程与文件数量庞大,因此SELinux会依据某些服务来制定基本的访问安全

2.2.SELinux 的安全上下文

安全上下文(securitycontext):

主体能不能访问目标除了策略指定外,主体与目标的安全上下文必须一致才能够顺利访问。

最终文件的成功访问还是与文件系统的rwx权限设置有关

安全上下文的查看

ls -Z                          //查看文件的安全上下文

    ps axZ | grep vstfpd           // 进程的安全上下文

2.3安全上下文用冒号分为四个字段:Identify:role:type:

  1. 身份标识(ldentify):相当于账号方面的身份标识,主要有以下三种常见的类型:root:表示root的账号身份;system_u: 表示程序方面的标识,通常就是进程;unconfined_u:代表的是一般用户账号相关的身份。
  2. 角色(role):通过角色字段,可知道这个数据是属于程序、文件资源还是代表用户。一般角色有: object_r   代表的是文件或目录等文件资源;system_r:代表的是进程。
  3. 类型(type):在默认的targeted策略中,Identify与role字段基本上是不重要的,重要的在于这个类型字段。而类型字段在文件与进程的定义不太相同。分别是:type :在文件资源上面称为类型。 Domain: 在主体程序中则称为域domain需要与type搭配,则该程序才能够顺利读取文件资源。
  4. 代表灵敏度,一般用s0、s1、s2来命名,数字代表灵敏度的分级。数值越大、灵敏度越高。

三.对于SElinux的管理及优化

3.1.SElinux的工作模式

SElinux有三种工作模式:

enforcing:强制模式,开始限制domain/type。

permissive:宽容模式,仅会有警告信息并不会实际限制domain/type的访问。

disabled:关闭,SELinux并没有实际运行

3.2.对于SElinux状态管理

getenforce                     //查看SElinux当前状态

setenforce 0 | 1              //临时更改SElinux的工作模式0 表示宽容模式1 表示强制模式

grubby--update-kernel ALL --args selinux=0

grubby -update-kernel ALL --remove-args selinux//永久更改SElinux状态

touch /.autorelabe              //重启SElinux,系统在开启SElinux后,重启系统SElinux的所有内容不会有任何变化如果需要刷新SElinux

3.3 实施方式

3.3.1 前期配置

selinux如何设定为开启在设定之后要重启系统才生效

下载需要库

将anonymous enable=    anon upload enable=   修改为yes

检查表示安装启用成功

3.3.管理文件的安全上下文

1.临时更改文件的安全上下文

chcon[-R][-ttype][-uuser][-r role]文件

-R:连同该目录下的子目录也同时修改:

-t:后面接安全上下文的类型字段:

-u:后面接身份识别;

-r:后面接角色chcon[-R]--reference=模板 目标文件#将文件的安全上下文按照范例文件修改

2.永久修改安全上下文

semanager fcontext[-a|-d][-t type][-s user][-r range]文件

-1:列出所有记录

-a:添加记录

-m:修改记录

-d: 删除记录

-t:添加的类型

-p:指定添加的端口是tcp或udp协议的,port子命令下使用

-e:目标路径参考原路径的上下文类型,fcontext子命令下使用

-s:后面接身份识别

-r:后面接角色

3.实施方式

临时修改上下文关系

永久更改

3.4.selinux对linux服务的影响

1.服务的功能影响

在系统SElinux开启后会为服务添加新的功能开关,我们把这个开关叫做sebool参看sebool值        getsebool -a | grep                      

修改sebool值       setseboo]-p<bool类型><0 1>

-P:表示永久生效0:表四功能关闭1:表示功能开启

此处可以看到出现了不可以的情况

出现以上情况有以下可能,安全上下文不行,我们先来查看

这里我们是读写模式,如果不是就要通过以下方式

nage fcontext -a -t public_content_rw_t '/var/ftp/pub(/.*)?'

restorecon -RvvF /var/ftp/pub/

更改为读写并且更新

如若还是不行,那就是sebool值问题

sema

将读写功能更改为打开模式

setsebool -P ftpd_anon_write on

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;