linux下查看 SELinux状态及关闭SELinux
SELinux全称为安全增强式 Security-Enhanced Linux(SELinux),是一个在内核中实践的强制存取控制(MAC)安全性机制。SELinux 首先在 CentOS 4 出现,并在其后的 CentOS 发行版本获得重大改善。这些改善代表用 SELinux 解决问题的方法亦随著时间而改变。
SELinux的原理与架构
SELinux的整体架构和原理都比较简单,使用也不复杂。其复杂的地方在于规则非常复杂,每个进程都要有规则策略。
SELinux有2个核心组件及一些配套的工具。这两个核心组件分别是内核逻辑和策略数据库。当然,策略数据库本身并非软件逻辑,而是一个静态的数据库,为内核逻辑提供判断的依据。SELinux 更能遵从最小权限的理念。在开启SELinux的情况下(enforcing模式),所有访问默认是被拒绝的,而有一系列例外的策略来允许系统的元素(服务、进程、用户)具备访问资源的权限。
整体架构与访问流程
SELinux的整个架构如图1所示,最左侧的为访问者,也就是服务,进程或者用户等内容。最右侧的是被访问者,也就是具体的资源,比如文件、目录或者套接字等。
当访问者访问被访问者(资源)时,需要调用内核的接口。以读取某个目录的文件为例,需要读取read接口。此时会经过SELinux内核的判断逻辑,该判断逻辑根据策略数据库的内容确定访问者是否有权访问被访问者,如果权利允许则放行,否则则拒绝并记录审计日志。
SELinux的管理与模式
可以通过/etc/selinux/config文件中的配置项实现对SELinux的管理,包括启动、停止和修改策略类型等。
如图所示,这里有2个配置项,也就是SELINUX和SELINUXTYPE。其中SELINUX表示SELinux的启用状态,可以有3种模式。
Enforcing: 此选项会在系统上启用并实施 SELinux 的安全性政策,拒绝存取及记录审计日志Permissive: 在 Permissive 模式下,SELinux 会被启用但不会实施安全性政策,而只会发出警告及记录审计日志Disabled: 该选项表示SELinux 处于非工作状态SELinux的类型
从上述配置文件还可以看出SELinux有2中类型,分别是targeted和mls。
实例代码解析
SELinux控制的内容很多,包括文件、套集字和信号量等等。当然,我们不可能介绍到所有的内容,今天我们主要看一下文件相关的内容。
Linux内核提供了一个安全模块框架层,这个公共框架类似于文件系统中的VFS。它为调用者提供统一的接口。之所以要提供统一接口是因为Linux内核不仅仅支持SELinux安全特性,还支持Apparmor等很多安全特性。
以打开文件为例,当我们调用内核中打开文件的接口是,在其内部会调用security_file_open函数。该函数就是Linux内核安全框架(LSM)的公共接口。然后该函数通过函数指针的方式调用所有注册到LSM的安全模块。以SELinux为例,最终会调用到selinux_file_open函数。
然后selinux_file_open函数会调用avc公共函数实现权限鉴定和审计日志的记录等内容。这里关键函数是avc_has_perm。可以看出该函数又调用了另外两个函数,其中avc_has_perm_noaudit函数实现权限的判断,而avc_audit函数则实现审计功能。
函数avc_audit实现审计功能,但并非每个操作都需要记录审计日志。在写策略文件的时候可以关闭某个策略的审计。也就是说,在关闭该策略的审计的情况下,即使访问拒绝也不会记录审计日志。
在函数avc_audit中,avc_audit_required函数用于判断是否需要记录审计日志,而slow_avc_audit函数则是进行审计日志的封装和记录工作。这部分代码比较清晰,简单,本文不再赘述。
查看SELinux状态:
1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
2、getenforce ##也可以用这个命令检查
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
linux下查看 SELinux状态及关闭SELinux的更多相关文章
- 查看SELinux状态并关闭SELinux
SELinux(Security-Enhanced Linux)是Linux上最杰出的新安全子系统.在linux内核级别上提供了一个灵活的强制访问控制系统(MAC),这个强制访问控制系统是建立在自由访 ...
- 查看 SELinux状态及关闭SELinux
查看SELinux状态: 1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 SELinux status: ...
- 查看SELinux状态及关闭SELinux
查看SELinux状态: 输入:/usr/sbin/sestatus -v SELinux status: enabled ##开启状态 关闭SELinux 修改vi /etc/s ...
- [转] 查看 SELinux状态及关闭SELinux
本文转载自: http://bguncle.blog.51cto.com/3184079/957315 查看SELinux状态: 1./usr/sbin/sestatus -v ##如果SE ...
- 如何查看 SELinux状态及关闭SELinux
查看SELinux状态: 1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 SELinux status: ...
- Linux下查看Web服务器当前的并发连接数和TCP连接状态
对于web服务器(Nginx.Apache等)来说,并发连接数是一个比较重要的参数,下面就通过netstat命令和awk来查看web服务器的并发连接数以及TCP连接状态. $ netstat -n | ...
- Linux下查看Nginx的并发连接数和连接状态-乾颐堂
Linux下查看Nginx等的并发连接数和连接状态. 1.查看Web服务器(Nginx Apache)的并发请求数及其TCP连接状态: netstat -n | awk '/^tcp/ {++S[$N ...
- linux 6 查看防火墙状态及开启关闭命令
linux 6 查看防火墙状态及开启关闭命令 https://blog.csdn.net/lv_shijun/article/details/52453882 存在以下两种方式: 一.service方 ...
- linux下查看进程的状态 /proc/[pid]/status
查看进程的状态: 1.查看进程的pid,以java为例:ps -ef | grep java 2.查看进程状态:cat /proc/[pid]/status 关键字: linux [root@loca ...
随机推荐
- 【Android开发】找乐,一个笑话App的制作过程记录
缘起 想做一个笑话App的原因是因为在知乎上看过一个帖子,做Android可以有哪些数据可以练手,里面推荐了几个数据开放平台.在这些平台中无一不是有公共的笑话接口,当时心想这个可以拿来练手啊,还挺有意 ...
- 【九度OJ】题目1433:FatMouse 解题报告
[九度OJ]题目1433:FatMouse 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1433 题目描述: FatMouse pr ...
- 「AHOI2013」 差异
知识点: SA,线段树,单调栈 原题面 Loj Luogu 题意简述 给定一长度为 \(n\) 的字符串 \(S\),令 \(T_i\) 表示从第 \(i\) 个字符开始的后缀,求: \[\sum_{ ...
- Robust De-noising by Kernel PCA
目录 引 主要内容 Takahashi T, Kurita T. Robust De-noising by Kernel PCA[C]. international conference on art ...
- (五)React Ant Design Pro + .Net5 WebApi:后端环境搭建-Autofac注入+ 泛型仓储
一. 简介 Autofac与.Net Core自带DI的区别,大佬级的文章数不胜数.我只是根据实际应用简单介绍(非常简单的那种) 1.批量注入,自带DI需要自己写循环反射注入,Autofac现成方法, ...
- 简单的 Shell 脚本入门教程
Shell脚本 运作方式与解释型语言相当,如果有语言基础,学起 Shell 脚本就非常容易,但是 Shell 与常见的语言不同,一些常见的函数在 Shell 中需要组合一些命令得以实现 工具推荐 Sh ...
- .net core集成使用consul
快速启动一个consul集群可以参考:使用docker快速部署一个consul集群 .net core集成使用consul是通过consul提供出来api接口来实现的,可以分成两个部分来说明:配置集成 ...
- JZOJ5966. [NOIP2018TGD2T3] 保卫王国 (动态DP做法)
题目大意 这还不是人尽皆知? 有一棵树, 每个节点放军队的代价是\(a_i\), 一条边连接的两个点至少有一个要放军队, 还有\(q\)次询问, 每次规定其中的两个一定需要/不可放置军队, 问这样修改 ...
- 利用js 引用的方式 鼠标经过弹出效果
js引用的是此网站代码: https://www.cnblogs.com/jq-growup/p/15609469.html <!DOCTYPE html> <html lang=& ...
- Linux上天之路(十四)之Linux数据处理
主要内容 数据检索 数据排序 数据去重 重定向 1. 数据检索 常和管道协作的命令 – grep grep:用于搜索模式参数指定的内容,并将匹配的行输出到屏幕或者重定向文件中,常和管道协作的命令 – ...