温锦文欧普厨电及净水器总代理 发表于 2024-7-15 06:41:32

【安全利器SELinux快速入门系列 01】SELinux底子入门_selinux书

4.2 自主访问控制DAC实现的原理

DAC的主体是使用者,客体是被访问的资源。
DAC访问策略下,文件的拥有者可以自主地说明它所拥有的资源允许系统中的哪些用户以何种权限举行共享。
linux下的文件是基于权限位实现的访问控制。
执行一下ls -l查看目录下的文件列表,可以看到一行信息最左侧的就是访问权限位
zhoushimin@zsm:tools$ ls -l
total 728236
drwxrwxr-x. 1 zhoushimin zhoushimin       454 Jul6 20:20anaconda3
-rw-rw-r--. 1 zhoushimin zhoushimin 667976437 Jul2 15:56Anaconda3-5.3.1-Linux-x86_64.sh
-rwxrwxr-x. 1 zhoushimin zhoushimin       244 Jul 19 10:41clean_snaps.sh
-rwxr--r-x. 1 zsm2       zhoushimin       244 Jul 19 10:41clean_snaps2.sh
-rw-rw-r--. 1 zhoushimin zhoushimin    983655 Jul 13 14:38 'LTE&LTE-A_QFlash_Linux&Android_V2.0.zip'
lrwxrwxrwx. 1 zhoushimin zhoushimin      20 Jul 10 00:12picgo -> PicGo-2.2.2.AppImage
-rwxrwxr-x. 1 zhoushimin zhoushimin69324801 Jul3 00:57PicGo-2.3.0.AppImage
drwxrwxr-x. 1 zhoushimin zhoushimin       284 Jul 18 10:44platform-tools
-rw-rw-r--. 1 zhoushimin zhoushimin   7406632 Jul 18 10:44platform-tools_r33.0.2-linux.zip
drwxrwxr-x. 1 zhoushimin zhoushimin       890 Jul 13 14:18QFlash_Linux_Android
drwxr-xr-x. 1 root       root             324 Jul4 11:19Qt


https://img-blog.csdnimg.cn/img_convert/df387da46e6b713a459f72ae6e4109e5.png
以第3个文件clean_snaps.sh为例,它的权限位信息为-rwxrwxr-x,权限位3位一组,拆分rwx,rwx,r-x,分别代表文件的所有者的访问权限、文件所有者地点组的访问权限、其它用户的访问权限。r代表读、w代表写、x代表执行,-代表无权限。
那么用户zhoushimin对clean_snaps2.sh文件有什么访问权限呢?
首先先查看该用户的用户组信息
# 查看用户、用户组信息
zhoushimin@zsm:tools$ id zhoushimin
uid=1000(zhoushimin) gid=1000(zhoushimin) groups=1000(zhoushimin),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),132(lxd),133(sambashare)

可以看到clean_snaps2.sh文件属于zsm2用户,它的组为zhoushimin,zhoushimin用户的组信息从id zhoushimin输出可知,也是zhoushimin,那么用户zhoushimin和zsm2在同一个组,那么zhoushimin拥有clean_snaps2.sh属主的访问权限,为r–(注:rwxr–r-x为其访问控制的权限位,从左到右,rwx为属主的权限,r–为属组的权限,r-x为其它用户的权限)。
4.3 逼迫访问控制MAC实现的原理

4.3.1 原理概述

历程的主体是历程,客体是被访问的资源。
MAC机制的特点在于,资源的拥有者,并不能决定谁可以接入到资源。具体决定是否可以接入到资源,是基于安全策略。而安全策略则是有一系列的接入规则组成,并仅有特定权限的用户有权限操纵安全策略。
https://img-blog.csdnimg.cn/img_convert/88d644126e592da4254425861a3dfdc3.gif4
MAC逼迫访问控制的流程大致是上图所示,分为3个步调:


[*]主体步伐必须要通过 SELinux 政策内的规则放行后,就可以与目的资源举行安全性本文的比对;
[*]若比对失败则无法存取目的,若比对乐成则可以开始存取目的。
[*]最终能否存取目的还是与文件系统的 rwx 权限设置有关
简朴来说,主体有政策规则权限还不够,还需要历程和文件的安全上下文匹配之后,最终和DAC访问控制逻辑一样,匹配文件的rwx的权限后才可以访问,如下图所示:
https://img-blog.csdnimg.cn/img_convert/e07312ded6cee655e0222a8db6277250.jpeg
4.3.2 安全上下文Security Context

什么是Context,它被成为安全上下文,分为历程安全上下文和资源的安全上下文(文件),只有两者的安全上下文匹配了,历程才可以访问文件。
那么安全上下文是什么样的呢?


