17.SELinux

SELinux

文章目录

  • SELinux
    • 1、SELinux简介
    • 2、SELinux的模式
    • 3、管理SELinux上下文
    • 4、bool开关

1、SELinux简介

为了保障linux系统的安全,除了firewalld防火墙外,linux系统管理员通常会控制用户和组的权限,这种基于用户和组的安全模型称之为主动访问控制,而SELinux提供了一个额外的系统安全层,它是基于对象的安全模型,对象可以是文件、目录或端口,这样安全模型称之为强制访问控制。
SELinux提供了一组基于进程是否可以访问文件、目录或端口的安全策略。

security enhanced linux–安全加强的linux。是由美国国家安全局开发的以及历史。selinux之前是基于自主存取控制方法DAC,只要符合权限即可,通过suid和sgid特殊权限存在有一定的安全隐患,甚至一些错误的配置就会引发巨大的漏洞,被轻易攻击。
selinux是基于强制存取控制方法MAC,应用程序或用户必须同时符合DCA既要对应selinux的MAC才能正常操作,否则遭到拒绝。

DAC和MAC的比较
DAC:自主访问控制,主体是用户,访问目标文件,由文件本身权限决定的
MAC:强制访问控制,主体是程序,访问目标文件,由文件权限和策略决定。

2、SELinux的模式

SELinux一共有三种模式,分别是Enforcing、Permissive和Disabled。

模式功能说明
enforcing强制模式,主动拒绝SELinux策略限制的访问行为,同时会对访问行为进行记录
permissive许可模式,暂时允许SELinux策略正在限制的访问行为,同时会对访问进行记录。该模式一般用于故障排除。
disabled禁用模式,完全禁用SELinux

强制模式与许可模式之间可以相互切换,无需重新启动操作系统。若将模式从强制模式或许可模式更变设置为禁用模式时,此时需要重新启动操作系统才能彻底禁用SELinux;同样,若将模式从禁用模式变更设置为强制模式或许可模式时,此时也需要重新启动操作系统才能真正变更模式设置。

命令"setenforce"命令的设置只会改变SELinux当前的模式,并不会影响操作系统启动后SELinux所处的模式。配置文件/etc/selinux/config中SELINUX参数值的修改只会影响操作系统启动后SELinux所处的模式,并不会影响SELinux当前的模式。

3、管理SELinux上下文

Linux系统中每个文件、目录和端口都具有特别的安全标签,该标签称之为SELinux上下文。SELinux安全策略就是通过SELinux上下文用来确定进程是否可以访问文件、目录或端口。

SELinux标签具有多种上下文,依照顺序依次为用户、角色、类型和敏感度。RHEL中的默认策略会根据第三个上下文,即类型值上下文来制定规则。类型值的特征非常明显,通常以"_t"结尾。如web服务器的DocumentRoot目录/var/www/html中的文件或目录的类型为"httpd_sys_content_t"。

初始SELinux上下文

  • 一般情况下,文件的初始SELinux上下文由该文件父目录的SELinux上下文决定。当在某个目录中新建文件时,父目录的SELinux上下文会分配给新建的文件。

SELinux上下文的更改

  • 文件或目录SELinux上下文的更改由"chcon"和"restorecon"这两个命令完成。
命令功能描述
chcon将文件或目录的SELinux上下文更改为指定的类型,选项”-t”用于指定上下文类型
restorecon更改文件或目录的SELinux上下文的首选方式。它使用SELinux策略中的规则来确定文件或目录默认的上下文

查看文件的context值:

ll -Z  /abc/aa

查看目录的context值:

ll -ldZ /abc/

安全上下文三部分组成:用户u、角色r和类型识别符t

chcon -t tmp_t redhat # 更改redhat的context值为tmp_trestorecon -v redhat  # 恢复redhat的context值
# 更改路径context值也会发生变化。# 永久修改context值
semanage fcontext -a -t tmp_t "/abc(/.*)?"
restorecon -RFv /abc/

标签换乱时,touch /.autorelabel 重打标签
或将selinux配置文件中改为disabled重启再改回来。

4、bool开关

