Linux SELinux 介紹詳解
SElinux 簡介
SElinux (Security Enhanced Linux)是由美國國家安全局(NSA)開發的。它已被植入到了Linux系統的核心當中,主要作用是通過安全政策将系統應用軟體及使用者程式對系統檔案目錄的通路限制。已MAC(Mandatory Access Control)的委任試存儲方式作為安全處理。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iYiVmZ5YDZxAzNhVTMxY2MmFmYiNWM3UGOilDN2Q2Mw8CX4AzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
SElinux 運作模式
主體(Subject)
主體相當于系統中的執行程式process,SElinux主要管理的就是程式。
目标(Object)
系統檔案以及目錄。
政策(Policy)
由于程式目錄數量比較多,是以SELinux會一局某些服務來定制基本的存取安全政策。CentOS 7.x裡面僅有提供三個主要的政策分别是:
targeted:針對網絡服務限制較多,針對本地限制較少,是預設的政策;
minimum:由 target 修訂而來,隻針對選擇的程式來保護!
mls:完整的 SELinux 限制,限制方面較為嚴格。
運作圖:
SElinux 三種身份
檢視目前目錄下的SElinux資訊(前提SElinux已經打開)
身份識别(Identify)
代表:相當於帳號方面的身份識別!主要的身份識別常見有底下幾種常見的類型:
unconfined_u:不受限的使用者,也就是說,該檔案來自於不受限的程式所產生的!一般來說,我們使用可登入帳號來取得 bash 之後, 預設 的 bash 環境是不受 SELinux 管制的~因為 bash 並不是什麼特別的網路服務!是以,在這個不受 SELinux 所限制的 bash 程式所產生的檔案, 其身份識別大多就是 unconfined_u 這個『不受限』用戶囉!
system_u:系統用戶,大部分就是系統自己產生的檔案囉!
角色(Role)
代表:透過角色欄位,我們可以知道這個資料是屬於程式、檔案資源還是代表使用者。一般的角色有:
object_r:代表的是檔案或目錄等檔案資源,這應該是最常見的囉;
system_r:代表的就是程式啦!不過,一般使用者也會被指定成為 system_r 喔!
類型(Type)
代表:在預設的 targeted 政策中, Identify 與 Role 欄位基本上是不重要的!重要的在於這個類型 (type) 欄位! 基本上,一個主體程式能不能讀取到這個檔案資源,與類型欄位有關!而類型欄位在檔案與程式的定義不太相同,分別是:
type:在檔案資源 (Object) 上面稱為類型 (Type);
domain:在主體程式 (Subject) 則稱為領域 (domain) 了!
SElinux 三種啟動模式
enforcing:強制模式、代表SELinux運作中,且已經正确的開放限制 domain/type。
permissive:寬容模式、代表SELinux運作中,不過金會有警告資訊并不會直接限制 domian/type。
disabled:關閉模式、SELinux 關閉狀态。
來源位址:http://linux.vbird.org/linux_basic/0440processcontrol.php#selinux