一、selinux前世今生
1、系统安全评级
![](https://i-blog.csdnimg.cn/blog_migrate/9b4d76b42820b6b74648f3f611c1dab7.png)
### --- linux稳定,可靠是它的代名词
~~~ 安全:windows和linux是一致的;windows被盯上攻击的
~~~ D C1 C2 B1 B2 B3 A1:对于linux内核来说有一套安全软件评级,
~~~ 从D开始由D向A1去进度,越向又它的评级就越高,对于windows和linux都是在C2级别,
~~~ 安全性是一致的。
~~~ linux的安全性并不比windows高;若是想加强安全性,增加四层安全防御控制。
~~~ selinux:主要通过主体客体规则库来达到相关的访问控制。是基于令牌访问控制。
~~~ 主体访问客体必须提供一套令牌,并且令牌匹配后才可以访问,令牌在selinux中是安全上下文。
2、Linux的安全性
### --- Linux的安全性
~~~ 《关于UNIX的安全》“首先要面对的事实是,UNIX的开发者并没有考虑安全问题,
~~~ 单单这一点就会引起大量的漏洞” ————Dennis Ritchie(C语言之父)
3、护城河
![](https://i-blog.csdnimg.cn/blog_migrate/29c77056ade1b0096efd5c171494bddc.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5b07e09fbe86b00b3baffc26a90372c9.png)
### --- tcp wrappers:
~~~ 只要一些TCP的应用程序链接lib web库的话,就可以通过TCP wrappers库区过滤
### --- ACL:
~~~ 访问控制列表,在应用程序上做的访问控制。
### --- selinux:
~~~ 现今为止人类能够想到最安全的防御手段。配置较为复杂,较为麻烦。
4、创建者:美国安全局;
![](https://i-blog.csdnimg.cn/blog_migrate/41c223828a331536cff13735921c75c8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7388b5ab9639e81fb68dde27f114fb01.png)
### --- 当主题想要访问客体的时候必须要经过规则库,
~~~ 并且满足防篡改,无旁路,可验证的三个特点。
### --- 主体:
~~~ 比如一个进程
### --- 客体:
~~~ 文件或者目标。
### --- 任意访问控制:
~~~ 你只要满足rwsx的权限对应的关系就可以执行对应操作
### --- 强制访问控制:
~~~ 上面的规则就是强制访问控制。若是开启强制访问控制,你的文件权限是777也需要经过规则库。
5、历经过程
### --- 历经过程
~~~ 2.1——>需要手动加载的一个外部模块
~~~ 2.4——>直接写到内核的一个模块
~~~ 2.6——> 成为了一部分linux发型版的内核的一部分
6、selinux的原理
![](https://i-blog.csdnimg.cn/blog_migrate/44677a67d4121b86ad75f0a442f8f5fd.png)
### --- selinux的原理
~~~ PROCESSTYPES:进程类型
~~~ OBJECTTYPES:对象类型
7、selinux的原理——类型强制
![](https://i-blog.csdnimg.cn/blog_migrate/5ceb8e57708a46b0db6ba8a3dfad026c.png)
### --- selinux的原理——类型强制
~~~ 对应关系若是发生变化,KERNEL内核就会把它控制,强制之中
~~~ 主体和客体之间一定存在一定联系的,且是允许类型。
8、selinux原理——MCS强制(多类型强制访问控制)
![](https://i-blog.csdnimg.cn/blog_migrate/4f5c1947e727f44e26c678204ae80120.png)
二、安全上下文
1、安全上下文
### --- 所有操作系统访问控制都是以关联的客体和主体的某种类型的访问控制属性为基础的,
~~~ 在SELinux中,访问控制属性叫做安全上下文,
~~~ 所有客体(文件/进程间通讯通道/网络主机等)和主体(进程)都有与其关联的安全上下文,
~~~ 一个安全上下文由三部分组成:用户/角色/和类型标识符,常常用下面的格式指定或显示安全上下文。
### --- 用户:角色:类型
2、相关命令
### --- chcon [-R] [-t type] [-u user] [-r role] 文件
~~~ 选项参数:
~~~ -R: 连同该目录下的次目录也同时修改
~~~ -t: 后面接安全性本文的类型字段
~~~ -u: 后面接身份识别,例如:system_u:
~~~ -r: 后面接角色,例如 system_r:
3、还原
### --- restorecon 还原成原有的SELinux type
~~~ 格式:restorecon [-Rv] 档案或目录
~~~ 选项与参数:
~~~ -R:连通次目录一起修改
~~~ -v:将过程显示到屏幕上