getsebool -a # 查看所有bool开关
setsebool -P # 修改布尔开关

例子:
临时修改(服务器重启后,失效)

setsebool  ftpd_full_access on

永久修改:

setsebool -P ftpd_full_access on

端口标记
添加

semanage port  -a -t [端口类型] -p  【tcp/udp】  【端口号】

添加端口标签

semanage port -a -t http_port_t -p tcp 8910

查询端口标签

semanage port -a | grep 8910

修改端口标签

semanage port -m -t pegasus_http_port_t -p tcp 8910

删除端口标签

semanage port -d -t pegasus_http_port_t -p tcp 8910
e port -m -t pegasus_http_port_t -p tcp 8910

删除端口标签

semanage port -d -t pegasus_http_port_t -p tcp 8910

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

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

相关文章

m1 + swoole(hyperf) + yasd + phpstorm 安装和debug

参考文档 Mac M1安装报错 checking for boost... configure: error: lib boost not found. Try: install boost library Issue #89 swoole/yasd GitHub 1.安装boost库 brew install boostbrew link boost 2.下载yasd git clone https://github.com/swoole/yasd.git 3.编…

Golang 中哪些类型可以作为 map 类型的 key?

目录 可以作为 map 键的类型 不能作为 map 键的类型 最佳实践 小结 在 Go 语言中,map 是一种内置的关联数据结构类型,由一组无序的键值对组成,每个键都是唯一的,并与一个对应的值相关联。本文将详细介绍哪些类型的变量可以作为…

轻量化神奇!看3D模型格式转换工具HOOPS Exchange如何轻松实现减面操作?

现在很多CAD模型都比较复杂,有时候为了一些特殊用途(轻量化显示、布尔运算、CAE网格剖分等),需要到对原始模型进行减面操作。在HOOPS Exchange中,就提供了对模型进行减面操作支持,以下内容就是HOOPS Exchan…

亚信安慧AntDB数据库容灾复制原理

AntDB数据库作为通信运营商领域的杰出的数据服务提供者,一直以来都十分重视数据安全问题,不断通过技术进步、方案创新等方式提升数据容灾能力。在信息化的时代,数据已经成为了重要的资源,对于企业来说,如何存储和管理这…

15.vdo管理

vdo管理 文章目录 vdo管理一、VDO基本概念二、常用操作三、验证VDO卷 一、VDO基本概念 VDO(Virtual Data Optimize虚拟数据优化) 通过压缩或删除存储设备上的数据来优化存储空间。VDO层放置在现有块存储设备例如RAID设备或本地磁盘的顶部。这些块设备也…

docker微服务案例

文章目录 建立简单的springboot项目(boot3)boot2建立通过dockerfile发布微服务部署到docker容器编写Dockerfile打包成镜像运行镜像微服务 建立简单的springboot项目(boot3) 1.建立module 2. 改pom <?xml version"1.0" encoding"UTF-8"?> <…

python爬虫实战(7)--获取it某家热榜

1. 需要的类库 import requests from bs4 import BeautifulSoup import pandas as pd2. 请求榜单 def fetch_ranking_data():url "https://m.xxx.com/rankm/" #某家response requests.get(url)if response.status_code 200:return response.contentelse:print(f…

需要登录的网站爬虫详解

概述 介绍一下请求状态原理分析需要登录的网站请求特点分析登陆前后请求差异如何从接口分析一步步构建一个合理的登录爬虫巧方法解决登录 案例分析 案例一 https://login2.scrape.center/ 默认重定向导致无法获取到重定向前的cookie 案例二爬虫源码 # codingutf-8import …

计算机网络期末复习(二)

物理层 解决&#xff1a;如何在连接各种计算机的传输媒体上传输比特流&#xff0c;而不是具体的传输媒体。 传输媒体&#xff1a;比如双绞线、同轴电缆、光纤等等。 主要任务&#xff1a;确定于传输媒体接口有关的一些特性。 传输媒体 导向形 非导向形 调制解调器 数字信号 和…

LeetCode [103] 二叉树的锯齿形层序遍历

