文章目录

  • 前言
  • 一、SELinux 概述
    • 1.1 SELinux 简介
    • 1.2 SELinux 特点
      • 1.2.1 MAC(Mandatory Access Control)
      • 1.2.2 RBAC(Role-Based Access Control)
      • 1.2.3 TE(Type Enforcement)
    • 1.3 SELinux 的执行模式
    • 1.4 SELinux 工作原理
  • 二、SELinux 状态切换
  • 总结

前言

SELinux(Security-Enhanced Linux)是一种由美国国家安全局(NSA)开发的安全增强系统,集成于 Linux 内核中,旨在提供更强大的访问控制机制,显著提升系统的安全性。本文将对 SELinux 的基本概念、特点、执行模式及其状态切换方法进行系统梳理和介绍,帮助读者更好地理解和使用 SELinux。


一、SELinux 概述

1.1 SELinux 简介

SELinux(Security-Enhanced Linux)是由美国国家安全局(NSA)开发的内核级安全模块,采用灵活的强制访问控制机制,能够显著提升Linux系统的安全性。该系统提供强大的安全防护能力,可有效抵御未知威胁,其安全等级达到军事级B1标准(信息安全评估体系)。

信息安全评估标准共分为 4 类(D,C,B,A),7 个级别:D,C1,C2,B1,B2,B3,A。SELinux 已经整合到 2.6 及以上版本的 Kernel 中,可通过 uname -r 命令查看内核版本。

在这里插入图片描述

在没有 SELinux 保护的传统 Linux 系统中,若服务器被骇客攻陷,最高权限可能随之丧失。而有了 SELinux 的保护,即使服务被入侵,也仅限于该服务本身,整个服务器的最高权限仍然得以保持。

一句话概括 SELinux 的作用:增强 Linux 系统安全性。例如,若 Apache 服务器被入侵,仅会影响到 httpd 服务,系统整体权限仍保持正常。

1.2 SELinux 特点

1.2.1 MAC(Mandatory Access Control)

全面强化访问控制机制,对所有文件、目录和端口的访问权限实施策略化管理。这些访问策略由系统管理员统一配置,普通用户不具备修改权限。

1.2.2 RBAC(Role-Based Access Control)

对用户只赋予最小权限,将用户划分为不同角色(role)。即使拥有 root 权限,若未分配至 sysadm_r 角色,也无法执行 sysadm_t 相关的管理操作。

1.2.3 TE(Type Enforcement)

对进程只赋予最小运行权限。在 SELinux 安全机制中,类型强制(TE)机制发挥着关键作用,其实现方式是通过为文件分配type类型标签,同时为进程分配domain域标签。这种设计确保了特定域标签的进程只能访问与其匹配的文件资源类型,例如:

  • 当进程 vim 被限制只能读取 T1 标签的文件时:
    • a.txt 具有 T1 标签 → 可访问
    • b.txt 具有 T2 标签 → 不可访问

1.3 SELinux 的执行模式

SELinux 有以下三种执行模式:

  • enforcing:强制模式,只要 SELinux 不允许,操作就无法执行。
  • permissive:警告模式,操作可以执行,但所有事件都会被记录。
  • disabled:关闭 SELinux。

1.4 SELinux 工作原理

当进程(Subject)尝试执行操作时,需经过 SELinux 的检查。SELinux 会查询其策略数据库,根据规则判断是否允许执行该操作。

可通过以下命令查看 SELinux 相关软件包(默认已安装):

rpm -qa | grep selinux

在这里插入图片描述

配置文件位于 /etc/sysconfig/selinux。可通过 getenforce 命令查看当前 SELinux 的运行状态。

getenforce

在这里插入图片描述

启用 SELinux 需编辑配置文件 /etc/sysconfig/selinux,设置:

SELINUX=enforcing

初次启用 SELinux 后需重启系统,并更新文件标签,该过程可能耗时较长。


二、SELinux 状态切换

可通过以下命令在 enforcing 和 permissive 模式之间切换:

setenforce 0  # 从 enforcing 切换为 permissive
getenforce    # 查看当前状态
setenforce 1  # 从 permissive 切换为 enforcing
getenforce    # 查看当前状态

