selinux firewalld

一、selinux

1.說明

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

SELinux 主要由美國國家安全局(NSA)開發,當初開發的目的是為了避免資源的誤用

DAC(Discretionary Access Control)自主訪問控制系統
MAC(Mandatory Access Control)強制訪問控制系統

2.工作原理

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

主體(subject):就是進程;
目標(object):被主體訪問的資源,可以是文件、目錄、端口等;

策略(policy):由于進程與文件數量龐大,因此 SELinux 會依據某些服務來制定基本的訪問安全策略。這些策略內還會有詳細的規則(rule)來指定不同的服務開放某些資源的訪問與否。目前主要的策略有:

  • targeted:針對網絡服務限制較多,針對本機限制較少,是默認的策略;

  • strict:完整的 SELinux 限制,限制方面較為嚴格;

安全上下文(security context):主體能不能訪問目標除了策略指定外,主體與目標的安全上下文必須一致才能夠順利訪問。 最終文件的成功訪問還是與文件系統的 rwx 權限設置有關 

大部分網絡服務程序的進程訪問目標對象(目錄、文件、端口)進行標簽匹配。如果目標對象使用戶自定義的必須要更改標簽

查看文件的安全上下文:

[root@localhost ~]# ls -Z

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

① unconfined_u    ② object_r    ③ admin_home_t    ④ s0

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

root:表示root的賬號身份;

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

unconfined_u:代表的是一般用戶賬號相關的身份;

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

object_r:代表的是文件或目錄等文件資源;

system_r:代表的是進程;

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

type:在文件資源上面稱為類型;

domain:在主體程序中則稱為域;xxxx_xxx_xxx_t

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

④ 最后一個字段是和MLS和MCS相關的東西,代表靈敏度,一般用s0、s1、s2來命名,數字代表靈敏度的分級。數值越大、靈敏度越高

s0:不開啟級別控制;

s1:開啟級別并嚴格執行;

s2:相對 s1 而言較為寬松,不是很嚴格

3.啟動、關閉與查看

① selinux 的三種模式:

enforcing:強制模式,代表SELinux正在運行中,開始限制 domain/type;
permissive:寬容模式,代表 SELinux 正在運行中,不過僅會有警告信息并不會實際限制 domain/type 的訪問;
disabled:關閉,SELinux 并沒有實際運行
①
# 查看目前的selinux模式
[root@localhost ~]# getenforce 
Enforcing   # 強制模式②
# 查看目前selinux使用的策略
[root@localhost ~]# sestatus
SELinux status:                 enabled           # SELinux已加載并運行,若為disabled,則完全關閉
SELinuxfs mount:                /sys/fs/selinux   # SELinux的虛擬文件系統掛載點
SELinux root directory:         /etc/selinux      # SELinux主配置目錄
Loaded policy name:             targeted          # 當前加載的策略名稱
Current mode:                   enforcing         # 當前運行模式
Mode from config file:          enforcing         # 配置文件中設置的模式
Policy MLS status:              enabled           # 是否啟用多級安全(Multi-Level Security)
Policy deny_unknown status:     allowed           # 未知類型的操作默認處理方式
Memory protection checking:     actual (secure)   # 內存保護檢查級別
Max kernel policy version:      33                # 內核支持的最高策略版本③
# 查看selinux的策略
[root@localhost ~]# vim /etc/selinux/config
SELINUX=enforcing   # 沒有啟動selinux模塊再次啟動selinux模塊時,系統每個文件都會設置selinux標簽
SELINUXTYPE=targeted改變策略之后需要重新啟動;如果由enforcing或permissive改成disabled,或由disabled改為其它兩個,也必須要重新啟動;將selinux模式在enforcing和permissive之間切換的方法為:setenforce 0 轉換成permissive寬容模式setenforce 1轉換成enforcing強制模式

② 實驗一:使用 httpd 服務演示安全上下文值的設定

臨時生效 (chcon = change context)chcon [-R] [-t type] [-u user] [-r role] 文件
-R:連同該目錄下的子目錄也同時修改;
-t:后面接安全上下文的類型字段;
-u:后面接身份識別;
-r:后面接角色
chcon [-R] --reference=范例文件 文件 將文件的安全上下文按照范例文件修改
# 原index.html安全上下文
[root@localhost ~]# ll -Z /www/index.html 
-rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 12  5月 26 16:19 /www/index.html# 經過代碼更改:
[root@localhost ~]# ll -Z /usr/share/nginx/html/index.html 
lrwxrwxrwx. 1 root root system_u:object_r:httpd_sys_content_t:s0 25  7月 16  20sr/share/nginx/html/index.html -> ../../testpage/index.html[root@localhost ~]# chcon -t httpd_sys_content_t /www/ -R  # 修改后index.html安全上下文
[root@localhost ~]# ll -Z /www/index.html 
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 12  5月 269 /www/index.html# chcon [-R] --reference=范例文件 文件 將文件的安全上下文按照范例文件修改
[root@localhost ~]# chcon --reference /usr/share/nginx/html/ /test[root@localhost ~]# ll -Zd /test
drwxr-xr-x. 2 root root system_u:object_r:httpd_sys_content_t:s0 6  5月 26 17:00 /test

