当前位置: 首页 > news >正文

SELinux 概述

SELinux 概述

概念

SELinux(Security-Enhanced Linux)是美国国家安全局在 Linux 开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。它确保服务进程仅能访问它们应有的资源。

例如,当你在使用照片软件时,软件应该仅操作图片文件,而不能监听浏览器中的密码信息。

作用

  • SELinux 域限制:对服务程序的功能进行限制,确保服务程序不能做出越权行为。
  • SELinux 安全上下文:对文件资源的访问进行限制,确保只有相关的服务进程可以访问相应的文件。

SELinux 与传统权限的区别

  • 传统权限:属于自主访问控制(DAC,Discretionary Access Control),基于用户/用户组设置的权限来控制文件的访问权限。
  • SELinux:属于强制访问控制(MAC,Mandatory Access Control),它通过策略规则来制定访问控制,进程和文件的访问权限基于安全上下文,而不完全依赖于文件的所有者或进程的用户身份。

SELinux 工作原理

关键概念

  • 主体(subject):指向访问资源(文件或目录)的进程。
  • 目标(object):指被访问的资源(文件或目录)。
  • 策略(policy):一组规则,用于定义主体访问目标的权限。
  • 安全上下文(security context):用于标识进程、文件或目录的安全属性,决定了它们是否能够互相访问。

安全上下文的结构

安全上下文通常由以下四个字段组成:

身份标识(identity): 角色(role): 类型(type): 灵敏度(sensitivity)
  • 身份标识(identity):标识进程或文件的所有者。
  • 角色(role):区分进程与文件的角色,例如 system_r 代表进程,object_r 代表文件。
  • 类型(type):用于决定进程和文件是否能互相访问,基于策略规则匹配。
  • 灵敏度(sensitivity):定义安全级别,s0, s1, s2 等,数字越大,权限越高,管控越严格。

SELinux 默认策略

  • targeted:默认策略,限制网络服务(如 dhcpd, httpd, named 等),对本机系统限制较少。
  • mls:多级安全保护策略,限制更为严格。

SELinux 工作流程

当主体(进程)访问目标(文件或目录)时:

  1. SELinux 检查主体和目标的安全上下文是否匹配。
  2. 若安全上下文匹配并且符合策略规则,允许访问。
  3. 若不匹配,访问被拒绝并生成拒绝信息。

SELinux 模式

  • enforcing:强制模式,启用 SELinux 且拦截所有非法请求。
  • permissive:宽容模式,启用 SELinux,发出警告但不拦截。
  • disabled:关闭 SELinux。

SELinux 状态与配置

查看 SELinux 状态

  • 查看当前 SELinux 模式getenforce
  • 查看详细状态sestatus
  • 查看 SELinux 配置文件/etc/selinux/config

修改 SELinux 配置文件

bash# 编辑配置文件
vim /etc/selinux/config
# 修改 SELINUX 变量
SELINUX=enforcing  # 启用 SELinux
SELINUX=disabled   # 禁用 SELinux

临时修改 SELinux 模式

bash# 临时开启
setenforce 1
# 临时关闭
setenforce 0

恢复 SELinux 默认安全上下文

  • restorecon:恢复文件的默认安全上下文
restorecon -Rv /web1  # 对目录和子目录恢复安全上下文

修改 SELinux 安全上下文

  • chcon:手动修改目标的安全上下文
chcon -v -t httpd_sys_content_t /web1  # 设置类型为 httpd_sys_content_t

查看 SELinux 端口配置

# 查看 SELinux 允许的端口
semanage port -l

semanage 命令

semanage 用于管理 SELinux 策略,添加/修改/删除文件的默认安全上下文,管理网络端口等。

常用命令:

  • 查询默认安全上下文
semanage fcontext -l | grep /etc/passwd
  • 查询允许的端口

semanage port -l | grep http

SELinux 配置示例

使用 httpd 服务的 SELinux 设置

  1. 安装 httpd
yum install httpd -y
  1. 设置默认网页目录