注意:从 disabled 状态启用 SELinux 需修改配置文件并重启系统。


总结

SELinux通过不同的执行模式来控制系统资源的访问权限。三种核心模式决定是否阻止违规行为和是否警告,并且是否记录在行为日志中。

  • enforcing:阻止违规行为
  • permissive:警告,并且是否记录在行为日志中
  • disabled:关闭

SELinux 作为强制访问控制机制,显著提升了 Linux 系统的安全性。它通过 MAC、RBAC 和 TE 等多种机制,严格限制进程和用户的权限范围,有效防范权限扩散和未知威胁。理解 SELinux 的核心概念、运行模式及状态切换方法,是系统管理员必备的专业技能,也是构建安全稳定的 Linux 系统环境的重要基础。

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

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

相关文章

Linux学习-TCP网络协议(补充)

一、TCP 头部标志位 TCP 头部包含多种标志位,用于控制连接建立、数据传输、连接断开等过程,核心标志位及作用如下:标志位英文全称作用SYNSynchronize Sequence Numbers请求建立连接,三次握手第一步发送 SYN 包ACKAcknowledgment响…

Go编写的轻量文件监控器. 可以监控终端上指定文件夹内的变化, 阻止删除,修改,新增操作. 可以用于AWD比赛或者终端应急响应

工具介绍 0RAYS-AWD-Filechecker一个用Golang编写的, 轻量级的文件监控器, 会监控指定文件夹内文件删除, 修改, 新增操作, 然后立刻告警并复原. 一开始是为AWD比赛写的, 主要是为了防止靶机的web目录被上马. 但也可以用到蓝队等场景上. 由于使用的Linux的系统调用, 仅支持Linux…

【6】MySQL 数据库基础操作

MySQL 数据库基础操作数据库操作查看数据库创建数据库删除数据库修改数据库数据表操作创建表修改表删除表数据库操作 查看数据库 查看有哪些数据库? 示例: [rootlocalhost][(none)]> show databases; -------------------- | Database |…

Android 探索APP/应用启动模式、Intent的Flag启动标志位

写在前面:Android APP有四种启动模式——》标准模式(Standard)、栈顶复用模式(SingleTop)、栈内复用模式(SingleTask)、单例模式(SingleInstance),默认就是标准模式。启动模式决定了Activity在任务栈内的存在方式,影响了Back返回键Activity返…

Y9000P部署开源模型

环境信息: 设备:Y9000P GPU:RTX 3060 6G 系统版本:Ubuntu 24.04 一、下载模型 1、环境准备 1、安装工具 apt-get -y install git-lfs git lfs install apt-get install python3 python-is-python3 pip3.12 config set global.inde…

大模型入门实战 | 基于 YOLO 数据集微调 Qwen2.5-VL-3B-Instruct 的目标检测任务

大模型入门实战 | 基于 YOLO 数据集微调 Qwen2.5-VL-3B-Instruct 的目标检测任务这篇就是新手向的“保姆级”实操文。你将把 YOLO 检测数据 转成 对话式 Grounding 数据,用 ms-swift 做 LoRA 微调,再用脚本 推理 可视化。 但值得注意的是,一…

基于Python+MySQL实现物联网引论课程一个火警报警及应急处理系统

物联网引论课程大作业设计报告一、选题、内容及功能说明我们大作业选择的是题目三:一个火警报警及应急处理系统。主要需要实现四个功能:感知环境温度,当环境温度超过阈值,自动触发报警:终端 led 以固定频率闪烁&#x…

基于印染数据的可视化系统设计与实现

标题:基于印染数据的可视化系统设计与实现内容:1.摘要 随着印染行业的快速发展,印染数据呈现爆发式增长。为了更好地管理和分析这些数据,提高印染生产的效率和质量,本研究旨在设计并实现一个基于印染数据的可视化系统。通过收集印染生产过程中…

实验1 第一个微信小程序

实验1 第一个微信小程序一、实验目标二、实验步骤1. 自动生成小程序2. 手动创建小程序三、程序运行结果四、问题总结与体会chunk的博客地址一、实验目标 1、学习使用快速启动模板创建小程序的方法; 2、学习不使用模板手动创建小程序的方法。 二、实验步骤 1. 自…