③ 重置指定文件或目錄的安全上下文

restorecon [-Rv] 文件或目錄
-R:連同子目錄一起修改;
-v:將過程顯示到屏幕上
restorecon怎么會知道每個目錄記載的默認selinux type類型呢?因為系統將每個目錄的默認selinux type類型記錄在/etc/selinux/targeted/contexts/目錄內。但是該目錄內有很多不同的數據,所以我們可以用semanage這個命令的功能來查詢與修改。
semanage {login|user|port|interface|fcontext|translation} -l    # 永久更改
semanage fcontext -{a|d|m} [-frst] file_spec
-l為查詢;
-a:增加一些目錄的默認安全上下文的設置;
-m:修改;
-d:刪除;
-t:類型

restorecon  [-Rv]  文件或目錄

# 原index.html安全上下文
[root@localhost ~]# ll -Z /www 
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 12  5月 269 /www# 經過代碼更改:
[root@localhost ~]# restorecon /www # 修改后index.html安全上下文
[root@localhost ~]# ll -Zd /www
drwxr-xr-x. 3 root root unconfined_u:object_r:default_t:s0 33  5月 26 16:33 /www

semanage {login|user|port|interface|fcontext|translation} -l    # 永久更改

# 為SELinux添加一條持久化的文件上下文規則,確保/www目錄及其內容被標記為httpd可訪問的內容
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /www# 標簽未立刻改變是因為只是基于內核層做了更改,屬性依舊是原來的default
[root@localhost ~]# ll -Zd /www
drwxr-xr-x. 3 root root unconfined_u:object_r:default_t:s0 33  5月 26 16:33 /www# 進行回滾操作加載內核層信息
[root@localhost ~]# restorecon /www   # 標簽永久生效
[root@localhost ~]# ll -Zd /www
drwxr-xr-x. 3 root root unconfined_u:object_r:httpd_sys_content_t:s0 33  5月 26 16:33 /www

semanage  fcontext  -{a|d|m}  [-frst]  file_spec(更改端口標簽)

[root@localhost ~]# semanage port -l | grep -w 80    # 查看80端口的SELinux規則
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 900[root@localhost ~]# semanage port -a -t http_port_t -p tcp 8909    # 添加新的HTTP端口規則[root@localhost ~]# semanage port -l | grep -w 80
http_port_t                    tcp      8909, 80, 81, 443, 488, 8008, 8009, 84400

總結:

selinux 訪問控制
1.服務配置時如果對服務程序的數據文件自定義路徑時,selinux開啟必須對數據文件的標簽進行修改;
2.服務配置時自定義端口,需要更改端口的標簽

二、firewalld

1.什么是防火墻

① 防火墻:防火墻是位于內部網和外部網之間的屏障,它按照系統管理員預先定義好的規則來控制數據包的進出

② 防火墻又可以分為硬件防火墻與軟件防火墻

硬件防火墻:

由廠商設計好的主機硬件,這臺硬件防火墻的操作系統主要以提供數據包數據的過濾機制為主,并將其他不必要的功能拿掉

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

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

相關文章

RSS 2025|從說明書學習復雜機器人操作任務:NUS邵林團隊提出全新機器人裝配技能學習框架Manual2Skill

視覺語言模型(Vision-Language Models, VLMs),為真實環境中的機器人操作任務提供了極具潛力的解決方案。 盡管 VLMs 取得了顯著進展,機器人仍難以勝任復雜的長時程任務(如家具裝配),主要受限于人…

