防止在目標下掛載
我想阻止所有使用者(包括 root)通過 SELinux 或任何其他 Linux 工具在特定目標(例如 /tmp)下安裝任何東西,這可能嗎?怎麼做?
關於建議的副本: 如何拒絕安裝權限?——這不是我想要的。
首先,在談論 root 使用者時,它完全忽略了 SELinux。其次,它談到了刪除“安裝權限”。這不是我試圖達到的目標。我實際上是在談論“拒絕文件夾權限”而不是安裝權限。最接近我正在嘗試的是神話或現實:SELinux 可以限制 root 使用者?它只是不談論文件夾訪問,特別是拒絕“掛載”到該文件夾。
如果我選擇一個可能的解決方案而不是一個問題,我會問:“是否有 SELinux 域來限制安裝?”
在支持 SELinux 的系統上,每個對象(程序、文件等)都有一個安全標籤。SELinux 策略包含描述這些標籤的允許操作的規則。預設策略相當複雜和廣泛。配置策略可能已經足以防止在大多數位置安裝(基於標籤)。
該策略不對不受限制的使用者施加限制。此外
allow_mount_anyfile
,布爾控制mount
命令是否可以(幾乎)使用任何文件作為掛載點。使用受限使用者將對使用者訪問系統的方式施加許多限制。SELinux基於角色的訪問控制 (RBAC)將受限使用者置於受限角色中。角色限制角色允許使用哪些域(程序安全標籤)。此外,受限使用者user_r
無法切換到另一個角色。我們可以檢查已安裝的策略,以確定受限角色的使用者是否可以使用標記的文件/目錄作為掛載點(直接或通過濫用另一個允許的域)。
首先,檢查哪些域
user_r
可以轉換為seinfo
:seinfo -r user_t -x
SELinux 策略語言具有
mounton
允許域使用目標文件/目錄作為掛載點的權限。要查詢已安裝的策略以查找允許使用目標對像作為掛載點的域:sesearch --allow -t <target file/directory type> -p mounton
如果沒有
user_r
允許域的規則,則使用者user_r
不能將目標用作掛載點(即使他們是 root 使用者user_r
)。此外,應該驗證沒有relabelfrom
(重新標記)或unlink
權限可用於規避策略。限制管理員(root in
sysadm_r
)並非易事。它需要具有新自定義類型的策略模組和/或自定義基本策略,就像sysadm_t
前面提到的權限一樣。自定義策略需要具有僅允許域訪問的類型。此外,策略需要拒絕任何可能允許規避策略的行為,從而導致 root 使用者比 root 使用者更接近受限使用者。