安全強化的Linux

SElinux簡介

????????SELinux是security-Enhanced Linux的縮寫,意思是安全強化的linux

????????SELinux主要由美國國家安全局(NSA)開發,當初開發的目的是為了避免資源的誤用。傳統的訪問控制在我們開啟權限后,系統進程可以直接訪問

? ? ? ? ? ? ?當我們對權限設置不嚴謹時,這種訪問方式就是系統的安全漏洞

在開啟SElinux后

? ? ? ? ? ? ?會對進程本身部署安全上下文

? ? ? ? ? ? ?會對文件部署安全上下文

? ? ? ? ? ? ?會對服務使用端口進行限制

? ? ? ? ? ? ?會對程序本身的不安全功能做限制

selinux的工作原理

SElinux的工作方式

SELinux是通過MAC的方式來控制管理進程,它控制的主體是進程,而目標則是該進程能否讀取的文件資源

????????主體(subject):就是進程

????????目標(object):被主體訪問的資源,可以是文件、目錄、端口等。

????????策略(policy):由于進程與文件數量龐大,因此SELinux會依據某些服務來制定基本的訪問安全策略

? ? ? ? ? ? ? ?otargeted:針對網絡服務限制較多,針對本機限制較少,是默認的策略;ostrict:完整的SELinux限制,限制方面較為嚴格。

SELinux的安全上下文

安全上下文(securitycontext):

????????主體能不能訪問目標除策略指定外,主體與目標的安全上下文必須一致才能夠順利訪問。

????????最終文件的成功訪問還是與文件系統的rwx權限設置有關

安全上下文的查看

# ls -Z

進程安全上下文查看

# ps axZ | grep vsftpd

安全上下文用冒號分為四個字段:ldentify:role:type:

????????身份標識(Identify):相當于賬號方面的身份標識,主要有以下三種常見的類型:root:表示root的賬號身份;

????????????????systemU:表示程序方面的標識,通常就是進程;

????????????????unconfinedu:代表的是一般用戶賬號相關的身份。

????????角色(role):通過角色字段,可知這個數據是屬于程序、文件資源還是代表用戶。

????????????????一般角色有:objectr:代表的是文件或目錄等文件資源; ???systemr:代表的是進程。

????????類型(type):在默認的targeted策略中,ldentify與role字段基本上是不重要的,重要的在于這個類型字段。而類型字段在文件與進程的定義不太相同。

????????????????分別是:type:在文件資源上面稱為類型。???domain:在主體程序中則稱為域

????????odomain需要與type搭配,則該程序才能夠順利讀取文件資源。

????????代表靈敏度,一般用SO、S1、S2來命名,數字代表靈敏度的分級。數值越大、靈敏度越高

對于SElinux的管理及優化

SElinux的工作模式SElinux有三種工作模式:

????????oenforcing:強制模式,開始限制domain/type.

????????opermissive:寬容模式,僅會有警告信息并不會實際限制domain/type的訪問。

????????odisabled:關閉,SELinux并沒有實際運行。

對于SElinux狀態管理查看SElinux當前狀態查看

# setsebool -P ftpd_full_access off

# getenforce ?????????【查看工作模式,1 ??Enforcing強制模式,0 ??Permissive警告模式】

臨時更改SElinux的工作模式

# setenforce 0/1) ????【0表示警告模式(警告但可運行),1表示強制模式(不可運行)】

永久更改SElinux狀態

在RHEL9之前的版本中通過文件來永久更改SElinux的狀態

# viM/etc/se1inux/config

在RHEL9中需要通過修改內核啟動參數來永久更改SElinux的狀態

# grubby --update-kernel ALL --args selinux=1????—開

# grubby --update-kernel ALL --args selinux=0????—關

如何開啟selinux

# grubby --update-kernel ALL --args selinux=1

# reboot

管理文件的安全上下文

# dnf install nginx -y ??????????????????????【下載】

# systemctl enable --now nginx??????????????【開火墻】

# systemctl disable --now firewalld

# cd /usr/share/nginx/html/

# rm -fr index.html

# echo /mnt/index.html > /mnt/index.html ??????【輸入內容】

# mv /mnt/index.html /usr/share/nginx/html/index.html?????【移動文件】

# ls -Z /usr/share/nginx/html/ ??運行結果:

臨時更改文件的安全上下文

