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 ...
随机推荐
- [持续交付实践] pipeline使用:Shared Libraries
前言 随着pipeline交付流水线在团队中的推广,使用pipeline脚本的job也迅速增加.虽然我们已经基于公司的技术栈特点做了一个尽可能通用的pipeline脚本样例,让搭建者只需要修改几个赋值 ...
- sqlPlus基本操作
SQL*PLUS连接方法 1. $ sqlplus "user/password[@service] [as sysdba]" 2. $ sqlplus /nolog SQL> ...
- javascript基础知识笔记-自用
笔记内容根据个人基础知识不足不明白之处做的记录.主要看的:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript 1.变量,变量的名字又叫标识符 ...
- ECharts教程
ECharts 特性 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等) 底层依赖轻量级的矢量图形库 ZRender 丰富的可视化类型 常规的折线图.柱状图 ...
- DO,DTO和VO的使用
DO,DTO和VO的使用 DO:对应数据库表结构 VO:一般用于前端展示使用 DTO:用于数据传递.(接口入参和接口返回值都可以) 以ssm框架为例: controller层: public List ...
- HTML - label (转)
自:http://www.runoob.com 标签定义及使用说明 <label> 标签为 input 元素定义标注(标记). label 元素不会向用户呈现任何特殊效果.不过,它为鼠标用 ...
- Nginx配置跨域支持功能
跨域是前端开发中经常会遇到的问题,前端调用后台服务时,通常会遇到 No 'Access-Control-Allow-Origin' header is present on the requested ...
- Android Studio添加aar依赖的两种方式
1 android{ repositories { flatDir { dirs 'libs' } } } dependencies { implementation fileTree(include ...
- mxGraph实现鱼骨图(因果图)(转自CSDN,链接附于文中)
鱼骨图由日本管理大师石川馨先生所发明,故又名石川图.鱼骨图是一种发现问题“根本原因”的方法,它也可以称之为“Ishikawa”或者“因果图”.其特点是简捷实用,深入直观.它看上去有些象鱼骨,问题或缺陷 ...
- php 自制简单路由类 望大神指点
class route{ /** @var null 模块 */ private static $module = null; /** @var null 控制器 */ private static ...