Linux

防止在目標下掛載

  • October 10, 2018

我想阻止所有使用者(包括 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 使用者更接近受限使用者。

引用自:https://unix.stackexchange.com/questions/473698