SELinux的运行模式

  1. SELinux也就是Security Enhanced Linux,是安全强化的Linux之意,当初开发目的是因为发现系统出现问题原因大部分都在于“内部员工的资源误用”所导致的,实际由系统外部发动的攻击反而没有这么严重
  2. SELinux是在进行程序、文件等权限设置依据的一个内核模块,由于启动网络服务的也是程序,因此刚好也是能够控制网络服务能否访问系统资源的一道关卡
  3. 依据进程的所有者与文件资源的rwx权限来决定有无访问的能力,这种访问文件系统的方式被称为“自主访问控制(DAC)”,这种控制方式存在问题是:
    (1)root拥有最高权限
    (2)用户可以取得进程来更改文件资源的访问权限
  4. 为了规避以上问题,SELinux采用了以策略规则制定特定程序读取特定文件的访问文件方式,称为委托访问控制(MAC),MAC可以针对特定的进程与特定的文件资源来进行权限的控制,使用不同进程时取得的权限也不一定。
  5. SELinux的策略,centos底下提供两个主要的策略:
    targeted:针对网络服务限制较多,针对本机限制较少,是默认的策略
    strict:完整的SELinux限制,限制方面较为严格
  6. SELinux中主体能不能访问目标除了策略制定之外,主体与目标的安全上下文必须一致才能够顺利访问。安全上下文我们可以认为是SELinux内必备的rwx权限就行。安全上下文存在于主体进程中和目标文件资源中,进程中的安全上下文存于内存中,而文件中的安全上下文则是放置到文件的inode内的,安全上下文可以使用ls -Z查看(开启SELinux的情况下)
  7. 安全上下文主要用冒号分为三个字段:
     identify:role:type
     身份识别:角色:类型
    

    (1)身份识别相当于账号方面的身份标识,主要有三种类型:root、system_u、user_u
    (2)角色,通过角色我们可以知道这个数据是属于程序、文件资源还是代表用户,一般角色有:object_r、system_r
    (3)类型(type,最重要),默认策略中一个主体进程能否读取到这个文件资源与类型字段有关,而类型字段在文件与进程中的定义不太相同,分别是:
    type:在文件资源上面称为类型
    domain:在主体程序中则称为域
    domain需要与type搭配,则该程序才能够顺利读取文件资源

SELinux的启动、关闭与查看

  1. 防火墙:
    临时关闭防火墙
    systemctl stop firewalld
    永久防火墙开机自关闭
    systemctl disable firewalld
    临时打开防火墙
    systemctl start firewalld
    防火墙开机启动
    systemctl enable firewalld
    查看防火墙状态
    systemctl status firewalld
  2. SELinux:
    临时关闭SELinux
    setenforce 0
    临时打开SELinux
    setenforce 1
    查看SELinux状态
    getenforce
    开机关闭SELinux
    编辑/etc/selinux/config文件,将SELINUX的值设置为disabled。下次开机SELinux就不会启动了。