Linux(二十)——SELinux 概述與狀態切換

文章目錄

  • 前言
  • 一、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)),廣泛應用…