本文共 2344 字,大约阅读时间需要 7 分钟。
简介
- SELinux: Secure Enhanced Linux,工作于Linux内核中
- DAC:自主访问控制 【Linux自身的访问机制】
- 以tom用户,去访问text.txt文件,则该进程,就拥有tom用户权限,对mysql.cof,redix.cof文件的权限,及该进程,就能访问到tom权限内的所有文件
- 这种方式:违反最小权限法则【及:一个进程启动起来,需要访问5个资源,则就最多只能访问这5个资源权限】【SELinux就是解决这个问题的】

- MAC:强制访问机制【SELinux使用的访问机制】
- 例子:以tom的用户启动进程去 打开test.txt文件,有三种的打开情况【及安全上下文】
- 一、文件的属主等于tom用户启动进程的属主,则以文件属主的权限去运行该文件
- 二、文件的属组包含tom用户启动进程属主,则以文件属组的权限去运行该文件
- 三、以其他用户权限去运行该文件
- sandbox:沙箱机制;启动进程后,该进程在一个虚拟环境中(沙箱)运行,即便脱离的控制,也只能访问该沙箱内的资源
- subject operation object 【主题操作对象】
- subject: 进程【domain:域】
- openeration:以文件为可进行的操作例【open, read, write, close, chown, chmod】
- object: 进程,文件【type:类型】
- 一个进程(subject)操作一个对象(object),取决于对象(object)所拥有的权限和两则是否在有限区域内(领域)
SELinux工作级别【SELINUXTYPE:安全策略】【重新启动生效】
- strict: 每个进程都受到selinux的控制
- targeted: 仅有限个进程受到selinux控制【只监控容易被入侵的进程】
- minimum :目标政策的修改。只对选中的进程进行保护
SELinux的状态【SELinux :安全状态】【重新启动生效】
- enforcing: 强制,每个受限的进程都必然受限
- permissive:启用,每个受限的进程违规操作不会被禁止,但会被记录于审计日志
- disabled: 关闭
SELinux为每个文件提供了安全标签,也为进程提供了安全标签【作用法则】
- [root@localhost ~]# ls -Z /tmp

- [root@localhost ~]# ps -auxZ

- system_u:system_r:kernel_t:s0 【安全标签】
- system_u:SELinux的user
- system_r:角色(有点类似与组的概念)
- tyep:类型(域)
- s0:敏感度
SELinux简介
- 任何一个进程,到底可以访问那些文件,不是严格按照,进程自己的域和文件类型匹配,而是按照SELinux库中定义的规则【及法无规定则禁止】
- 该规则规定了:哪种域能访问哪种或哪些种类型内文件
- 通过则可以范围该文件,不通过记录到【/var/log/audit/audit.log】文件中
- 一个进程可以开启多个功能如:上传和下载功能,下载功能安全级别相对来说比较低,上传的功能安全级别较高
- 进程启动起来受限,不仅仅受限于它能访问的权限,还有考虑它能发挥的特性【比如一个进程开启了10中功能,其中4中功能是SELinux认为是安全的,其他6中功能是默认关闭的,要开启需要自己手动去打开(风险自担)】
- 这中功能称为SELinux中布尔型规则设定
- [root@localhost ~]# getenbool -a

SELinux相关命令
- getenforce: 获取SELinux当前状态【前提SELinux生效】】【仅对当前环境有效】
- setenforce 0|1 :设置SELinux当前状态【前提SELinux生效】【仅对当前环境有效】
- 0: 设置为permissive
- 1: 设置为enforcing
- SELinux配置文件存发位置
- /etc/sysconfig/selinux
- /etc/selinux/config
- chcon :给文件重新打标
- 格式:chcon [OPTION]... [-u USER] [-r ROLE] [-t TYPE]
- -t:单个打标
- 例子:[root@localhost home]# ls -Z a.txt 【在tmp文件下,创建的a.txt,文件标签类型默认为该分组】 -rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 a.txt
- [root@localhost home]# ls -Z a.txt 【在home文件下,创建的a.txt,文件标签类型默认为该分组】 -rw-r--r--. root root unconfined_u:object_r:home_root_t:s0 a.txt
- [root@localhost home]# chcon -t user_tmp_t a.txt [root@localhost home]# ls -Z a.txt -rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 a.txt
- -R:递归打标
- 还原文件的默认标签:restorecon [-R] /path/to/somewhere
- SELinux布尔型规则
- 布尔型规则:
- getsebool命令: getsebool [-a] [boolean]
- setsebool命令:setsebool [ -P] boolean value 【永久有效】
- setsebool bool1=val1 【当前有效】
转载地址:http://ywre.baihongyu.com/