Linux

專用使用者與 selinux

  • November 27, 2022

與使用 selinux(se 使用者可能綁定到 Linux 使用者)相比,使用專用(非 root)使用者執行程序的優缺點是什麼?

簡短回答: 為每個服務使用專用 selinux 使用者的優點是它可以提高安全性/權限分離。另一方面,它是一種侵入性更改,預設情況下不會在大多數 Linux 發行版上應用。

出於這個原因,服務通常使用專用使用者帳戶(即:)執行,httpd並且它們通過專用 selinux 配置文件可以訪問/收聽的內容受到進一步限制,但不涉及特定的 selinux 使用者/角色(即:httpd_t使用系統預設system_u使用者執行角色而不是專門的角色)。這樣做是為了提高系統安全性,而不會對普通使用者的工作方式造成太大影響。

**長答案:**關鍵區別在於自主訪問控制(DAC)強制訪問控制(MAC)之間的區別

第一個(DAC)是傳統的 unix 權限系統,使用者可以在其中更改其擁有的所有文件的權限。此外,應用程序有權執行在“普通使用者”級別授予的任何操作(例如,偵聽高 TCP 埠)。雖然非常直覺和合理,但 DAC 本身為使用者錯誤配置(即:無意中授予對敏感文件的訪問權限)或惡意軟體(即:緩衝區溢出,啟動 shellcode 打開偵聽埠以遠端控制目標主機)。

輸入 MAC,只有系統管理員才能規定可以做什麼或不能做什麼的規則。例如,系統管理員可以通過 selinux 限制使用者(擁有文件的人!)可以更改哪些文件,或者哪些文件可以設置為“其他”位。以類似的方式,無論預設的 unix 許可系統如何,都可以禁止應用程序監聽除一組受限埠之外的任何內容。

從這裡,很容易看出一個特定的系統是如何在 DAC 或 MAC 上全能的。在第一種情況下,使用者可以完全控制它可以做什麼,除了傳統上僅限於 root 的事情。“普通”(閱讀:沒有 selinux/apparmor/grsec/其他)linux 系統是僅 DAC 設置的一個很好的例子。在另一個極端,在僅 MAC 的系統上,任何使用者都可能成為特權使用者,而實際上沒有任何可能與敏感資訊進行互動(在這樣的系統中,只有專門指定的“真實”root 帳戶才能自己修改 MAC 策略).

也就是說,DAC 和 MAC 實際上是正交的:它們可以(而且經常)同時使用以加強整體系統的安全性。這是 selinux 政策背後的關鍵原因targeted:由於在純 MAC 系統中轉換 Linux 過於具有侵入性(並且在 99% 的情況下確實不需要),RedHat 發布了一項政策,該政策有選擇地將更多限制性規則應用於最敏感的服務, ***讓互動式使用者基本不受影響。***這就是為什麼使用者在預設情況下被分配給unconfined_uselinux 使用者,而 selinux 使用者又具有system_runconfined_r角色。

引用自:https://serverfault.com/questions/1116690