Linux SELinux讲解

news2024/9/27 15:21:01

目录

SELinux概念

SELinux配置文件

SELINUX 工作模式

SELINUX TYPE策略类型

配置安全上下文

查看安全上下文

修改安全上下文

修改默认的安全上下文

配置策略规则

查看策略规则

修改策略规则状态


SELinux概念

为什么提出SELinux

之前学习的权限,都是基于用户的(所有者、所有组、其它用户),只有当该用户针对某个文件或者目录具备相应的rws权限之后,才可以做相应的操作

此时系统管理员无法通过基于用户的标准访问策略(DAC)生成全面、精细的安全策略

此时就需要通过SELinux来实现

SELinux简介

SELinux实施强制访问控制(MAC),SELinux对每个文件、进程、目录、端口都有专门的安全标签,此标签被称为安全上下文;

SELinux就是基于进程安全上下文和文件/目录的安全上下文来实现策略控制

即:只有当文件/目录的安全上下文类型和进程的安全上下文类型符合时,该进程才可以对文件/目录做相应的操作

SELinux作用

SELinux主要目标是防止已遭泄露的系统服务(进程)访问用户数据(文件/目录)

增强现有的安全解决方案

使用SELinux策略来确定某个进程能够访问文件、目录、端口

注意事项

SELinux并不是防病毒软件、并不能够用来替代密码、防火墙和安全系统

SELinux的访问策略可以基于所有的可用信息(SELinux用户、角色、类型、安全级别等)


SELinux配置文件

SELinux的主配置文件:/etc/selinux/config

SELINUX 工作模式

ebforcing  强制模式(默认模式)

启用SELinux,并强制执行所有的安全策略规则

permissive 宽容模式

启用SELinux,但是安全策略规则并没有强制执行(即;当策略拒绝访问时,访问仍然可以被允许,但是会发送相关日志信息)

disabled   关闭模式

关闭SELinux,使用DAC访问控制方式(用于不需要增强安全性的环境)

注意事项

当从强制或者宽容模式切换到关闭模式,或从关闭模式切换到其它两种模式,需要重启系统

强制和宽容模式之间的切换不需要重启系统

修改工作模式

可以直接在配置文件修改,也可以使用命令修改

命令修改为临时切换,配置文件修改为永久切换

setenforce 0  切换到宽容模式

                1  切换到强制模式

getenforce    查看selinux工作模式

SELINUX TYPE策略类型

策略类型决定了使用那种策略规则来执行进程(主体)可以访问的文件或目录资源(目标)

target

主要对系统中的服务进程进行访问控制

可以限制其它进程和用户

minumum

与Target类似,只不过此策略允许SELinux在不消耗过多资源的情况下运行

一般在低内存设备上使用(相比于target可以选择部分进程进行访问控制)

mls

自定义级别,对进程做访问控制

可以对所有进程做控制

修改策略类型

直接在配置文件修改

sestatus                          查看selinux状态(包含策略类型)


配置安全上下文

查看安全上下文

ls -Z  文件          查看文件的安全上下文

ls -dZ 目录            查看目录的安全上下文

ps auxZ | grep 进程     查看进程的安全上下文

 

字段讲解

安全上下文字段通过:分隔,分为4个字段

用户字段:角色字段:类型:灵敏度

SELinux用户

seinfo -u  列出SELinux中所有的身份

用于标识该数据被哪个身份所拥有(相当于权限中的用户身份)

 unconfined_u :不受限的用户,不受SELinux限制的进程所产生的文件大部分就是此用户

 system_u:     系统用户,大部分就是系统自己产生的文件

 

角色字段

seinfo -r   列出SELinux所有的角色

用于表示此数据是进程还是文件/目录

 object_r: 代表的时文件/目录资源

 system_r:代表的就是进程

 

类型

seinfo -t   列出SELinux所有的类型

安全上下文最重要的字段,决定着进程是否可以访问文件

在文件/目录的安全上下文中被称为类型,在进程的安全上下文中被称为域

只有主体(进程)的域与目标(文件/目录)的类型匹配时,才可以正常访问

修改安全上下文

chcon命令

chcon -t 文件/目录   修改文件/目录的类型字段

-u  修改安全上下文的身份字段

-r   修改安全上下文的角色字段

       -R   对当前目录和目录下的所有文件同时设置

