一、SELinux概述

    1.SELinux: Secure Enhanced Linux,安全加强版Linux

         工作于Linux内核中,实现强制访问控制(MAC)机制

          其使用了sandbox:沙箱机制,为你每个进程的运行读提供一个沙箱,圈定其所要依赖的资源,但是进程访问资源切换操作后,所拥有的资源集合不够,就会出现错误,所以每个进程运行的沙箱都需要精心设计,而事实情况并非所有的程序杜能如此,所以折中为对一些对外交互的容易被***的如网络性质的做沙箱机制,如httpd等服务

    2.SELinux工作级别:

        strict: 严格级别,每个进程都受到selinux的控制;

        targeted: 仅有限个进程受到selinux控制;只监控容易被***的进程;

SELinux安全加强Linux概述_第1张图片

    3.安全法则模型:subject operation object类似于主语操作宾语的机制

subject: 进程

object: 包括进程,文件,

  文件支持的操作:open, read, write, close, chown, chmod

该模型为一个进程对另一个对象进行操作,被操作的对象可以为进程,也可以是文件目录等,subject:存在domain()object:存在type(类型),而所允许的操作其subjectobject要求域内存在所允许的类型的文件

    4.SELinux安全标签机制:为每一个文件或者进程会提供标签,

selinux必须在系统启动时候激活内核加载此功能

内核启动对当前根系统上的所有文件打标签,速度取决文件多少于硬盘的读写速度

标签五段组成,最后两段对于在CentOS系列的文件系上是无太多意义的

user:role:type

user: SELinux的user;

role:  SELinux的角色(相当于组)

type: 类型;

    5.SELinux规则库:

定义了规则:规定哪种域能访问哪种或哪些种类型内文件;

    6.配置SELinux操作,一般进行如下操作:

SELinux是否启用;

给文件重新打标,修改type

设定某些布型特性开关

 

 

 

二、SELinux管理

    1.配置文件:/etc/sysconfig/selinux, /etc/selinux/config:重启有效

           SELINUX={disabled|enforcing|permissive}

     SELinux的状态:

enforcing: 强制,每个受限的进程都必然受限;

permissive: 启用,每个受限的进程违规操作不会被禁止,但会被记录于审计日志;

disabled: 关闭;

SELinux安全加强Linux概述_第2张图片

    2.getenforcesetenforce命令:当前有效

getenforce: 获取selinux当前状态;

setenforce 0|1:修改selinux状态

0: 设置为permissive

1: 设置为enforcing

    3.文件标签相关

        (1)chcon:给文件重新打标

       chcon [OPTION]... CONTEXT FILE...

       chcon [OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE...

       chcon [OPTION]... --reference=RFILE FILE...

              -R:递归打标;

        (2)还原文件的默认标签

                restorecon [-R] /path/to/somewhere

    4.布尔型规则:

        (1)getsebool:显示布尔型特性状态

getsebool [-a] [boolean]

        (2)setsebool命令:设置布尔型特性状态

setsebool [ -P] boolean value | bool1=val1 bool2=val2 …

-P:保存在策略库中,立刻有效