mkdir /web1
  1. 修改目录安全上下文
chcon -Rv -t httpd_sys_content_t /web1
  1. 修改 httpd 配置
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/web1"
<Directory "/web1">
  1. 重启 httpd 服务
systemctl restart httpd

相关文章:

SELinux 概述

SELinux 概述 概念 SELinux&#xff08;Security-Enhanced Linux&#xff09;是美国国家安全局在 Linux 开源社区的帮助下开发的一个强制访问控制&#xff08;MAC&#xff0c;Mandatory Access Control&#xff09;的安全子系统。它确保服务进程仅能访问它们应有的资源。 例…...

【十三】Golang 通道

&#x1f4a2;欢迎来到张胤尘的开源技术站 &#x1f4a5;开源如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 通道通道声明初始化缓冲机制无缓冲通道代码示例 带…...

DeepSeek专题:DeepSeek-V2核心知识点速览

AIGCmagic社区知识星球是国内首个以AIGC全栈技术与商业变现为主线的学习交流平台&#xff0c;涉及AI绘画、AI视频、大模型、AI多模态、数字人以及全行业AIGC赋能等100应用方向。星球内部包含海量学习资源、专业问答、前沿资讯、内推招聘、AI课程、AIGC模型、AIGC数据集和源码等…...

Oracle19c进入EM Express(Oracle企业管理器)详细步骤

以下是使用Oracle 19c进入Oracle Enterprise Manager Database Express&#xff08;EM Express&#xff09;的详细步骤&#xff1a; ### **步骤 1&#xff1a;确认EM Express配置状态** 1. **登录数据库服务器** 使用Oracle用户或管理员权限账户登录操作系统。 2. **查看EM…...

游戏引擎学习第140天

回顾并为今天的内容做准备 目前代码的进展到了声音混音的部分。昨天我详细解释了声音的处理方式&#xff0c;声音在技术上是一个非常特别的存在&#xff0c;但在游戏中进行声音混音的需求其实相对简单明了&#xff0c;所以今天的任务应该不会太具挑战性。 今天我们会编写一个…...

C++--迭代器(iterator)介绍---主要介绍vector和string中的迭代器

目录 一、迭代器&#xff08;iterator&#xff09;的定义 二、迭代器的类别 三、使用迭代器 3.1 迭代器运算符 3.2 迭代器的简单应用&#xff1a;使用迭代器将string对象的第一个字母改为大写 3.3 将迭代器从一个元素移动到另外一个元素 3.4 迭代器运算 3.5 迭代器的复…...

RuleOS:区块链开发的“新引擎”,点燃Web3创新之火

RuleOS&#xff1a;区块链开发的“新引擎”&#xff0c;点燃Web3创新之火 在区块链技术的浪潮中&#xff0c;RuleOS宛如一台强劲的“新引擎”&#xff0c;为个人和企业开发去中心化应用&#xff08;DApp&#xff09;注入了前所未有的动力。它以独特的设计理念和强大的功能特性&…...

机器学习之强化学习

引言 在人工智能的众多分支中&#xff0c;强化学习&#xff08;Reinforcement Learning, RL&#xff09; 因其独特的学习范式而备受关注。与依赖标注数据的监督学习或探索数据结构的无监督学习不同&#xff0c;强化学习的核心是智能体&#xff08;Agent&#xff09;通过与环境…...

基于 uni-app 和 Vue3 开发的汉字书写练习应用

基于 uni-app 和 Vue3 开发的汉字书写练习应用 前言 本文介绍了如何使用 uni-app Vue3 uview-plus 开发一个汉字书写练习应用。该应用支持笔画演示、书写练习、进度保存等功能&#xff0c;可以帮助用户学习汉字书写。 在线演示 演示地址: http://demo.xiyueta.com/case/w…...

每天五分钟深度学习PyTorch:向更深的卷积神经网络挑战的ResNet