restorecon命令

restorecon -Rv 文件/目录  恢复文件默认的安全上下文

       -R   对当前目录和目录下的所有文件同时设置

       -v   显示恢复过程

修改默认的安全上下文

只有系统默认目录才有默认的安全上下文,对于新创建的目录,我们需要手工指定默认安全上下文

semange fcontext -l  查询所有的安全上下文

       -t    设定默认安全上下文的类型

       -m  修改文件/目录的默认安全上下文

       -a   添加默认安全上下文

       -e  将此文件的/目录的类型复制给另一个文件/目录

semange fcontext -a -t 类型              文件/目录 为文件/目录添加默认的安全上下文类型

semange fcontext -a -e 文件1 文件2  将文件2默认的安全上下文改为此文件1的类型

semange port -a -t http_port_t -p tcp 82 为http_port_t类型添加tcp的82端口


配置策略规则

查看策略规则

查看规则名称

seinfo -b                         查看当前策略下的具体规则名称

 

查看具体规则内容

sesearch --allow -b 规则名       查看此规则名下的允许规则具体内容

sesearch –allow -s 主体的域     查看和指定主体的类型相关的规则(允许的)

sesearch –allow -t 目标的类型    查看和目标的的类型相关的规则(允许的)

              --allow        显示允许的规则

              --neverallow 显示从不允许的规则

修改策略规则状态

getsebool 规则名     查看此规则是否开启

getsebool -a          查看所有规则是否开启

setsebool -P 规则名=0  将此规则关闭(1表示开启)

              -P 表示永久生效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/371666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深力科电子-MachXO2系列 前所未有的灵活桥接和I/O扩展功能 LCMXO2-256HC-4TG100C FPGA现场可编程门阵列

lattice莱迪斯MachXO2系列超低密度FPGA现场可编程门阵列,适用于低成本的复杂系统控制和视频接口设计开发,满足了通信、计算、工业、消费电子和医疗市场所需的系统控制和接口应用。 瞬时启动,迅速实现控制——启动时间小于1mS,在上…

FreeRTOS信号量

前面介绍过,队列(queue)可以用于传输数据:在任务之间,任务和中断之间。消息队列用于传输多个数据,但是有时候我们只需要传递一个状态,这个状态值需要用一个数值表示,比如&#xff1a…

Android运行时权限Runtime Permission源码分析

Runtime Permission源码跟踪 Android 8.1.0 请求权限时弹窗代码 应用使用requestPermissions申请权限时,系统会弹出一个选择窗口,可进行允许。 源码在packages/apps/PackageInstaller/文件下 GrantPermissionsActivity.java是进行权限分配的弹出窗口…

分布式之PBFT算法