(计算机网络)JWT三部分及 Signature 作用

JWT(JSON Web Token)是一种用于 无状态认证 的轻量级令牌,广泛用于分布式系统、单页应用(SPA)和移动端登录。JWT 结构概览JWT 由 三部分组成,用 . 分隔:xxxxx.yyyyy.zzzzz Header(头…

LangGraph

LangGraph 是由 LangChain 团队开发的开源框架,专为构建​​复杂、有状态、多主体(Multi-Agent)的 LLM 应用​​而设计。它通过​​图结构(Graph)​​ 组织工作流,支持循环逻辑、动态分支、状态持久化和人工…

STM32物联网项目---ESP8266微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制---MQTT篇(三)

一、前言本篇文章通过发送AT指令,与云平台建立通讯:1.创建云平台2.烧录AT固件3.MQTT订阅(本篇)4.单片机代码编写5.微信小程序(下载微信开发者工具即可使用)二、AT指令集介绍AT指令是一种文本序列&#xff0…

Apache Ozone 2.0.0集群部署

单机部署参考:Apache Ozone 介绍与部署使用(最新版2.0.0)-CSDN博客 安装部署 官方参考:Documentation for Apache Ozone 准备环境 环境准备参考:Linux环境下Hadoop3.4.0集群部署-CSDN博客 1->4-b 参考:Apache Ozone 介绍与部…

【计算机网络 | 第9篇】信道的极限容量

文章目录探秘信道的极限容量:从奈氏准则到香农定理一、信道极限容量的基本概念🤔二、奈氏准则:无噪声情况下的码元速率限制🐦‍🔥(一)带宽与信号传输的关系(二)码间串扰问…

深入理解Linux iptables防火墙:从核心概念到实战应用

一、概述:什么是iptables? 在Linux系统中,网络安全防护的核心工具之一便是iptables。它绝非一个简单的命令,而是一个功能强大的用户态工具,与Linux内核中的netfilter框架协同工作,共同构建了Linux的防火墙体…

WebRTC音频QoS方法一.1(NetEQ之音频网络延时DelayManager计算补充)

一、整体简介 NetEQ计算的网络延时,直接影响变速算法的决策。在变速算法里面启动关键的作用。 网络延时计算需要考虑两种情况: 1、单纯抖动的网络延时计算,在UnderrunOptimizer类中实现; 2、在丢包乱序场景下的网络延时计算。…

实时操作系统FreeRTOS移植到STM32VGT6

一、前言 下载平台:STM32F407VGT6 代码使用平台:VSCode 编译器:arm-none-aebi-gcc 程序下载工具:STlink 批处理工具:make 移植的FreeRTOS版本:V11.2.0 其实此方法并不局限在arm-none-aebi-gcc中,此方法对于Keil5也是可以使用的, 只不过复制的一些文件不同…

从线到机:AI 与多模态交互如何重塑 B 端与 App 界面设计

当下,界面设计已经不再是单纯的“画屏幕”。AI 的快速发展让我们不得不重新审视:交互和视觉究竟会走向什么样的未来?无论是移动端 App,还是复杂的 B 端产品,设计的核心都在于让界面更懂用户。本文尝试从三个角度切入&a…

【智能化解决方案】大模型智能推荐选型系统方案设计

大模型智能推荐选型系统方案设计0 背景1 问题分析与定义2 模型假设与简化3 核心模型构建3.1 决策变量与参数定义3.2 目标函数3.3 约束条件4 模型求解与验证4.1 求解策略4.2 验证方法4.3 模型迭代优化5 方案实施与系统设计5.1 系统架构设计5.2 工作流程5.3 关键算法实现5.4 时序…

【Java基础】HashMap、HashTable与HashSet:区别、联系与实践指南

Java中HashMap、HashTable与HashSet的深度解析:区别、联系与实践指南 引言 在Java集合框架中,HashMap、HashTable与HashSet是最常用的哈希型数据结构。它们因高效的查找、插入与删除性能(平均时间复杂度O(1)),广泛应用…