[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. 简 ...
随机推荐
- 微软的分布式应用框架 Dapr
微服务架构已成为构建云原生应用程序的标准,微服务架构提供了令人信服的好处,包括可伸缩性,松散的服务耦合和独立部署,但是这种方法的成本很高,需要了解和熟练掌握分布式系统.为了使用所有开发人员能够使用任何 ...
- Python 常用模块系列(2)--time module and datatime module
import time print (help(time)) #time帮助文档 1. time模块--三种时间表现形式: 1° 时间戳--如:time.time() #从python创立以来,到当 ...
- Arduino 配置 ESP8266环境
Arduino 配置 ESP8266环境 将 http://arduino.esp8266.com/stable/package_esp8266com_index.json 添加到 [附加开发板管理器 ...
- 力扣(LeetCode)验证回文串 个人题解(C++)
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a c ...
- linux命令--文件目录操作命令
一.命令的基本格式 1.命令提示符 [root@love2 ~]# []:这是提示符的分隔符号,没有特殊含义. root:显示的是当前的登录用户. @:分隔符号,没有特殊含义.love2:当前系统的主 ...
- java版单例模式
单例模式可以说是最常用的设计模式之一,其主要作用就是保证一个类只有一个实例,并且提供一个访问它的全局访问点,严格的控制用户的访问方式. 单例模式又分为懒汉模式和饿汉模式,首先说一下饿汉模式: 饿汉模式 ...
- Java 添加、读取、修改、删除Word文档属性
Word文档属性包括常规.摘要.统计.内容.自定义等,其中摘要包括标题.主题.作者.经理.单位.类别.关键词.备注等项目,通过设置这些摘要信息或自定义属性可方便对文档的管理.本文中将主要介绍对文档摘要 ...
- 扛把子组20191121-3 Final阶段贡献分配规则
此作业的要求参见http://edu.cnblogs.com/campus/nenu/2019fall/homework/10063 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 韩昊 刘信鹏 F ...
- Java从零到企业级电商项目实战(第1章 课程介绍)
- 【Luogu P1164】小A点菜
题目原链接: Luogu 小A点菜 [解题思路] 常规的0-1背包,不过是求装满整个背包的方案数,只要把0-1背包的状态转移方程稍微改一下就行.因为要求方案数,那么把方程中的max换成sum就行. [ ...