SELinux主要功能是最大限度地減少系統中服務進程可存取的資源(最小權限原則),最大程式上限制了Linux系統中的惡意程式碼活動。 SELinux是部署在Linux系統中的安全增強功能模組,它透過對進程和檔案資源採用MAC(強制存取控制方式)為Linux系統提供了改進的安全性。
本教學操作環境:linux7.3系統、Dell G3電腦。
SELinux是什麼
安全增強Linux(Security-Enhanced Linux)簡稱SELinux,它是一個Linux 核心模組,也是Linux 的一個安全子系統。
SELinux 主要由美國國家安全局開發。 2.6 以上版本的 Linux 核心都已經整合了 SELinux 模組。
SELinux 的結構及配置非常複雜,而且有大量概念性的東西,要學精難度較大。很多 Linux 系統管理員嫌麻煩都把 SELinux 關閉了。
SELinux有什麼用
SELinux 主要作用是最大限度地減少系統中服務進程可存取的資源(最小權限原則) 。
我們知道,傳統的Linux 系統安全,採用的是DAC(自主存取控制方式),而SELinux 是部署在Linux 系統中的安全增強功能模組,它透過對進程和檔案資源採用MAC(強制存取控制方式)為Linux 系統提供了改進的安全性。
要注意的是,SELinux 的MAC 並不會完全取代DAC,恰恰相反,對於Linux 系統安全性來說,它是一個額外的安全層,換句話說,當使用SELinux 時,DAC 仍然被使用,且會先被使用,如果允許訪問,再使用SELinux 策略;反之,如果DAC 規則拒絕訪問,則根本無需使用SELinux 策略。
例如,若使用者嘗試對沒有執行權限(rw-)的檔案進行執行操作,那麼傳統的 DAC 規則就會拒絕使用者訪問,因此,也就無需再使用 SELinux 策略。
相比傳統的Linux DAC 安全控制方式,SELinux 具有諸多好處,比如說:
它使用的是MAC 控制方式,這被認為是最強的存取控制方式;
它賦予了主體(使用者或流程)最小的存取特權,這也意味著,每個主體僅被賦予了完成相關任務所必須的一組有限的權限。透過賦予最小存取特權,可以防止主體對其他使用者或進程產生不利的影響;
SELinux 管理過程中,每個進程都有自己的運行區域(稱為域) ,各進程僅運行在自己的網域內,無法存取其他進程和文件,除非被授予了特殊權限。
SELinux 可以調整到 Permissive 模式,此模式允許查看在系統上執行 SELinux 後所產生的印象。在 Permissive 模式中,SELinux 仍然會記錄它所認為的安全漏洞,但不會阻止它們。
其實,想要了解 SELinux 的優點,最直接的辦法就是查看當 Linux 系統上沒有執行 SELinux 時會發生什麼事。
例如,Web 伺服器守護程式(httd)正在監聽某一連接埠上所發生的事情,而後進來了一個要求查看主頁的來自 Web 瀏覽器的簡單請求。由於不會受到SELinux 的約束,httpd 守護程式聽到請求後,可以完成以下事情:
根據相關的擁有者和所屬群組的rwx權限,可以存取任何檔案或目錄;
完成存在安全隱患的活動,例如允許上傳檔案或更改系統顯示;
可以監聽任何連接埠的傳入請求。
但在一個受 SELinux 約束的系統上,httpd 守護程式受到了更嚴格的控制。仍然使用上面的範例,httped僅能監聽 SELinux 允許其監聽的連接埠。 SELinux 還可以防止 httpd 存取任何沒有正確設定安全上下文的文件,並拒絕沒有再 SELinux 中明確啟用的不安全活動。
因此,從本質上講,SELinux 最大程式上限制了 Linux 系統中的惡意程式碼活動。
相關推薦:《Linux影片教學》
以上是SELinux有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!