Linux SELinux 工作原理及日志管理详解

SELinux(Security Enhanced Linux)

系统资源都是通过进程来读取更改的,为了保证系统资源的安全,传统的Linux使用用户、文件权限的概念来限制资源的访问,通过对比进程的发起用户和文件权限以此来保证系统资源的安全,这是一种自由访问控制方式(DAC);但是随着系统资源安全性要求提高,出现了在Linux下的一种安全强化机制(SELinux),该机制为进程和文件加入了除权限之外更多的限制来增强访问条件,这种方式为强制访问控制(MAC)。这两种方式最直观的对比就是,采用传统DAC,root可以访问任何文件,而在MAC下,就算是root,也只能访问设定允许的文件。

目录

SELinux的工作原理

工作模式和工作类型

安全上下文

SELinux日志管理

一、SELinux的工作原理

先说下SELinux下的几个基本的概念

    主体    # SELinux管理的主体为进程

    目标    # SELinux通过管理进程,来限制进程访问的目标,指文件

    工作模式    # 决定SELinux机制的启动与否

        enforcing ===>强制模式,SELinux已经启动   

        permissive===>宽容模式,SELinux已经启动,但不会禁止,只是会提出警告信息

        disabled  ===>关闭模式,关闭SELinux

    工作类型(SELinux type)   # 表示SELinux具体的安全性策略

        strict  ===>每个进程都受限制(仅在CentOS5)

        targeted===>默认类型为targeted,主要限制网络服务

        minimum ===>简化版的targetd,限制部分网络服务(centos7)

        mls     ===>多级安全限制,较为严格

    安全上下文(security context)

        这个是我们主要修改的地方,进程必须和文件的安全上下文对应(不是必须一样)才能对其进行访问。

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

        ps -eZ           # 查看进程的安全上下文

sestatus    # 查看SELinux的具体的工作状态

Linux SELinux 工作原理及日志管理详解

工作原理如下图:

Linux SELinux 工作原理及日志管理详解

二、工作模式和工作类型

2.1 工作模式

getenforce可以查看当前SELinux的工作模式;setenforce可以修改SELinux的工作模式,不过仅能在permissive和enforcing之间切换

        [root@CentOS6 ~]# setenforce 0|1  分别代表permissive、enforcing   

使用命令修改工作模式只在当前有效,想要开机生效,而且如果想要在disabled和其他两种模式之间切换,只有修改配置文件参数然后重启,该配置文件是/etc/selinux/config,另外也可以通过/etc/sysconfig/selinux文件修改,其实该文件是/etc/selinux/config的软链接文件

Linux SELinux 工作原理及日志管理详解

    notice:SELinux从disabled切换到其他模式的时候,系统的重启会花费很长的时间,因为需要为每个受管制的进程和文件写入安全上下文,我的小伙伴以为是配置过程中出错然后直接恢复快照了。

2.2 工作类型

SELinux下存在不同的规则,SELinux根据不同的工作类型对这些规则打开或关闭(on|off<布尔值1|0>),然后通过规则的开启与关闭具体地限制不同进程对文件的读取。

    getsebool -a 或者 sestatus -b      # 查看当前工作类型下各个规则的开启与否

Linux SELinux 工作原理及日志管理详解

    setsebool -P 规则名称 [0|1]    # 修改当前工作类型下指定规则的开启关闭,-P表示同时修改文件使永久生效

Linux SELinux 工作原理及日志管理详解

三、安全上下文

3.1 security context介绍

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/f631f199638fbbd018ad985be52b8c36.html