Description: 给你二叉树的根节点 root &#xff0c;返回其节点值的 锯齿形层序遍历 。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层与层之间交替进行&#xff09;。 解法&#xff1a;基本跟102类似&#xff0c;加了一个…

杰理AC63蓝牙名修改

杰理SDK会自动从VM区域读取蓝牙名字。代码如下&#xff0c;在user_cfg.c文件里。 //-----------------------------CFG_BT_NAME--------------------------------------//ret syscfg_read(CFG_BT_NAME, tmp, 32);if (ret < 0) {log_info("read bt name err\n");}…

CSGO服务器搭建细节

在搭建CSGO服务器之前&#xff0c;我们首先需要确保电脑上已经安装好了所需的软件环境。这里我们需要安装SteamCMD和HLDSUpdateTool工具&#xff0c;并在安装之后进行相关的配置&#xff0c;才能顺利地跑起服务器。同时&#xff0c;在准备环境的同时&#xff0c;我们还要考虑服…

C++ 具名要求-全库范围的概念 -谓词(Predicate)-二元谓词(BinaryPredicate)

此页面中列出的具名要求&#xff0c;是 C 标准的规范性文本中使用的具名要求&#xff0c;用于定义标准库的期待。 某些具名要求在 C20 中正在以概念语言特性进行形式化。在那之前&#xff0c;确保以满足这些要求的模板实参实例化标准库模板是程序员的重担。若不这么做&#xf…

贝锐蒲公英云智慧组网解读:实现工业设备远程调试、异地PLC互联

这个时候&#xff0c;使用异地组网是非常有效的解决方案。在12月28日贝锐官方的直播中&#xff0c;请到了贝锐蒲公英的技术研发经理&#xff0c;为大家分享了贝锐蒲公英云智慧组网解决方案&#xff0c;以及蒲公英二层组网相关的技术和应用。 搜索“贝锐”官方视频号&#xff0c…

XCTF:再见李华[WriteUP]

从题目中下载到图片 md5&#xff1a;1a4fb3fb5ee12307 十六位的哈希数&#xff0c;但没任何意义(只有迷惑作用) 扔进binwalk中分析有没有隐藏的文件 发现有个ZIP文件 使用foremost尝试提取 foremost mail2LiHua.jpg 提取成功 但是这个zip文件开了密码 里面的key应该就是…

【图解面试】JS系列 - 如何回答数据类型相关问题(上)

1. JS中的数据类型有哪些&#xff0c;他们的区别是什么&#xff1f; 知识点大纲 语言组织&#xff08;示例&#xff09; 要点&#xff1a;数量 → 种类 → 区别 JS中的数据类型主要有 8 种&#xff0c;分为两大类 基础数据类型 和 引用数据类型 基础数据类型中主要有 Numbe…

11Spring IoC注解式开发(下)(负责注入的注解/)

1负责注入的注解 负责注入的注解&#xff0c;常见的包括四个&#xff1a; ValueAutowiredQualifierResource 1.1 Value 当属性的类型是简单类型时&#xff0c;可以使用Value注解进行注入。Value注解可以出现在属性上、setter方法上、以及构造方法的形参上, 方便起见,一般直…

【电商API接口】jd.item_search按关键字搜索京东商品返回值和参数说明

item_search-按关键字搜索商品 [查看演示] API测试工具 注册开通 jd.item_search 公共参数 请求地址: 申请调用KEY测试 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08…

Vue学习笔记六--Vue3学习

1、Vue3的优势 2、创建Vue3工程 前提&#xff1a;node -v 查看node版本&#xff0c;需要在16.0及以上 创建命令 npm init vuelatest,先安装create-vue然后创建项目 然后执行npm run dev 提示 sh: vite: command not found,需要执行npm i重新安装依赖&#xff0c;之后再执行np…

【目标跟踪】多相机多目标跟踪

文章目录 前言一、计算思路二、代码三、结果 前言 单相机目标跟踪之前博客已经有过基本介绍&#xff0c;本篇博客主要介绍一种多相机目标跟踪的计算方法已知各相机内外参&#xff0c;如何计算共视区域像素投影&#xff1f;废话不多说&#xff0c;见下图。 同一时刻相机A与相机…