写在前面 在分布式之拜占庭问题 一文中我们分析了拜占庭问题,并一起看了支持拜占庭容错的口信消息性和签名消息性算法,但是这两种算法都有一个非常严重的问题,就是消息数量太多,通信的成本太大,消息数量复杂度为O(n ^…

CentOS 环境 OpneSIPS 3.1 版本安装及使用

文章目录1. OpenSIPS 源码下载2. 工具准备3. 编译安装4. opensips-cli 工具安装5. 启动 OpenSIPS 实例1. OpenSIPS 源码下载 使用以下命令即可下载 OpenSIPS 的源码,笔者下载的是比较稳定的 3.1 版本,读者有兴趣也可前往 官方传送门 sudo git clone htt…

1个串口用1根线实现多机半双工通信+开机控制电路

功能需求: 主机使用一个串口,与两个从机进行双向通信,主机向从机发送数据,从机能够返回数据,由于结构限制,主机与从机之间只有3根线(电源、地、数据线),并且从机上没有设…

【蓝牙mesh】access层(接入层)协议介绍

【蓝牙mesh】access层(接入层)协议介绍 Access层简介 Access层定义了应用层如何使用upper协议层的接口,它不仅定义了应用层的格式,还定义了应用数据在upper层的加密和解密。当收到下层的数据包时,它会检查数据的netke…

Web前端:选择AngularJS进行Web开发的12大理由!

无论你希望构建本地应用程序、渐进式web应用程序(PWA),还是开发单页应用程序,每个企业都寻求具有影响力的数字形象,并希望构建交互式、跨平台和动态的web应用程序,以吸引客户。AngularJS,也称为Angular,是一…

李宏毅2023春季机器学习课程

目录2021&2022课程重磅须知我维护的其他项目更新日志课程地址课程资料直链课程作业直链其他优质课程2021&2022课程 CSDN Github 重磅须知 为方便所有网课资料与优质电子书籍的实时更新维护,创建一个在线实时网盘文件夹;   网盘获取方式&#…

C++进阶——继承

C进阶——继承 1.继承的概念及定义 面向对象三大特性:封装、继承、多态。 概念: 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行扩展,增加功能,这…

MySql数据库环境部署

MySql基础与Sql数据库概述基础环境的建立MYSQL数据库的连接方法MySql的默认数据库数据库端口号数据库概述 数据库(DataBase,DB)∶存储在磁带、磁盘、光盘或其他外存介质上、按定结构组织在一起的相关数据的集合。数据库管理系统〈DataBase Management S…

SpringMVC常用注释

1.RequestMapping注释:用来匹配客户端发送的请求,可以在方法上使用,也可以在类上使用。方法:表示用来匹配要处理的请求 类上:表示为当前类的所有方法的请求地址添加一个前置路径,访问的时候必须要添加此路径…

一个.Net Core开源缓存中间件,让你更加简单、方便使用缓存

上次给大家推荐过一个缓存中间件《一个C#开发的非常实用的缓存中间件》,今天再给大家推荐一个缓存中间件,两者功能差不多,都是提供统一接口、多级缓存、分布式缓存、支持多种Provider等。 项目简介 这是一个基于.Net Core开发的缓存中间件&…

Java虚拟机之类加载学习总结

文章目录1 什么是类加载1.1 类加载的应用1.2 类加载过程1.3 类的验证1.4 类初始化顺序2 类加载时机3 类加载器3.1 类加载分类3.2 双亲委派3.3 自定义类加载器3.4 类加载器的命名空间4 打破双亲委派4.1 线程上下文类加载器4.2 自定义类加载器5 类的卸载1 什么是类加载 Java 虚拟…

【工具】JSR-303后端参数校验框架的使用方法及说明

【工具】JSR-303后端参数校验框架的使用方法及说明 文章目录【工具】JSR-303后端参数校验框架的使用方法及说明1. 统一校验需求2. 使用说明2.1 引入依赖2.2 规则说明2.3 使用说明2.4 分组校验2.5 定制校验规则注解1. 统一校验需求 有一句话是这样说的——“前端防君子&#xf…

小知识点:Confluence + mysql 安装流程

流程一、Confluence 配置二、MySQL 配置三、启动一、Confluence 配置 访问下载地址,下载最新安装包 Confluence Server 下载存档 | Atlassian创建环境目录 mkdir -p /xxx/confluence/confluence-home 解压安装包 tar -zxvf atlassian-confluence-7.xx.x.tar.gz -C …

人工智能- windows10环境,配rtx 3060ti显卡,tensorflow-gpu安装

文章目录前言流程方法1.先安装网盘里的anaconda文件,安装后就是python3.8.8环境2.安装vs20193.vs2019安装完毕后开始安装cuda4.安装cudnn5.安装tensorflow-gpu6.测试GPU是否正常识别,tensorflow是否可用前言 最近显卡降价,入手了一块RTX3060…

ROS小车研究笔记:二维SLAM建图简介与源码分析

ROS提供了现成的各类建图算法实现。如果只是应用的话不需要了解详细算法原理,只需要了解其需要的输入输出即可。 1 Gmapping Gmapping使用粒子滤波算法进行建图,在小场景下准确度高,但是在大场地中会导致较大计算量和内存需求 Gmapping需要…

Go语言内存管理详解-学习笔记

1 自动内存管理 1.1 相关概念 Mutator:业务线程,分配新对象,修改对象指向关系Collector:GC线程,找到存活对象,回收死亡对象的内存空间Serial GC:只有一个collector(需要暂停&#…

读书笔记//《数据分析之道》

出版时间:2022年 作者曾在互联网大厂做数据分析。从举例可以洞见作者的工作经历。 点评:作者在数据分析领域非常资深,尝试在书中提供一个数据分析工作框架参考。书本内容有点感觉是ppt的集合,辅以案例说明。不过,干货还…