Linux系統 SELinux 安全管理與故障排查

一、SELinux 安全上下文管理

1. SELinux 簡介

SELinux(Security-Enhanced Linux)是 Linux 內核的強制訪問控制(MAC)安全子系統,通過基于標簽的訪問控制實現細粒度權限管理,遵循最小權限原則。

SELinux 有三種工作模式:

  • Enforcing:強制執行策略,拒絕非法操作并記錄日志
  • Permissive:僅記錄違規操作,不阻止(用于調試)
  • Disabled:完全關閉 SELinux(需重啟生效)

2. 基礎操作命令

查看 SELinux 狀態

getenforce  # 查看當前模式
sestatus    # 詳細狀態信息

注意:setenforce 僅臨時生效,永久修改需編輯/etc/selinux/config文件

切換工作模式

setenforce 0  # 切換到Permissive模式
setenforce 1  # 切換到Enforcing模式

3. 安全上下文管理

查看上下文

ls -Z /var/www/html  # 查看文件/目錄的上下文
ps -Z -C httpd       # 查看進程的上下文

修改上下文

  1. chcon 命令(臨時修改):
# 設置文件類型
sudo chcon -t httpd_sys_content_t /var/www/html/index.html# 遞歸修改目錄
sudo chcon -R -t httpd_sys_content_t /var/www/html/# 參照文件上下文
sudo chcon --reference=file1 file2
  1. semanage 命令(永久修改):
# 為自定義目錄設置默認上下文
sudo semanage fcontext -a -t httpd_sys_content_t "/opt/webapps(/.*)?"
sudo restorecon -Rv /opt/webapps  # 應用更改

4. 常見 SELinux 問題解決

Web 服務器 403 錯誤

# 檢查文件上下文
ls -Z /var/www/html# 修復上下文
restorecon -Rv /var/www/html

服務無法綁定非標準端口

# 將8080端口添加到HTTP服務端口列表
semanage port -a -t http_port_t -p tcp 8080

管理 SELinux 布爾值

# 查看Apache相關布爾值
getsebool -a | grep httpd# 永久啟用HTTP訪問用戶家目錄
setsebool -P httpd_enable_homedirs=on

二、常見 Linux 系統故障排查案例

1. GRUB 引導故障

故障現象:系統啟動卡在 "GRUB>" 提示符,無法進入系統

解決步驟

  1. 在 GRUB 命令行執行以下命令臨時啟動系統:

plaintext

insmod xfs
set root=(hd0,msdos1)
linux16 /vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet
initrd16 /initramfs-3.10.0-1160.el7.x86_64.img
boot
  1. 進入系統后重建 GRUB 配置:grub2-mkconfig -o /boot/grub2/grub.cfg

2. 文件系統只讀故障

故障現象:無法創建文件,提示 "Read-only file system

解決方案

  1. 卸載分區:umount /dev/sda1
  2. 強制修復(ext 文件系統):fsck -y /dev/sda1
  3. 強制修復(xfs 文件系統):xfs_repair /dev/sda1
  4. 重新掛載:mount -a

3. OOM Killer 觸發

故障現象:關鍵進程突然被終止,系統日志出現 "Killed process"

優化方案

  • 調整進程 OOM 優先級:echo -100 > /proc/[PID]/oom_score_adj
  • 修改內存分配策略:
vm.overcommit_memory = 2
vm.overcommit_ratio = 80

4. 磁盤空間耗盡

故障現象:服務異常,df 顯示使用率 100%