NPOI Excel用OLE對象的形式插入文件附件以及插入圖片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("輸出完成"); }static void XlsWithObjData() {// 創建工作簿和單元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…

企業數字化轉型實戰:某行業研究院如何通過SD-WAN技術優化網絡架構?

一、引言 隨著企業數字化轉型的深入推進,傳統網絡架構在靈活性、可靠性和管理效率方面逐漸暴露不足。SD-WAN(軟件定義廣域網)技術憑借其智能化、自動化和高效的特點,逐漸成為企業網絡架構優化的首選方案。本文以某研究院數字化基…

數字證書_CA_詳解

目錄 一、數字證書簡介 二、 CA(證書頒發機構) (一) 證書鏈(信任鏈) 1. 根證書 2. 中間證書 3. 網站證書 (二) 抓包軟件的證書鏈與信任機制 1. 抓包通信流程 2. 證書鏈偽造與信任驗證流程 (三) 關于移動設備的CA 一、數…

Android協程學習

目錄 Android上的Kotlin協程介紹基本概念與簡單使用示例協程的高級用法 結構化并發線程調度器(Dispatchers)自定義調度器并發:同步 vs 異步 異步并發(async 并行執行)同步順序執行協程取消與超時 取消機制超時控制異步數據流 Flow協程間通信 使用 Channel使用 StateFlow /…

統計學(第8版)——假設檢驗學習筆記(考試用)

一、假設檢驗核心框架 (一)解決的核心問題 判斷樣本與總體 / 樣本與樣本的差異是由抽樣誤差還是本質差異引起 典型場景: 產品合格率是否達標(比例檢驗)工藝改進后均值是否顯著變化(均值檢驗&#xff09…

Java求職者面試:微服務技術與源碼原理深度解析

Java求職者面試:微服務技術與源碼原理深度解析 第一輪:基礎概念問題 1. 請解釋什么是微服務架構,并說明其優勢和挑戰。 微服務架構是一種將單體應用拆分為多個小型、獨立的服務的軟件開發方法。每個服務都運行在自己的進程中,并…

c# 局部函數 定義、功能與示例

C# 局部函數:定義、功能與示例 1. 定義與功能 局部函數(Local Function)是嵌套在另一個方法內部的私有方法,僅在包含它的方法內可見。 ? 作用:封裝僅用于當前方法的邏輯,避免污染類作用域,提升…

ava多線程實現HTTP斷點續傳:原理、設計與代碼實現

一、引言 在當今互聯網環境下,大文件下載需求日益增長。傳統單線程下載方式效率低下,且一旦下載中斷,需要重新開始。斷點續傳技術通過將文件分塊并利用多線程并行下載,顯著提升了下載效率,同時支持中斷后繼續下載。本…

vla學習 富

# 基于diffusion # π0 ## 架構 其核心思想是在預訓練好的視覺語言模型(VLM)基礎上添加一個“動作專家”(action expert),通過流匹配(flow matching)的方式生成連續的高頻控制指令。整個架構可以…

降雨預測系統(機器學習)

這是一個基于Python開發的降雨預測系統,使用機器學習算法對指定月份的降雨概率進行預測。該系統提供了友好的圖形用戶界面(GUI),支持數據可視化和交互式操作。 ## 功能特點 - ?? 生成歷史降雨數據(2015-2024年) - ?? 使用邏輯回歸模型進行降雨預測 - ?? 可視化…

邏輯回歸與Softmax

Softmax函數是一種將一個含任意實數的K維向量轉化為另一個K維向量的函數,這個輸出向量的每個元素都在(0, 1)區間內,并且所有元素之和等于1。 因此,它可以被看作是某種概率分布,常用于多分類問題中作為輸出層的激活函數。這里我們以拓展邏輯回歸解決多分類的角度對Softmax函…

基于PSO與BP神經網絡分類模型的特征選擇實戰(Python實現)

說明:這是一個機器學習實戰項目(附帶數據代碼文檔),如需數據代碼文檔可以直接到文章最后關注獲取。 1.項目背景 在機器學習建模過程中,特征選擇是提升模型性能、降低計算復雜度的重要環節。尤其在高維數據場景下&…

深度學習之模型壓縮三駕馬車:基于ResNet18的模型剪枝實戰(1)

一、背景:為什么需要模型剪枝? 隨著深度學習的發展,模型參數量和計算量呈指數級增長。以ResNet18為例,其在ImageNet上的參數量約為1100萬,雖然在服務器端運行流暢,但在移動端或嵌入式設備上部署時&#xf…

uni-app學習筆記二十四--showLoading和showModal的用法

showLoading(OBJECT) 顯示 loading 提示框, 需主動調用 uni.hideLoading 才能關閉提示框。 OBJECT參數說明 參數類型必填說明平臺差異說明titleString是提示的文字內容,顯示在loading的下方maskBoolean否是否顯示透明蒙層,防止觸摸穿透,默…

【大模型RAG】六大 LangChain 支持向量庫詳細對比

摘要 向量數據庫已經成為檢索增強生成(RAG)、推薦系統和多模態檢索的核心基礎設施。本文從 Chroma、Elasticsearch、Milvus、Redis、FAISS、Pinecone 六款 LangChain 官方支持的 VectorStore 出發,梳理它們的特性、典型應用場景與性能邊界&a…

【MySQL】數據庫三大范式

目錄 一. 什么是范式 二. 第一范式 三. 第二范式 不滿足第二范式時可能出現的問題 四. 第三范式 一. 什么是范式 在數據庫中范式其實就是一組規則,在我們設計數據庫的時候,需要遵守不同的規則要求,設計出合理的關系型數據庫,…

Coze工作流-語音故事創作-文本轉語音的應用

教程簡介 本教程將帶著大家去了解怎么樣把文本轉換成語音,例如說我們要做一些有聲故事,我們可能會用上一些語音的技術,來把你創作的故事朗讀出來 首先我們創建一個工作流 對各個模塊進行編輯,如果覺得系統提示詞寫的不好&#xf…

5.子網劃分及分片相關計算

某公司網絡使用 IP 地址空間 192.168.2.0/24,現需將其均分給 市場部 和 研發部 兩個子網。已知: 🏢 市場部子網 🖥? 已分配 IP 地址范圍:192.168.2.1 ~ 192.168.2.30🌐 路由器接口 IP:192.16…

三體問題詳解

從物理學角度,三體問題之所以不穩定,是因為三個天體在萬有引力作用下相互作用,形成一個非線性耦合系統。我們可以從牛頓經典力學出發,列出具體的運動方程,并說明為何這個系統本質上是混沌的,無法得到一般解…