当前位置: 首页 > 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;让大模型能够探索多种可能的解决…...

小白程序员必看:收藏这份上下文工程指南,轻松玩转大模型!

本文深入浅出地介绍了上下文工程在大语言模型中的重要性&#xff0c;阐述了指令、示例、知识、记忆、工具和安全护栏等六种上下文类型。文章详细解析了上下文工程的四个基本阶段&#xff1a;撰写上下文、选择上下文、压缩上下文和隔离上下文&#xff0c;并强调了上下文窗口的作…...

OpenClaw环境隔离方案:ollama-QwQ-32B镜像与本地Python虚拟环境整合

OpenClaw环境隔离方案&#xff1a;ollama-QwQ-32B镜像与本地Python虚拟环境整合 1. 为什么需要环境隔离 上周我在尝试将OpenClaw接入本地部署的ollama-QwQ-32B模型时&#xff0c;遇到了一个棘手的问题&#xff1a;我的开发环境突然崩溃了。事后排查发现&#xff0c;是OpenCla…...

[路径保护]解决中文路径乱码:从名称错乱到Unicode支持的实践指南

[路径保护]解决中文路径乱码&#xff1a;从名称错乱到Unicode支持的实践指南 【免费下载链接】calibre-do-not-translate-my-path Switch my calibre library from ascii path to plain Unicode path. 将我的书库从拼音目录切换至非纯英文&#xff08;中文&#xff09;命名 项…...

CANOE Demo版快速下载与激活指南

1. CANOE Demo版是什么&#xff1f;为什么你需要它&#xff1f; 如果你正在学习汽车电子开发或者从事相关领域的工作&#xff0c;CANOE这个名字一定不会陌生。作为Vector公司推出的主流汽车总线开发工具&#xff0c;它几乎成了行业标准。但对于刚入门的新手来说&#xff0c;动辄…...

Vue 2 中文文档:跨越语言鸿沟的技术民主化之旅

Vue 2 中文文档&#xff1a;跨越语言鸿沟的技术民主化之旅 【免费下载链接】v2.cn.vuejs.org &#x1f1e8;&#x1f1f3; Chinese translation for v2.vuejs.org 项目地址: https://gitcode.com/gh_mirrors/v2c/v2.cn.vuejs.org 你是否曾因语言障碍而错失了优秀技术框架…...

AI赋能React开发:让快马智能助手帮你设计和优化复杂组件逻辑

AI赋能React开发&#xff1a;让快马智能助手帮你设计和优化复杂组件逻辑 最近在开发一个电商网站时&#xff0c;遇到了一个常见的需求&#xff1a;实现一个侧边栏商品筛选组件。这个组件需要包含价格区间滑块、多品牌复选框和分类下拉选择三个主要功能。刚开始觉得这个需求挺简…...

ElasticSearch查询集群及设置

Elasticsearch查询集群API示例 查看集群状态及监控 参考资料 https://www.elastic.co/guide/en/elasticsearch/reference/6.6/cluster-health.html https://www.elastic.co/guide/en/elasticsearch/reference/6.6/cluster-nodes-stats.html 查看集群状态 健康状态 curl -XGE…...

半导体放电管TSS选型避坑指南:从RS485到CAN接口的实战经验分享

半导体放电管TSS选型避坑指南&#xff1a;从RS485到CAN接口的实战经验分享 在工业通信设备的电路保护设计中&#xff0c;浪涌防护是一个不可忽视的关键环节。作为一名长期奋战在一线的硬件工程师&#xff0c;我深知半导体放电管&#xff08;TSS&#xff09;选型过程中的种种陷阱…...

轻量级PDF渲染库PdfiumAndroid:Android开发者的高效集成指南

轻量级PDF渲染库PdfiumAndroid&#xff1a;Android开发者的高效集成指南 【免费下载链接】PdfiumAndroid 项目地址: https://gitcode.com/gh_mirrors/pd/PdfiumAndroid 核心价值&#xff1a;为什么选择PdfiumAndroid&#xff1f; &#x1f4cc; 解决PDF渲染痛点&#…...

YOLO_World+SAM+GraspNet在mujoco中的抓取仿真实战:从环境搭建到代码运行

YOLO_WorldSAMGraspNet在MuJoCo中的抓取仿真实战&#xff1a;从环境搭建到代码运行 在机器人抓取仿真领域&#xff0c;结合YOLO_World、SAM&#xff08;Segment Anything Model&#xff09;和GraspNet三大前沿技术&#xff0c;能够在MuJoCo物理引擎中实现高度逼真的物体识别、分…...