chcon ?[-R] ?[-t type] ?[-u user]??[-r role] ?文件

????????-R:連同該目錄下的子目錄也同時修改

????????-t:后面接安全上下文的類型字段

# chcon -Rt httpd_sys_content_t index.html

# ls -Z /usr/share/nginx/html/ ??運行結果:

????????-U:后面接身份識別

????????-r:后面接角色

永久修改安全上下文

semanager fcontext ?[-a|-d] ?[-t type] ?[-s user]??[-r range] ?文件

????????-l:列出所有記錄

????????-a:添加記錄

????????-t:添加的類型

# semanage fcontext ?-a -t httpd_sys_content_t '/lee(/.*)?' ???【添加文件】

# semanage fcontext -l | grep /lee ??????【查看安全上下文】

# restorecon -RvvF /lee/?????????????????【刷新安全上下文】

# ls -Zd /lee?查看結果:

????????-M:修改記錄

????????-d:刪除記錄

????????-P:指定添加的端口是tcp或udp協議的,port子命令下使用

????????-e:目標路徑參考原路徑的上下文類型,fcontext子命令下使用

????????-S:后面接身份識別

????????-r:后面接角色

服務的端口影響

在系統SElinux開啟后會規定服務使用端口

查看服務被允許使用的端口

# semanage port -l | grep ssh

根據需求更改被允許使用的端口

# semanage port -a -t ssh_port_t -p tcp 6666????????【更改端口】

# semanage port -l | grep ssh

selinux對linux服務的影響

服務的功能影響

在系統SElinux開啟后會為服務添加新的功能開關,我們把這個開關叫做sebool

臨時修改bool值

# getsebool ?-a | grep http ???????????【查看sebool值】

# setsebool ?httpd_anon_write 1????????????【修改sebool值】

# getsebool ?-a | grep http ??查看結果:

重啟# reboot后查看結果:

永久修改

# setsebool -P httpd_anon_write off

查看結果:

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

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

相關文章

機器學習第十六講:K-means → 自動把超市顧客分成不同消費群體

機器學習第十六講:K-means → 自動把超市顧客分成不同消費群體 資料取自《零基礎學機器學習》。 查看總目錄:學習大綱 關于DeepSeek本地部署指南可以看下我之前寫的文章:DeepSeek R1本地與線上滿血版部署:超詳細手把手指南 K-me…

spring中yml配置上下文與tomcat等外部容器不一致問題

結論:外部優先級大于內部 在 application.yml 中配置了: server:port: 8080servlet:context-path: /demo這表示你的 Spring Boot 應用的上下文路徑(context-path)是 /demo,即訪問你的服務時,URL 必須以 /d…

論文研讀——《AnomalyGPT:使用大型視覺語言模型檢測工業異常》

這篇論文提出了 AnomalyGPT,一個基于大型視覺語言模型的工業異常檢測框架,首次將通用多模態對話能力引入工業視覺場景,通過引入圖像解碼器增強像素級感知,設計 Prompt 學習器實現任務自適應控制,并利用合成異常樣本解決…

供應鏈安全檢測系列技術規范介紹之一|軟件成分分析

軟件成分分析的概念及意義 軟件成分分析Software Compostition Analysis(SCA)是一種用于管理開源組件應用安全的方法。軟件成分分析系統可以快速跟蹤和分析應用軟件的開源組件,發現相關組件、支持庫以及它們之間直接和間接依賴關系&#xff0…

conda更換清華源

1、概覽 anaconda更換速度更快、更穩定的下載源,在linux環境測試通過。 2、conda源查看 在修改之前可以查看下現有conda源是什么,查看conda配置信息,如下: cat ~/.condarc 可以看到你的conda源,以我的conda源舉例&am…

Docker配置容器開機自啟或服務重啟后自啟

要將一個 Docker 容器設置為開機自啟,你可以使用 docker update 命令或配置 Docker 服務來實現。以下是兩種常見的方法: 方法 1:使用 docker update 設置容器自動重啟 使用 docker update 設置容器為開機自啟 你可以使用以下命令&#xff0c…

Flink 的水印機制

Apache Flink 的 水印機制(Watermark Mechanism) 主要用于解決 事件時間流中的亂序問題(Out-of-Order Events),確保窗口(Window)能夠在合適的時間觸發計算,從而提供準確、一致的處理…