[*]SELinux User:每一个Linux用户都会映射到SELinux用户,每一个SELinux User都会对应相应的Role。
[*]SELinux Role:每个Role也对应几种SELinux Type,而且充当了User和Type的‘中心人’
[*]SELinux Type:安全策略使用SELinux Type制定规则,定义何种Domian(Type)的Subject,可以接入何种Type的Object。
[*]SELinux Level:安全级别
https://img-blog.csdnimg.cn/img_convert/855aba37268cbcad5d30ca6a85fc0c61.jpeg
先来看一下历程的安全上下文:
zhoushimin@zsm:Desktop$ ps -auxZ | grep typora
system_u:system_r:initrc_t:s0   zhoushi+   490360.20.8 38271896 141120 ?   Sl   11:47   0:20 /usr/share/typora/Typora

在原来的查看历程的命令参数中添加Z选项即可查询历程的安全上下文信息。上面的例子的安全上下文信息为system_u:system_r:initrc_t:s0,其构成为selinux用户、selinux角色、域domain、级别mls:s0
再来看一下文件的安全上下文:
zhoushimin@zsm:~$ ls -lZ
-rw-rw-r--. 1 zhoushimin zhoushimin system_u:object_r:user_home_dir_t:s0      585756 Jul 20 15:26 2022-07-20-14-07-09.log

同样的,在ls -l的底子上添加Z选项即可查看文件的security context,其上下文为system_u:object_r:user_home_dir_t:s0,对应的selinux用户为system_u、selinux角色object_r,类型Type为user_home_dir_t,安全级别为S0。
类型字段在文件与步伐的定义不太类似,分别是:


[*]type:在文件资源 (Object) 上面称为类型 (Type);
[*]domain:在主体步伐 (Subject) 则称为领域 (domain)
这几项数据不太好区分,可以看他们后缀:


[*]system_u: 后缀为u,代表为selinux用户user
[*]object_r:后缀为r,达标为selinux角色role
[*]user_home_dir_t:后缀为t,达标为selinux类型或域
[*]s0:s开头的达标mls安全级别。MAC 细分为两种方式,一种叫种别安全(MCS)模式,另一种叫多级安全(MLS)模式,mls级别仅在MLS模式下见效
更多安全上下文信息可以看这个对照表:
https://img-blog.csdnimg.cn/img_convert/31822eb0016d30ec96f11309f9a6823c.png
说完安全上下文,那么如何才华让安全上下文见效呢?可以通过配置selinux的工作模式来启用。
4.3.3 selinux工作模式

selinux有三种工作模式:


[*]enforcing:逼迫模式。违反 SELinux 规则的举动将被阻止并记录到日志中。
[*]permissive:宽容模式。违反 SELinux 规则的举动只会记录到日志中。一样平常为调试用, 初次开启建议先配置为permissive,特别在PC上,防止进不了系统。
[*]disabled:关闭 SELinux,直接去匹配文件系统的rwx权限。
SELinux 的三种类型与实际运行流程图:
https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fwizardforcel.gitbooks.io%2Fvbird-linux-basic-4e%2Fcontent%2Fimg%2Fselinux_3.jpg&pos_id=img-AwrFJ2dN-1714444921360
了解了安全上下文,那么它到底是怎样的匹配规则呢,历程和文件的安全上下文如何匹配呢?接下来了解一下selinux的策略类型。
4.3.4 selinux的策略类型

selinux支持三种策略:targeted(default)、mls、src三种。


[*]targeted:针对网络服务限制较多,针对本机限制较少,是默认的政策。在targeted策略类型下,安全上下文仅比对domain/type即可,selinux用户和selinux角色字段不匹配。
[*]minimum:由 target 修订而来,仅针对选择的步伐来掩护!
[*]mls:完整的 SELinux 限制,限制方面较为严格。建议使用默认的 targeted 政策即可
原理讲了挺多的,主要核心点就是策略Policy、安全上下文security context,那么实际是如何使用的呢?请看下一章,SELinux使用实战。
参考文献:
https://img-blog.csdnimg.cn/img_convert/c005ba15103afef7bcabc6f73c3d1bc6.png
https://img-blog.csdnimg.cn/img_convert/917c174f62c604550981a565d0c253ff.png
https://img-blog.csdnimg.cn/img_convert/fbeb156f7a71fb5d01eacd5fc46bfdf8.png
既有得当小白学习的零底子资料,也有得当3年以上经验的小伙伴深入学习提拔的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部门目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,而且后续会连续更新
需要这份系统化资料的朋侪,可以戳这里获取
,也有得当3年以上经验的小伙伴深入学习提拔的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
由于文件比较多,这里只是将部门目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,而且后续会连续更新
需要这份系统化资料的朋侪,可以戳这里获取

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【安全利器SELinux快速入门系列 01】SELinux底子入门_selinux书