本文重点 ResNet大名鼎鼎,它是由何恺明团队设计的,它获取了2015年ImageNet冠军,它很好的解决了当神经网络层数过多出现的难以训练的问题,它创造性的设计了跳跃连接的方式,使得卷积神经网络的层数出现了大幅度提升,设置可以达到上千层,可以说resnet对于网络模型的设计具…...

electron + vue3 + vite 主进程到渲染进程的单向通信

用示例讲解下主进程到渲染进程的单向通信 初始版本项目结构可参考项目&#xff1a;https://github.com/ylpxzx/electron-forge-project/tree/init_project 主进程到渲染进程&#xff08;单向&#xff09; 以Electron官方文档给出的”主进程主动触发动作&#xff0c;发送内容给渲…...

《白帽子讲 Web 安全》之身份认证

目录 引言 一、概述 二、密码安全性 三、认证方式 &#xff08;一&#xff09;HTTP 认证 &#xff08;二&#xff09;表单登录 &#xff08;三&#xff09;客户端证书 &#xff08;四&#xff09;一次性密码&#xff08;OTP&#xff09; &#xff08;五&#xff09;多因…...

postgrel

首先按照惯例&#xff0c;肯定是需要对PostgreSQL数据库进行一系列信息收集的&#xff0c;常用的命令有以下这些&#xff1a;-- 版本信息select version();show server_version;select pg_read_file(PG_VERSION, 0, 200);-- 数字版本信息包括小版号SHOW server_version_num;SEL…...

Java基础——java8+新特性——方法引用(::)

1. 什么是方法引用&#xff1f; 定义&#xff1a;Java 8 引入的语法糖&#xff0c;用于 简化 Lambda 表达式&#xff0c;直接引用已有的方法。 符号&#xff1a;使用 :: 双冒号操作符。 本质&#xff1a;将方法作为函数式接口的实例传。 2. 方法引用的四种类型 类型 语法 …...

基于SpringBoot的商城管理系统(源码+部署教程)

运行环境 数据库&#xff1a;MySql 编译器&#xff1a;Intellij IDEA 前端运行环境&#xff1a;node.js v12.13.0 JAVA版本&#xff1a;JDK 1.8 主要功能 基于Springboot的商城管理系统包含管理端和用户端两个部分&#xff0c;主要功能有&#xff1a; 管理端 首页商品列…...

uniapp实现的个人中心页面(仿小红书)

采用 uniapp 实现的一款仿小红书个人中心页面模板&#xff0c;支持vue2、vue3, 同时适配H5、小程序等多端多应用。 简约美观大方 可到插件市场下载尝试&#xff1a; https://ext.dcloud.net.cn/plugin?id22516 示例...

K8s面试题总结(十一)

1.如何优化docker镜像的大小&#xff1f; 使用多阶段构建&#xff08;multi-stage build&#xff09;选择更小的基础镜像&#xff08;如alpine&#xff09;减少镜像层数&#xff0c;合并RUN命令 2.请解释Docker中的网络模式&#xff08;如bridge,host,none) Bridge&#xff…...

用CMake编译glfw进行OpenGL配置,在Visual Studio上运行

Visual Studio的下载 Visual Studio 2022 C 编程环境 GLFW库安装 GLFW官网地址 GLFW官网地址&#xff1a;https://www.glfw.org下载相应版本&#xff0c;如下图&#xff1a; CMake软件进行编译安装 下载CMake 下载的如果是源码包&#xff0c;需要下载CMake软件进行编译安装…...

仿12306项目(4)

基本预定车票功能的开发 对于乘客购票来说&#xff0c;需要有每一个车次的余票信息&#xff0c;展示给乘客&#xff0c;供乘客选择&#xff0c;因此首个功能是余票的初始化&#xff0c;之后是余票查询&#xff0c;这两个都是控台端。对于会员端的购票&#xff0c;需要有余票查询…...

【GPT入门】第9课 思维树概念与原理

【GPT入门】第9课 思维树概念与原理 1.思维树概念与原理2. 算24游戏的方法 1.思维树概念与原理 思维树&#xff08;Tree of Thought&#xff0c;ToT &#xff09;是一种大模型推理框架&#xff0c;旨在解决更加复杂的多步骤推理任务&#xff0c;让大模型能够探索多种可能的解决…...