快速定位與解決

  1. 查找未釋放空間的進程:lsof -n | grep deleted
  2. 定位大文件:du -xh --max-depth=1 / | sort -hr
  3. 常見清理:
    • 日志清理:journalctl --vacuum-size=100M
    • 臨時文件清理:rm -rf /tmp/*.tmp

5. SSH 登錄緩慢

故障現象:SSH 連接延遲超過 10 秒

優化配置

  1. 編輯 sshd_config:
    • 設置UseDNS no
    • 關閉GSSAPIAuthentication no
  2. 重啟 sshd 服務使配置生效

6.root密碼遺忘

在RHEL/CentOS 7及更新版本中,如果忘記root密碼,可以通過以下步驟重置(需物理/虛擬控制臺訪問權限):

方法原理

通過修改GRUB2啟動參數進入單用戶模式,繞過身份驗證直接獲取root權限

詳細操作步驟

  1. 重啟系統并中斷引導

# 當系統啟動到GRUB菜單時,快速按下方向鍵阻止自動引導
# 選擇默認內核條目(通常第一條)按 `e` 鍵進入編輯模式
  1. 修改內核參數

# 在linux16行(或linux行)末尾追加:
rd.break enforcing=0
?
# 修改后的完整行示例:
linux16 /vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/rhel-root rw rd.break enforcing=0
  1. 進入緊急模式

# 按 Ctrl+X 啟動系統,進入緊急救援模式的shell環境
# 此時文件系統掛載在/sysroot(只讀模式)
  1. 切換根目錄

chroot /sysroot
  1. 修改root密碼

# 此時已獲得完整root權限:
passwd root
# 輸入新密碼兩次(不會顯示輸入內容)
  1. 修復SELinux上下文

# 強制重新標記文件系統(重要!):
touch /.autorelabel
  1. 退出并重啟

exit
reboot

關鍵參數說明

參數作用
rd.break在內核加載初期中斷啟動流程
enforcing=0臨時禁用SELinux強制模式

注意事項

  1. 磁盤加密系統:若啟用了LUKS加密,需先解密再操作

  2. 云服務器:部分云平臺需通過VNC或救援模式操作

  3. 時間控制.autorelabel會導致首次重啟時間較長(約5-15分鐘)

  4. UEFI系統:可能需要關閉Secure Boot功能

  5. 審計日志:系統日志會記錄密碼修改操作(/var/log/audit/audit.log)


替代方案(適用于不同場景)

  1. init方法

    # 在GRUB的linux行后追加:
    init=/bin/bash
  2. systemd方法

    systemctl edit --force --full rescue.target

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/922159.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/922159.shtml
英文地址,請注明出處:http://en.pswp.cn/news/922159.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解密完全二叉樹順序存儲之堆結構

前言:各位老鐵好,在前面博客中,筆者分享了有關二叉樹的博客,在那篇博客中,筆者講到了完全二叉樹的存儲結構中有兩種存儲方式,一種是順序存儲,一種是鏈式存儲,鏈式存儲筆者已經帶各位老鐵實現過了…

通過針刺!鵬輝能源移動電源電池革新之作 Secu 系列:不燃電解液加持,充電寶安全新選擇

9月11日,鵬輝能源對外發布新一代移動電源高安全電池Secu系列。該產品通過采用不燃的電解液破解移動電源產品安全難題,直擊當下移動電源安全事故頻發的行業痛點,為移動電源行業帶來更安全、更可靠的半固態電池解決方案。數字化時代&#xff0c…

軟件定義汽車(SDV)與區域電子電氣架構(Zonal EEA)的技術革新

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

在 Docker Compose 中解決文件權限不足的問題

在使用 Docker 和 Docker Compose 構建應用時,由于容器中的文件權限不足而導致某些容器可能無法訪問宿主機上的文件,或者容器內的文件系統無法正確讀取或寫入文件。問題描述在我的項目中,我使用 Docker Compose 來啟動多個服務,并…

認知語義學對人工智能自然語言處理的深層語義分析:理論啟示與實踐路徑

摘要隨著人工智能(AI)技術的飛速發展,自然語言處理(NLP)已成為其核心驅動力之一。然而,盡管以大型語言模型(LLMs)為代表的現代NLP系統在處理語言任務上取得了前所未有的成功&#xf…

React19 中的交互操作

需要安裝的庫 antd-mobile、use-immer在App.jsx 中引入組件 Actionimport "./App.css" import Action from "./pages/action" function App() {return (<><Action></Action></>) }export default Appaction.jsx 組件import LearnI…

倉頡編程語言青少年基礎教程:數組類型

倉頡編程語言青少年基礎教程&#xff1a;數組類型 數組本質上是有序、同類型數據的集合容器&#xff0c;其核心作用是高效組織、訪問和處理批量數據&#xff0c;同時結合語言特性&#xff0c;為開發者提供簡潔、高性能的數據管理方式。例如&#xff1a; main() { let v1: …

C++微基礎藍橋杯之旅9.9-9.12

這里主要還是強制類型轉換的使用//打印字符ASCII碼值 //輸入一個除空格以外的可見字符 //輸出其ASCII值--十進制整數 #include <iostream> using namespace std;int main() {char ch;cin >> ch;//字符cout << (int)ch << endl; return 0; }//打印字符…

邏輯漏洞(上)- 突破功能限制漏洞、用戶信息泄露(邏輯漏洞入門)

漏洞介紹&#xff1a; 在網絡攻防實戰中&#xff0c;常會遇到各種前端限制&#xff0c;繞過限制的方法大多是改包或者修改前端代碼來實現的。 漏洞環境&#xff1a;docker docker-compose up -d 啟動環境后&#xff1a;訪問 http://127.0.0.1:8983/web/# 發現查詢按鈕是無法使用…

tsv文件簡介

初步了解tsv文件在很多 OCR&#xff08;光學字符識別&#xff09;項目中&#xff0c;.tsv文件是標準的訓練數據標注文件&#xff0c;主要用于存儲 “圖像路徑 - 對應文本標簽” 的映射關系&#xff0c;同時可能包含圖像尺寸、文本長度等輔助信息&#xff0c;方便模型讀取訓練數…

apache poi 導出復雜的excel表格

如何導出復雜的excel 表格 如圖表格&#xff0c;存在行和列的合并&#xff0c;邊框&#xff0c;樣式&#xff0c;顏色等。依賴<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency><groupId>org.apache.poi</groupId><arti…

下載 Eclipse Temurin 的 OpenJDK 提示 “無法訪問此網站 github.com 的響應時間過長”

打開 Eclipse Temurin 的 OpenJDK 的官網下載地址&#xff1a; https://adoptium.net/zh-CN/temurin/releases 問 deepseek&#xff1a; 國內網絡&#xff0c;打不開github.com網頁&#xff0c;提示github.com 的響應時間過長。 國內無法訪問 GitHub 或訪問緩慢&#xff0c;通…

C/C++類型轉換

C/C類型轉換 1. C類型轉換 C 語言中的類型轉換主要分為兩種&#xff1a;隱式類型轉換 (Implicit Conversion) - 由編譯器自動完成。顯式類型轉換 (Explicit Conversion) - 由程序員強制指定&#xff0c;也稱為強制類型轉換。1.2 隱式類型轉換 編譯器在編譯時自動進行的轉換&…

【Java】Windows切換Java8和Java11

現在有些項目要升級到Java17, 所以需要切換不同的java版本。 如何安裝Java8 由于已經安裝了jJava8, 之前的安裝文章&#xff1a;【Java】jdk8安裝——英文版 如何安裝Java17 Java17下載地址 https://www.oracle.com/java/technologies/downloads/#java17-windows 下載到電…

SQLite 數據庫核心知識與 C 語言編程

一、數據庫基礎概念1.1 數據庫分類根據規模和應用場景&#xff0c;數據庫可分為以下幾類&#xff1a;大型數據庫&#xff1a;Oracle&#xff08;適用于企業級高并發、大容量場景&#xff09;中型數據庫&#xff1a;MySQL、MSSQL&#xff08;適用于中小型系統、Web 應用&#xf…

Netty 調優篇:實戰配置、性能監控與常見坑

&#x1f680; Netty 調優篇&#xff1a;實戰配置、性能監控與常見坑前面我們已經深入了 Netty 的 線程模型、Pipeline、EventLoop、內存池、零拷貝和背壓機制。 但在實際工作中&#xff0c;很多人踩坑的地方不是“源碼沒看懂”&#xff0c;而是 調優沒做好。 今天我們就從三個…

Linux Node.js 安裝及環境配置詳細教程

如果您喜歡此文章&#xff0c;請收藏、點贊、評論&#xff0c;謝謝&#xff0c;祝您快樂每一天。 一、Node.js是什么 Node.js是一個基于Chrome V8引擎的[JavaScript運行環境]。 Node.js使用了一個事件驅動、非阻塞式I/O 的模型。 Node.js是一個讓JavaScript運行在服務端的開…

呼叫中心系統IVR流程設計的心理學

呼叫中心的 IVR&#xff08;交互式語音應答&#xff09;系統看似是 “機器與用戶的對話”&#xff0c;實則暗藏對用戶心理的精準把握。其設計需圍繞降低焦慮、提升效率、強化信任三大核心目標&#xff0c;背后依托認知心理學、行為心理學、情感心理學等理論支撐。一、認知負荷理…

一些開源或免費的網絡管理工具

整理開源及免費網絡管理工具推薦,涵蓋監控、配置、安全、流量分析等場景,適用于不同規模的網絡環境: ?一、網絡監控與性能分析? 1. ?Zabbix? ?特點?:企業級監控方案,支持SNMP、IPMI、JMX等多種協議,提供實時儀表盤、告警通知和自動化發現功能。 ?適用場景?:服…

谷粒商城項目-P16快速開發-人人開源搭建后臺管理系統

1.對腳手架工程進行改造 此項目選用的腳手架工程是人人開源 地址&#xff1a;人人開源 選擇的是下圖標紅的renren-fast作為后端&#xff0c;renren-fast-vue作為前端 克隆上述兩個項目 2.后端改造 2.1將renrenfast項目的git文件夾刪除后&#xff0c;拖進后端代碼文件夾中 2…