【每天一個知識點】embedding與representation

“Embedding(嵌入)”與“Representation(表示)”在機器學習、自然語言處理(NLP)、圖神經網絡等領域常被使用,它們密切相關,但語義上有一定區別。 一、定義 1. Representation&#…

SpringBoot(二)--- SpringBoot基礎(http協議、分層解耦)

目錄 前言 一、SpringBoot入門 1.入門程序 2.解析 二、HTTP協議 1.HTTP概述 2.HTTP請求協議 2.1 GET方式的請求協議 2.2 POST方式的請求協議 2.3 兩者的區別 2.4 獲取請求數據 3.HTTP響應協議 三、分層解耦 1.三層架構 2.IOC&DI 2.1 入門 2.2 IOC詳解 2.…

Please install it with pip install onnxruntime

無論怎么安裝都是 Please install it with pip install onnxruntime 我python 版本是3.11 ,我換成3.10 解決了

【數據結構入門訓練DAY-35】棋盤問題

本次訓練聚焦于使用深度優先搜索(DFS)算法解決棋盤上的棋子擺放問題。題目要求在一個可能不規則的nn棋盤上擺放k個棋子,且任意兩個棋子不能位于同一行或同一列。輸入包括棋盤大小n和棋子數k,以及棋盤的形狀(用#表示可放…

【日常筆記】wps如何將值轉換成東西南北等風向漢字

在WPS表格中,若要將數值(如角度值)轉換成“東、南、西、北”等風向漢字,可通過以下步驟結合自定義函數或條件判斷實現: 一、wps如何將值轉換 方法一:使用LOOKUP函數(簡化公式)&…

Web性能優化的未來:邊緣計算、AI與新型渲染架構

一、邊緣計算與性能優化深度整合 1.1 邊緣節點計算卸載策略 ? 智能任務分割:將非關鍵路徑計算卸載到邊緣節點 // 客戶端代碼 const edgeTask = new EdgeTask(image-processing); edgeTask.postMessage(imageData, {transfer

spring中的EnvironmentPostProcessor接口詳解

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站 EnvironmentPostProcessor 是 Spring Boot 提供的一個關鍵擴展接口,允許開發者在 Spring 應用環境初始化后、應用上下文創建前&…

Vue3知識點梳理

注:純手打,如有錯誤歡迎評論區交流! 轉載請注明出處:https://blog.csdn.net/testleaf/article/details/148056625 編寫此文是為了更好地學習前端知識,如果損害了有關人的利益,請聯系刪除! 本文章…

C++23 新增的查找算法詳解:ranges::find_last 系列函數

文章目錄 引言C Ranges 庫簡介ranges::find_last、ranges::find_last_if 和 ranges::find_last_if_not 概述ranges::find_last示例代碼代碼解釋 ranges::find_last_if函數簽名參數解釋示例代碼代碼解釋 ranges::find_last_if_not示例代碼代碼解釋 使用場景總結 引言 在 C 的發…

DW_DMAC簡介

基本概念: DMA:全稱direct memory access,即直接存儲器訪問。dma可以在中央處理器CPU不參與的情況下,實現外設和內存之間的數據直接傳輸,從而提高數據傳輸效率 外設與計算機內存之間的數據傳輸,一般可通過…

信號量基礎入門:并發控制的核心概念

問題的復雜性產生的根本原因在于,如 2.2 節所述,共享變量的訪問始終是“單向信息流”。也就是說,一個進程可以分配新值或檢查當前值,但這種檢查不會為其他進程留下任何痕跡。結果是,當一個進程想要對共享變量的當前值作…

(十九)Java集合框架深度解析:從基礎到高級應用

一、集合框架概述 1.1 什么是集合框架 Java集合框架(Java Collections Framework, JCF)是Java語言中用于表示和操作集合的一套標準化體系結構。它提供了一組接口、實現類和算法,用于存儲和操作對象組,解決了數組在存儲對象時的諸多限制。 集合框架的主…

Blender cycles烘焙貼圖筆記

下載了一些槍模型,一個模型有七八個材質,一個扳機、準星還有單獨的材質,用的貼圖只有一小部分有內容,對Draw Call非常不友好。不得不學一下怎么用Blender減材質。 找到了這個視頻如何在Blender中將多種材料多張貼圖烘焙成一張貼圖…