uniapp登录用户名在其他页面都能响应

使用全局变量 1、在APP.vue中定义一个全局变量&#xff0c;然后在需要的地方引用它&#xff1b; <script>export default {onLaunch: function() {console.log(App Launch)this.globalData { userInfo: {} };},onShow: function() {console.log(App Show)},onHide: fu…...

一周热点-OpenAI 推出了 GPT-4.5,这可能是其最后一个非推理模型

在人工智能领域,大型语言模型一直是研究的热点。OpenAI 的 GPT 系列模型在自然语言处理方面取得了显著成就。GPT-4.5 是 OpenAI 在这一领域的又一力作,它在多个方面进行了升级和优化。 1 新模型的出现 GPT-4.5 目前作为研究预览版发布。与 OpenAI 最近的 o1 和 o3 模型不同,…...

Linux基础--用户管理

目录 查看用户 使用命令: id 创建用户 使用命令: useradd ​编辑 为用户设置密码 使用命令: passwd ​编辑 删除用户 使用命令: userdel 创建用户组 使用命令: groupadd 删除用户组 使用命令: groupdel 用户设置 使用命令: usermod 将用户从组中去除 使用…...

软件测试的基础入门(二)

文章目录 一、软件&#xff08;开发&#xff09;的生命周期什么是生命周期软件&#xff08;开发&#xff09;的生命周期需求分析计划设计编码测试运行维护 二、常见的开发模型瀑布模型流程优点缺点适应的场景 螺旋模型流程优点缺点适应的场景 增量模型和迭代模型流程适应的场景…...

【SpringMVC】深入解析@ RequestMapping 注解的概念及使用和 MVC 介绍

Spring Web MVC入门 1. Spring Web MVC 什么是 Spring Web MVC&#xff1f; MVC官方文档介绍 Spring Web MVC是Spring框架中的一个用来做网站开发的部分&#xff0c;它是基于Servlet技术的。 虽然它的正式名字叫“Spring Web MVC”&#xff0c;但大家一般都简称它“SpringMVC”…...

YOLOv8 自定义目标检测

一、引言 YOLOv8 不仅支持预训练模型的推理&#xff0c;还允许用户将其应用于自定义对象检测。本文将详细介绍如何使用 YOLOv8 训练一个新的模型&#xff0c;并在自定义数据集上进行对象检测。 二、数据集准备 1. 数据集格式 YOLOv8 支持多种数据集格式&#xff0c;包括 CO…...

抓包分析工具介绍

什么是抓包分析工具&#xff1f; 抓包分析工具&#xff0c;也称为网络数据包嗅探器或协议分析器&#xff0c;用于捕获和检查网络上传输的数据包。这些数据包包含了网络通信的详细信息&#xff0c;例如请求的资源、服务器的响应、HTTP 头信息、传输的数据内容等等。通过分析这些…...

计算机毕业设计SpringBoot+Vue.js爱心捐赠项目推荐系统 慈善大数据(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

Python----数据分析(Matplotlib四:Figure的用法,创建Figure对象,常用的Figure对象的方法)

一、Figure的用法 在 Matplotlib 中&#xff0c; Figure对象是整个绘图的顶级容器&#xff0c;它是所有绘图元素的基础&#xff0c; 提供了一个用于绘制图形的画布空间。 在 Matplotlib 中&#xff0c; Axes对象是进行数据绘制和设置坐标轴等操作的核心区域&#xff0c;它与 Fi…...

CameraX学习2-关于录像、慢动作录像

CameraX实现录像 首先在起预览时就要配置录像usecase&#xff0c;对于cameraX来说就是绑定录像usecase到lifecycle。如下。 1&#xff0c;创建Recorder对象&#xff0c;是与 VideoCapture 紧密耦合的 VideoOutput 实现。Recorder可以用来配置录像的分辨率、比例等&#xff0c;还…...