TE模型

主体划分为若干组,称为域
客体划分为若干组,每个组称为一个类型
 
DDT(Domain Definition Table,域定义表,二维),表示域和类型的对应访问权限,权限包括读写执行
一个域通常有多个主体
一个类型通常有多个客体
 
DIT(Domain Interaction Table,域交互表)当主体成为客体的时候,用DIT表来实现访问控制。权限包括发信号、创建进程、杀死进程等
 
缺点:
1、访问控制权限的配置比较复杂
2、二维表结构无法反映系统的内在结构
3、控制策略的定义比较复杂

DTE模型

立足于解决TE模型在实际应用中遇到的问题
  • 提供了用于描述安全数学和访问控制配置的高级语言,DTE语言(DTEL)
  • 采用了隐含方式表示文件的安全属性
假设有如下的DTE语句:type unix_t, specs_t, budget_t, rates_t;
表示定义四个客体类型,名称分别是unix_t, specs_t, budget_t, rates_t;
 
DTE的赋值语句把客体和客体类型联系起来,也就是设置客体的类型属性
客体间的层次关系,可以采用隐含赋值的方式给客体赋类型值,比如,给该目录赋值类型,相当于把该类型赋值给该目录及其下面的所以目录和文件。这就是客体赋值的隐含规则
 
assign -r -s uinix_t /;
将/下所有目录和文件赋值为类型unix_t,-r表示递归、-s表示禁止系统在循行期间创建与目录的类型不同的客体
 
DTEL还定义了域入口点,一个域的入口点是一个可执行程序,执行该可执行程序可以使程序进入到该域中。
 

SELinux实现的TE模型

SELinux实现的TE模型对DTE模型进行了扩充
1、类型的细分,在类型的基础之上增加类别(class)的概念
2、权限的细化,定义了几十个class,为每个class定义了大量精细的访问控制
 
SELinux中几个常用的客体类别(class),及其权限
file:read、write、execute、getattr、create
dir:read、write、search、rmdir
process:signal、transition(域的转换)、fork、getattr
socket:bind、listen、connect、accept
filesystem:mount、unmount
 
访问控制方法
allow是描述访问控制授权的基本方法,语法规则如下:
allow    source_type    target_type  : object_class    perm_list
source_type:主体的域
target_type:客体类型
object_class:访问权限所针对的客体类别
perm_list:允许源类型对目标类型的客体类别进行的访问
 
allow user_d bin_t : file{read、execute、getattr}
允许user_d域的进程对bin_t类型的普通文件进行读、写、取属性操作
 
举例:
3条allow规则的含义
如果要实现域的转移,则需要以下3条规则:
 

进程工作域的字段切换

当满足了以上的三个条件的时候,可以实行进程工作域的切换
SELinux通过类型切换规则来描述进程工作域的字段切换方法,规则如下:
type_transition    source_type    target_type    :    process    default_type
该规则的含义是,当source_type(该字段表示域)的进程执行target_type(表示文件类型)的入口程序的时候,自动把进程的域切换到 default_type(表示域)。
 

访问判定

SELinux中,一个权限的判定通过以下的四元组来确定
source_type    target_type    object_class    perm_list
perm_list用来做为判定结果,每种权限用一个位表示

切换判定

切换判定指给新的主体或新的客体分配新的标签及新的标签该取什么值,给主体和客体分配新的标签就被称为标签切换
可以使用type_transition规则描述文件的类型切换控制,该规则的描述如下:
type_transition    source_type    target_type    :    file     default_type
在source_type域中、target_type类型的目录下创建新文件时,该规则把新文件的类型标签切换为default_type

客体类型标签的存储

linux中客体分为临时客体和永久客体
临时客体的安全属性保存在内存的表结构中
永久客体如文件和目录,保存在文件系统的扩展属性结构中,系统运行时,SELinux再把文件系统拓展属性中的永久客体的类型标签映射到内存结构的表结构

SELinux中系统结构设计

LSM框架是inux内核支持安全拓展的方式,实现是在linux内核的系统调研中安插一系列的钩子,这些钩子安插在linux访问控制之后,实施访问操作之前
 
在linux中,如果调用open时成功,之后又被撤销了读取权限,进程还是可以读取文件
但是SELinux在每次操作文件时都会检查权限
 
 
SELinux的策略语言

