[TimLinux] 理解selinux
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的更多相关文章
- 深入理解SELinux
目录(?)[+] 1. 简介 SELinux带给Linux的主要价值是:提供了一个灵活的,可配置的MAC机制. Security-Enhanced Linux (SELinux)由以下两部分组 ...
- [TimLinux] django SELinux+httpd+mod_wsgi部署
1. 实验项目 $ django-admin startproject myweb $ cd myweb/ $ python manage.py startapp poll 1. 配置使用MySQL ...
- 深入理解SELinux SEAndroid
参考文章: 一. http://blog.csdn.net/innost/article/details/19299937 二. http://blog.csdn.net/innost/article ...
- Nginx 因 Selinux 服务导致无法远程訪问
文章来源:http://blog.csdn.net/johnnycode/article/details/41947581 2014-12-16日 昨天晚上处理好的网络訪问连接.早晨又訪问不到了. 现 ...
- SELinux策略语言--客体类别和许可
1. 简介 SELinux策略语言主要描述policy.conf的相关语法,其相关部分如下图所示: 2. 客体类别 定义内核支持的客体类别和许可的策略语言指令,并对SELinux系统中内核客体类别标准 ...
- selinux介绍/状态查看/开启/关闭
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统--百度百科. 基于经验来说SELinux在 ...
- Ansible的使用和模块化深入
Ansible配置 配置文件:/etc/ansible/ansible.cfg [default] 默认配置 inventory = /etc/ansible/hosts主机清单 library = ...
- selinux 设置的彻底理解 并要 熟练经常的使用
只需要参考这篇文章就好了: http://www.jishux.com/plus/view-631994-1.html 注意 在linux中 两个术语 的严格区分和使用: 改变: change; 改变 ...
- SELinux深入理解
ps:今天在远程给服务器配置https的时候,一直乱码,以前做系统的系统第一件事情,就是关闭selinx,今天忘记了,然后就悲剧了... 弄了半天才弄好,镇定思痛,好好的来看下selinux 1. 简 ...
随机推荐
- 【集合系列】- 深入浅出分析LinkedHashMap
一.摘要 在集合系列的第一章,咱们了解到,Map的实现类有HashMap.LinkedHashMap.TreeMap.IdentityHashMap.WeakHashMap.Hashtable.Pro ...
- JavaScript with Image:创建缩略图
当图片很大,直接把图片从Server下载到浏览器上看是一种很不明智的做法,浪费了服务器的资源,网络带宽和客户端的资源.所以,通常Server和Client之间会传输缩略图,只有当Client请求某张图 ...
- Python 面向对象-上篇
概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...
- hdu 5495 LCS (置换群)
Sample Input231 2 33 2 161 5 3 2 6 43 6 2 4 5 1 Sample Output24 C/C++: #include <map> #includ ...
- 领扣(LeetCode)删除链表中的节点 个人题解
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 - ...
- PostGIS 用Navicat工具添加自增
1.新建查询,新增序列(从66开始,每次自增1): CREATE SEQUENCE seq_area INCREMENT 1 MINVALUE 66 MAXVALUE 999999999 START ...
- Redis为什么是单线程、及高并发快的3大原因详解
Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快: 2.redis是单线程的,省去了很多上下文切换线程的时间: 3.redis使用多路复用技术,可以处理并发的连接.非阻塞 ...
- SpringBoot 项目脚手架
写在前面 之前也一直很少有写SpringBoot项目相关的文章,今天 准备整理一个我自己初始化SpringBoot项目时的一个脚手架,便于自己后面查阅.因为SpringBoot的约定大于配置,在整合各 ...
- 新闻实时分析系统-Kafka分布式集群部署
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spa ...
- Linux(CentOS7)修改默认yum源为国内的阿里云、网易yum源
修改方式: echo 备份当前的yum源 mv /etc/yum.repos.d /etc/yum.repos.d.backup4comex echo 新建空的yum源设置目录 mkdir /etc/ ...