1. 概念

SELinux有三种工作模式:Enforcing, Permissive, disabled。Enforcing对应又有几种修饰(targeted, minimum, mls).

2. 解释

Enforcing就是开启,并真实有效;Permissive是开启,但是只记录错误到 /var/log/audit/audit.log 中,不真实有效。Disabled 则是关闭了SELinux

开启了Enforcing又有几种策略:targeted为选定的目标进行被保护(初始安装的进程有被保护范围,CentOS7默认为这个方式),minimum是在targeted基础上修改过的最小保护(听说不稳定),mls多级安全保护(这个还没有理解到位,解释不了??)

3. 对象

SELinux内只有对象,文件、目录、进程、端口都是对象。进程称为:主体 subject,进程的安全上下文称为:域 domain,文件/端口的安全上下文称为:类型 type. 而安全策略(Policy)则是:定义了主体(进程)访问对象的一系列规则数据库,是数据库,是规则(rule)的数据库,每条规则决定了一个操作的允许还是拒绝,什么操作呢:一个类型的主体,使用一个方法,访问了一个类型对象,应该是拒绝还是允许。比如:1. httpd_t 类型的主体(其实是:httpd进程),使用 ioctl read 方法,访问了 httpd_sys_content_t 类型的文件 /var/www/index.html 文件,是允许的。2. httpd_t 类型的主体(其实是:httpd进程),使用 ioctl read 方法,访问了 httpd_port_t 类型的端口文件,对应端口 80,是允许的(semanage port -l | grep '\<80\>' 查询到允许)

4. 流程

当主体(进程)访问对象(文件、端口等)时,Kernel中的安全策略执行服务器将检查AVC(访问矢量缓存,Access Vector Cache),AVC内缓存有:主体操作对象的安全上下文规则。

5. 二元值 boolean

在定义好的安全策略中,包含了很多规则,而为了能够更加灵活的处理一些操作的允许、拒绝,就把这些决定权暴露出来交给系统管理员,这样的一些操作权就是一个个 bool 开关。比如:samba 允许 home 目录被共享的开关是:samba_enable_home_dirs。

6. 操作命令

文件对象的安全上下文修改的命令:chcon, restorecon

默认规则查询,修改安全上下文的命令:semanage fcontext, semanage port 可查询,修改,也能操作chcon的功能

二元值查询修改命令:getsebool -a, setbool -P samba_enable_home_dirs on。

7. 关联包

setroubleshot(semanage,sealert),setools-console(seinfo)

[TimLinux] 理解selinux的更多相关文章

  1. 深入理解SELinux

      目录(?)[+]   1. 简介 SELinux带给Linux的主要价值是:提供了一个灵活的,可配置的MAC机制. Security-Enhanced Linux (SELinux)由以下两部分组 ...

  2. [TimLinux] django SELinux+httpd+mod_wsgi部署

    1. 实验项目 $ django-admin startproject myweb $ cd myweb/ $ python manage.py startapp poll 1. 配置使用MySQL ...

  3. 深入理解SELinux SEAndroid

    参考文章: 一. http://blog.csdn.net/innost/article/details/19299937 二. http://blog.csdn.net/innost/article ...

  4. Nginx 因 Selinux 服务导致无法远程訪问

    文章来源:http://blog.csdn.net/johnnycode/article/details/41947581 2014-12-16日 昨天晚上处理好的网络訪问连接.早晨又訪问不到了. 现 ...

  5. SELinux策略语言--客体类别和许可

    1. 简介 SELinux策略语言主要描述policy.conf的相关语法,其相关部分如下图所示: 2. 客体类别 定义内核支持的客体类别和许可的策略语言指令,并对SELinux系统中内核客体类别标准 ...

  6. selinux介绍/状态查看/开启/关闭

    SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统--百度百科. 基于经验来说SELinux在 ...

  7. Ansible的使用和模块化深入

    Ansible配置 配置文件:/etc/ansible/ansible.cfg [default] 默认配置 inventory = /etc/ansible/hosts主机清单 library = ...

  8. selinux 设置的彻底理解 并要 熟练经常的使用

    只需要参考这篇文章就好了: http://www.jishux.com/plus/view-631994-1.html 注意 在linux中 两个术语 的严格区分和使用: 改变: change; 改变 ...

  9. SELinux深入理解

    ps:今天在远程给服务器配置https的时候,一直乱码,以前做系统的系统第一件事情,就是关闭selinx,今天忘记了,然后就悲剧了... 弄了半天才弄好,镇定思痛,好好的来看下selinux 1. 简 ...

随机推荐

  1. Python 面向对象之五 基础拾遗

    Python 面向对象之五 基础拾遗 今天呢,就剩下的面向对象的相关知识进行学习,主要会学习以下几个方面的知识:1.上下文管理协议,2.为类加装饰器 3.元类 一.上下文管理协议 在学习文件操作的时候 ...

  2. 轻松实现C/C++各种常见进制相互转换

    其它进制转为十进制 在实现这个需求之前,先简单介绍一个c标准库中的一个函数: long strtol( const char *str, char **str_end, int base); 参数详细 ...

  3. xposed实现个人收款免签支付

    想必很多程序员都有这样的烦恼,想做个人网站,但如何实现收款功能? 今天我就给大家分享一下我的实现方案:基于xposed逆向框架实现微信免签支付.支付宝免签支付 接下来给大家简单分享一下实现过程,这个过 ...

  4. nyoj 803-A/B Problem

    803-A/B Problem 内存限制:64MB 时间限制:1000ms 特判: No 通过数:2 提交数:4 难度:3 题目描述: 做了A+B Problem,A/B Problem不是什么问题了 ...

  5. nyoj 244-16进制的简单运算 (scanf("%x%c%x", &a, &b, &c); printf("%o", a ± b))

    244-16进制的简单运算 内存限制:64MB 时间限制:1000ms 特判: No 通过数:12 提交数:13 难度:1 题目描述: 现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结 ...

  6. objc里的伪指针TaggedPointer

    如果你看过我前面两篇objc函数枢纽msgSend和你印象中的NSString是这样吗,相信已经多次看过它的身影了,到底它是何物何作用,我今日就来揭开谜团.我之所为称呼它为伪指针,是因为它像幽灵一样, ...

  7. fastjson 1.2.24反序列化导致任意命令执行漏洞分析记录

    环境搭建: 漏洞影响版本: fastjson在1.2.24以及之前版本存在远程代码执行高危安全漏洞 环境地址: https://github.com/vulhub/vulhub/tree/master ...

  8. Redux第一节

    安装脚手架 npm i -g create-react-app 创建一个Dom create-react-app demo01 安装 Ant Design npm i antd --save 安装re ...

  9. Flex利用JavaScript执行cmd命令

    Flex: //注册js事件            protected function init():void            {                ExternalInterfa ...

  10. Github上传大文件(超过100M)

    上传大文件(超过100M)到Github 笔者上传操作100M的文件到Github,结果在push的时候会自动终止.然后提示无法上传大文件,就算删除再提交也是报错. 于是,本人写这篇博客就是为了解决这 ...