selinux基本的更多相关文章

  1. 关闭selinux

    1.查看SELinux状态:getenforce Enforcing(启动) disable(禁用) 1.禁用SELinux(重启后依然生效) 修改 vi /etc/sysconfig/selinux ...

  2. 关闭SELinux和iptables防火墙

    1.关闭SELinux: 编辑SELinux配置文件: [root@Redis selinux]# vim /etc/selinux/config 修改SELINUX配置项为disable SELIN ...

  3. 开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux

    开发thinkphp的时候, 总是会出现各种个样 的奇怪的毛病, 比如: 说什么Application目录不可写, 比如: 说什么 _STORAGE_WRITE_ERROR, 不能生成 Runtime ...

  4. linux系统的初化始配置(包括网络,主机名,关闭firewalld与selinux)

    每次我们使用Linux都会对系统进行初始化的配置,下面我们一一列出来. 1.服务的开启 systemctl enable firewalld.service //将指定的服务设置为开机启动 syste ...

  5. SElinux对一些服务关系的影响

    kerberos 允许系统使用kerberos  setsebool -P allow_kerberos 1 setsebool -P krb5kdc_disable_trans 1 service ...

  6. Centos 7 安装 设置 IP地址,DNS,主机名,防火墙,端口,SELinux (实测+笔记)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.虚拟系统安装 1.1 使 ...

  7. Linux下开启关闭SeLinux

    SELinux (Security-Enhanced Linux) in Fedora is an implementation of mandatory access control in the ...

  8. 关闭Linux防火墙(iptables) 及 SELinux

    一.关闭防火墙 1.重启后永久性生效: 开启:chkconfig iptables on 关闭:chkconfig iptables off 2.即时生效,重启后失效: 开启:service ipta ...

  9. selinux 导致无法启动httpd

    selinux 导致无法启动httpd ansible_dire:~ # /etc/init.d/httpd restart 停止 httpd: [失败]正在启动 httpd:(13)Permissi ...

  10. Linux selinux iptables

    关闭SELINUX – 使用getenforce命令检查SELINUX状态,若结果不是”Disabled”,可使用setenforce 0命令临时关闭SELINUX.要永久关闭SELINUX,需修改/ ...

随机推荐

  1. wpa_supplicant 的编译

    1. wpa_supplicant的编译需要用到的3个源码包, 分别是wpa_supplicant, openssl, libnl wpa_supplicant的下载地址:http://w1.fi/r ...

  2. C#线程 ---- 线程同步详解

    线程同步 说明:接上一篇,注意分享线程同步的必要性和线程同步的方法. 测试代码下载:https://github.com/EkeSu/C-Thread-synchronization-C-.git 一 ...

  3. spring事务管理方式,aop

    达内12 note unit 09 01 1.spring事务管理 2.spring提供了对事务管理支持 spring采用aop机制完成事务控制 可以实现在不修改原有组件代码情况下实现事务控制功能. ...

  4. layui 表格在排序之后没有重新渲染问题

    问题描述: 在layui表格中,最后一列增加了操作按钮,并且在某些行设置了样式,但是在排序之后,按钮的点击事件失效了,样式也没有了,可能是没有执行done回调 原因: done回调只有在render和 ...

  5. 微信小程序开发工具中快捷键

    微信小程序开发工具表面上是没有更多的样式类的工具,例如缩进.隐藏代码什么的. 现在总结一下小程序开发工具常用的一些快捷键: 格式调整 Ctrl+S:保存文件Ctrl+[, Ctrl+]:代码行缩进Ct ...

  6. Samba部署共享服务

    在本地PC文件共享 Samba服务程序是一款基于SMB协议并由服务端和客户端组成的开源文件共享资源软件,实现了Windows和Linux系统间的文件共享 1.安装Samba服务程序    yum in ...

  7. 清除SqlServer日志

    --在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式. USE [master]GO --GPSLocus是要清除日志的数据库名称ALTER DATABASE [DbN ...

  8. js 生成随机炫彩背景

    在浏览 https://ghost.org/xxxx/ 时. 可以使用 background-size: cover; 加上很小的像素图,放大后实现炫彩背景效果. 使用 js canvas 随机生成小 ...

  9. 多媒体文件格式(四):TS 格式

    一.TS 格式标准介绍 TS是一种音视频封装格式,全称为MPEG2-TS.其中TS即"Transport Stream"的缩写. 先简要介绍一下什么是MPEG2-TS: DVD的音 ...

  10. Javascript高级编程学习笔记(93)—— Canvas(10) 模式及图像数据

    模式 模式其实就是重复的图像,用来填充或描边图形 要创建一个新模式,可以调用 createPattern()并传入两个参数 一个HTML img元素 用于表示如何重复的字符串 "repeat ...