博客
关于我
LInux:SELinux
阅读量:343 次
发布时间:2019-03-04

本文共 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/

你可能感兴趣的文章
给asterisk1.8.7添加menuselct选项
查看>>
ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记
查看>>
ASP.NET Core分布式项目实战(oauth2 + oidc 实现 client部分)--学习笔记
查看>>
PyQt5之音乐播放器
查看>>
css居中方法与双飞翼布局
查看>>
Redis进阶实践之十八 使用管道模式提高Redis查询的速度
查看>>
SQL注入
查看>>
#2036:改革春风吹满地
查看>>
MPI Maelstrom POJ - 1502 ⭐⭐ 【Dijkstra裸题】
查看>>
P1379 八数码难题 ( A* 算法 与 IDA_star 算法)
查看>>
按需取余
查看>>
算法学习笔记: 珂朵莉树
查看>>
算法学习笔记:母函数详解
查看>>
Codeforces Round #664 题解(A ~ C)
查看>>
Problem A - Sequence with Digits (数学推导)
查看>>
Problem 330A - Cakeminator (思维)
查看>>
「HDU-2196」Computer (树形DP、树的直径)
查看>>
Codeforces Global Round 11 个人题解(B题)
查看>>
LeetCode75 颜色分类 (三路快排C++实现与应用)
查看>>
docker基础:容器生命周期管理命令
查看>>