SELinux入门简介
操作系统有两类访问控制:自主访问控制(DAC)和强制访问控制(MAC)。标准Linux安全是一种DAC,SELinux为Linux增加了一个灵活的和可配置的的MAC。
进程启动时所拥有的权限就是运行此进程的用户权限,一个进程能访问哪些文件取决于该文件的主、组和其他权限,这就是DAC
如一个用户运行了进程,运行此进程需要若干个文件,但该进程具有的权限是与该用户的权限一致,即该进程能访问此用户能够访问的所有文件。Linux自身是无法限定某个进程只能访问其运行需要的指定文件,因此MAC,就是不让进程在该用户权限下访问它不需要文件,即使进程是有权限访问的。
那么是如何实现的?
每个进程启动时,给它划定一个范围,只能访问此范围内的资源。但是每种程序运行依赖的资源或权限并不相同,并不可能为每一种程序制定范围。所以有如下两种工作级别。
SELinux工作级别
restrict:每个进程都受selinux的控制
targeted:仅有限的进程受到控制,通常只监控容易受到入侵的进程
SELinux工作模型
存在三种角色subject operation object
subject:主体,操作的发起者
operation:操作,主体能够执行什么样的操作取决于客体所支持的操作
object:客体,操作的作用对象
通常动作的发起者是进程,进程可以对诸如文件或者进程等对象执行操作,那针对文件来说可以支持的操作有读、写、打开、关闭及更改权限等,针对进程作为客体,执行的操作有杀死、创建等
每一个进程都有一个标签。操作系统中的每一个文件/目录客体object也都有一个标签。甚至连网络端口、设备,乃至潜在的主机名都被分配了标签。标签有五部分组成USER:ROLE:TYPE[LEVEL[:CATEGORY]]。user指的是SELinux的user非系统user,LEVEL和CATEGORY:定义层次和分类,只用于mls策略中。
进程通过标签划分在不同的域,文件通过标签定义为不同个类型。SElinux存在一规则库,其中定义了哪种域能够访问哪些类型内的文件。如某进程要访问一个文件,但是此进程的域与文件的类型不在同一范围内那么要如何突破限制,这时候就要修改标签。
SELinux的策略通常是编译成二进制文件以加速访问。
如何使用SELinux
(1) /etc/sysconfig/selinux打开或关闭SELinux
SELINUX=enforcing|permissive|disabled
从disable状态启用,需要重启系统,让系统上的所有文件重新打上标签。permissive不禁止,但会计入日志/var/log/audit/audit.log
getenforce/setenforce 0|1 获取或更改当前状态
(2)查看、更改文件标签
ps –Z :检查进程的安全上下文;
ls -Z :检查文件、目录的安全上下文
chcon [-u USER] [-r ROLE] [-t TYPE]
一般目录下的文件具有“目录名_t”的类型,更改文件标签类型可以在不更改主(组)的情况下限制进程对其的访问。
还原文件的默认标签 ,restorecon [-R] path/file
(3)SELinux的布尔型开关
getsebool -a: 列出SELinux的所有布尔值
setsebool: 设置SELinux布尔值,如:setsebool -P dhcpd_disable_trans=0,-P表示重启后也能生效,直接写入规则库
参考:http://blog.csdn.net/myarrow/article/details/9856095/
SELinux入门简介的更多相关文章
- Linux系统入门简介<1>
linux系统入门简介 我们为什么要学习Linux? 在介绍Linux的历史前,我想先针对大家如何对Linux的发音说一下.我发现我身边的朋友对Linux的发音大致有这么几种: "里那克斯& ...
- 掌握 Ajax,第 1 部分: Ajax 入门简介
转:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html 掌握 Ajax,第 1 部分: Ajax 入门简介 理解 Ajax 及其工作 ...
- MongoDB入门简介
MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...
- (转)Web Service入门简介(一个简单的WebService示例)
Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...
- NodeJS入门简介
NodeJS入门简介 二.模块 在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分. const http = require ...
- ASP.NET Core学习之一 入门简介
一.入门简介 在学习之前,要先了解ASP.NET Core是什么?为什么?很多人学习新技术功利心很重,恨不得立马就学会了. 其实,那样做很不好,马马虎虎,联系过程中又花费非常多的时间去解决所遇到的“问 ...
- webservice入门简介
为了梦想,努力奋斗! 追求卓越,成功就会在不经意间追上你 webservice入门简介 1.什么是webservice? webservice是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓的远 ...
- Web Service入门简介(一个简单的WebService示例)
Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...
- Android精通教程-第一节Android入门简介
前言 大家好,给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cease to be ...
随机推荐
- JAVA体系学习-导向
一:当前学习内容 数值类型处理总结,字符类型处理总结,日期类型处理总结 spring 事务源码分析 spring源码系列 二:当前学习 主攻:并发编程->RPC原理->MQ原理->- ...
- go语言问题集锦
==============================================beego框架=========================================== 1.使 ...
- tornado架构分析1 从helloworld分析tornado架构
最近公司需要我写一个高性能RESTful服务组件.我之前很少涉及这种高性能服务器架构,帮公司和平时没事玩都是写脚本级别的东西.虽然好多基础组件(sphinx.logging.configparse等) ...
- ffplay流程分析
void main() { is = stream_open(input_filename, file_iformat); } static VideoState *stream_open(const ...
- js 字符串截取函数substr,substring,slice之间的差异
js 字符串的截取,主要有三个函数,一般使用三个函数:substr,substring,slice. 而这三个函数是不完全一样的,平时很难记住,在这里做下笔记,下次遇到的时候,直接从这里参考,调用合适 ...
- UVa442 Matrix Chain Multiplication(栈)
#include<cstdio>#include<cstring> #include<stack> #include<algorithm> #inclu ...
- 数据结构——串(KMP)
空串:长度为0的串 空格串:由一个或多个空格组成的串 串常用的3种机内表示方法: 定长顺序存储表示: 用一组地址连续的存储单元存储串的字符序列,每一个串变量都有一个固定长度的存储区,可用定长数组来描述 ...
- laravel passport加密jwt格式的access_token中的sub(user_id)字段
在很多需求我们不希望别人知道用户在我们表中的 user_id :但是又想用数据库的自增 id 功能:一般时候在取出用户后加密 user_id 加密即可:但是总有那么几个不经意间就可能把我们的 user ...
- yarn安装及node升级
ERROR: root@debian:/home/test/keygen-radio-master/scripts# npm install -g yarn npm WARN engine yarn@ ...
- 1_translation_1
It is always difficult to start describing a programming language because little details do not make ...