SELinux是什麼
SELinux是指安全強化的Linux,是Linux的安全子系統,旨在增強傳統Linux作業系統的安全性,解決傳統Linux系統中自主存取控制(DAC)系統中的各種權限問題(如root權限過高等)。 SELinux中採用的是強制存取控制(MAC)系統,也就是控制一個程序對特定檔案系統上面的檔案或目錄是否擁有存取權限。
本教學操作環境:linux7.3系統、Dell G3電腦。
SELinux是什麼
SELinux,Security Enhanced Linux 的縮寫,也就是安全強化的Linux,是由美國國家安全局(NSA )聯合其他安全機構(如SCC 公司)共同開發的Linux安全子系統,旨在增強傳統Linux 作業系統的安全性,解決傳統Linux 系統中自主存取控制(DAC)系統中的各種權限問題(如root 權限過高等)。
SELinux 專案在 2000 年以 GPL 協定的形式開源,當 Red Hat 在其 Linux 發行版本中包含了 SELinux 之後,SELinux 才逐步變得流行起來。現在,SELinux 已經被許多組織廣泛使用,幾乎所有的 Linux 核心 2.6 以上版本,都整合了 SELinux 功能。
對於 SELinux,初學者可以這麼理解,它是部署在 Linux 上用於增強系統安全的功能模組。
我們知道,在傳統的Linux 系統中,預設權限是對檔案或目錄的擁有者、所屬群組和其他人的讀取、寫入和執行權限進行控制,這種控制方式稱為自主存取控制(DAC)方式;而在SELinux 中,採用的是強制存取控制(MAC)系統,也就是控制一個進程對特定檔案系統上面的檔案或目錄是否擁有存取權限,而判斷進程是否可以存取文件或目錄的依據,取決於SELinux 中設定的許多策略規則。
說到這裡,讀者有必要詳細地了解這兩個存取控制系統的特點:
-
#自主存取控制系統(Discretionary Access Control,DAC)是Linux 的預設存取控制方式,也就是依據使用者的身分和該身分對檔案及目錄的rwx 權限來判斷是否可以存取。不過,在DAC 存取控制的實際使用中我們也發現了一些問題:
root 權限過高,rwx 權限對root 使用者並不生效,一旦root 使用者被竊取或root 使用者本身的誤操作,都是對Linux 系統的致命威脅。
Linux 預設權限過於簡單,只有擁有者、所屬群組和其他人的身份,權限也只有讀取、寫入和執行權限,並不利於權限細分與設定。
不合理權限的指派會導致嚴重後果,例如為系統敏感檔案或目錄設定 777 權限,或為敏感檔案設定特殊權限-SetUID 權限等。
- 強制存取控制(Mandatory Access Control,MAC)是透過SELinux 的預設策略規則來控制特定的程序對系統的檔案資源的訪問。也就是說,即使你是 root 用戶,但是當你存取檔案資源時,如果使用了不正確的進程,那麼也是不能存取這個檔案資源的。
這樣一來,SELinux 控制的就不會單單只是使用者及權限,還有進程。每個行程能夠存取哪個檔案資源,以及每個檔案資源可以被哪些行程訪問,都靠 SELinux 的規則策略來決定。
注意,在SELinux 中,Linux 的預設權限還是有作用的,也就是說,一個用戶要能存取一個文件,既要求這個用戶的權限符合rwx 權限,也要求這個用戶的進程符合SELinux 的規定。
不過,系統中有這麼多的進程,也有這麼多的文件,如果手工來進行分配和指定,那麼工作量過大。所以 SELinux 提供了許多預設的策略規則,這些策略規則已經設定得比較完善,我們稍後再來學習如何檢視和管理這些策略規則。
為了讓讀者清楚地了解 SELinux 所扮演的角色,這裡舉一個例子,假設 apache 上發現了一個漏洞,使得某個遠端使用者可以存取系統的敏感檔案(如 /etc/shadow)。如果我們的Linux 中啟用了SELinux,那麼,因為apache 服務的進程並不具備存取/etc/shadow 的權限,所以這個遠端使用者透過apache 存取/etc/shadow檔案就會被SELinux 所阻擋,起到保護Linux系統的作用。
Selinux如何關閉
#查看selinux状态 [root@vm01]# getenforce #临时关闭selinux [root@vm01]# setenforce 0 #永久关闭 [root@vm01]# vi /etc/selinux/config # SELINUX=enforcing改为SELINUX=disabled
相關推薦:《Linux影片教學》
以上是SELinux是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。
