博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RHEL/CentOS 7中的SELinux概述
阅读量:4179 次
发布时间:2019-05-26

本文共 1764 字,大约阅读时间需要 5 分钟。

Security Enhanced Linux (SELinux)是一个访问控制服务,基于安全策略加强对系统资源的访问控制。在系统安全的基础上,解决“May <subject> do <action> to <object>”的访问控制问题。

SELinux是一个Linux内核的扩展模块,通过LSM(Linux Security Module)框架在链接时被加入到Linux内核中。

1. SELinux的组成及工作模型

SELinux是由subjects, objects, security context, object manager和security server组成的。

subjects就是系统中运行的进程,往往会发出访问系统资源的请求。每个subjects都有自己的安全属性,通过security context表示。

objects就是系统中的各种资源,如文件、网络等。每个objects都有自己的安全属性,通过security context表示。

object manager是系统资源的组成部分,知道对资源能够进行什么访问,能够实施对资源的访问。

security server是SELinux的核心,运行在Linux系统的内核中。根据SELinux的策略,检查subjects的安全属性与objects的安全属性是否匹配,从而决定subjects是否能够访问objects。

2. SELinux与DAC的关系

Linux的标准访问控制模型DAC (Discretionary Access Control)通过检查user/group和permissions进行访问控制,但user/group可以改变permissions。而SELinux遵循最小授权原则,基于MAC (Mandatory Access Control)架构实现,通过独立的Linux内核中的安全服务器检查访问请求的SELinux context和被访问资源的SELinux context,从而实现对系统资源的访问控制。

当然,对一个系统资源的访问请求,只有在满足DAC访问条件之后,才会到达SELinux,SELinux的安全策略才会生效。如果访问请求已经因违反了DAC条件而被DAC拒绝,则访问请求根本不会到达SELinux。

此外,SELinux为Linux的文件访问控制策略提供了更细的控制粒度。如,只允许某个应用进程读取某个文件(而不允许写),而同时允许另一个应用进程写该文件。

3. SELinux对MAC的实现

SELinux实现了多种形式的MAC:

  • TE, Type Enforcement

通用MAC实现,往往与RBAC结合使用。

  • RBAC, Role-Based Access Control

默认没有使用

  • MLS, Multi-Level Security

扩展了security context,对访问控制的分级实现

  • MCS, Multi-Category Security

对MLS的进一步扩展,通过扩展security context支持1024种categories(如s0, c0, ...),实现精细的访问控制。

为了直观方便,可以在/etc/selinux/<SELINUXTYPE>/setrans.conf配置文件中为一组categories定义唯一的名称。

4. 高效的AVC服务

为了提高执行效率,对于Linux内核中的安全服务器已经做出的判断,SELinux会将其缓存到Access Vector Cache (AVC)中。

通常的AVC是由SELinux的核心类库libselinux提供的,某些资源也可以提供自己的AVC。

 

SELinux最早出现在CentOS 4。在RHEL/CentOS 7中,默认开启SELinux访问控制。对于一些常见的服务,默认情况下禁止任何访问,除非在SELinux策略中有明确的授权规则。

 

参考链接:

        

        https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/index

        

转载地址:http://shlai.baihongyu.com/

你可能感兴趣的文章
51单片机程序执行流程(STARTUP.A51)
查看>>
原码, 反码, 补码 详解
查看>>
Java自学第一阶段(二)- 小试牛刀
查看>>
Java自学第一阶段(三)- 万能的变量
查看>>
Java自学第一阶段(四)-万能的变量(2)
查看>>
HashMap存储原理以及与hashcode、equals方法的关系
查看>>
python3.6在windows下安装scrapy遇到的问题总结
查看>>
pycharm中打开scrapy项目,import scrapy报错问题
查看>>
scrapy爬取图片,自定义图片下载路径和图片名称
查看>>
python3下import MySQLdb出错问题
查看>>
Maven搭建SSM框架(eclipse)
查看>>
synchronized+Integer模拟火车票预售,出现的问题总结
查看>>
沉浸式过山车:穿梭时空,自在畅游巨蚁数字虚实世界
查看>>
沉浸式过山车,感受巨蚁数字心灵的激情
查看>>
沉浸式过山车,巨蚁数字带给您前所未有的科技体验
查看>>
质量好的自行车品牌有哪些辐轮王土拨鼠全球顶级自行车品牌排行榜
查看>>
htmlunit爬取js异步加载后的页面
查看>>
修改Linux系统locale设置
查看>>
linux网络无法连接问题
查看>>
linux 查看ip
查看>>