與使用 SELinux(SE 使用者可能綁定到 Linux 使用者)相比,使用專用(非 root)使用者執行進程有哪些優點和缺點?
答案1
簡短回答: 為每個服務使用專用的 selinux 使用者的優點是它可以提高安全性/權限分離。另一方面,這是一個侵入性的更改,預設情況下大多數 Linux 發行版都不會套用它。
因此,服務通常使用專用使用者帳戶運行(即:)httpd
,並且透過專用 selinux 設定檔可以存取/偵聽的內容受到進一步限制,但不涉及特定的 selinux 使用者/角色(即:httpd_t
使用系統預設system_u
使用者執行角色而不是專門的角色)。這樣做是為了提高系統安全性,而又不會過度影響正常使用者的工作方式。
長答案:關鍵的差異在於自主存取控制 (DAC)和強制存取控制 (MAC)
第一個(DAC)是傳統的unix權限系統,使用者可以更改其擁有的所有檔案的權限。此外,應用程式有權執行「普通使用者」等級所授予的任何操作(例如,偵聽高 TCP 連接埠)。雖然非常直覺且合理,但DAC 本身為使用者的錯誤配置(即:無意中授予對敏感檔案的存取權限)或惡意軟體(即:緩衝區溢出,啟動shellcode,打開偵聽連接埠以遠端控制DAC)敞開了大門。
進入 MAC,只有系統管理員才規定可以做什麼或不可以做什麼的規則。例如,系統管理員可以透過 selinux 限制使用者(擁有這些文件的人!)可以更改哪些文件,或哪些文件可以設定為「其他」位元。以類似的方式,無論預設的 UNIX 權限系統為何,都可以禁止應用程式監聽除一組受限連接埠之外的任何內容。
從這裡,很容易看出特定係統如何全面使用 DAC 或 MAC。在第一種情況下,使用者可以完全控制自己可以執行的操作,但傳統上限制為 root 的操作除外。 「普通」(即:沒有 selinux/apparmor/grsec/無論什麼)Linux 系統是僅 DAC 設定的一個很好的範例。在另一個極端,在純 MAC 系統上任何用戶可能是特權用戶,但實際上沒有任何可能與敏感資訊互動(在這樣的系統中,只有專門指定的「真實」root 帳戶才能修改 MAC 策略本身)。
也就是說,DAC 和 MAC 實際上是正交的:它們可以(並且經常)同時使用,以增強整體系統的安全性。這是 selinux 政策背後的關鍵原因targeted
:由於在純 MAC 系統中轉換 Linux 的侵入性太大(並且在 99% 的情況下確實不需要),RedHat 推出了一項政策選擇性地對最敏感的服務應用更嚴格的規則, 互動用戶基本上不受影響。這就是為什麼預設情況下,使用者會unconfined_u
依序指派給 selinux 使用者system_r
和unconfined_r
角色。
答案2
專用用戶:
專用使用者是專門用於特定目的或服務的帳戶。這種類型的使用者帳戶通常是為了為特定功能或服務(例如運行特定服務或應用程式)提供安全環境而創建的。
SELinux:
SELinux(Security-Enhanced Linux)是一個Linux核心安全模組,它提供了支援存取控制安全策略的機制,包括強制存取控制(MAC)。它旨在保護系統及其應用程式免受用戶、進程或應用程式造成的惡意或意外損壞。它還旨在透過限制對系統資源和應用程式的存取來為系統管理員和使用者提供安全的環境。
使用專用使用者運行流程的優點:
- 提高安全性:透過使用專用使用者運行進程,您可以限制該進程對特定資源的訪問,並限制受損進程可能造成的潛在損害。
- 改進的性能:專用用戶可以透過減少根用戶在安全相關任務上花費的時間來幫助提高系統效能。
- 簡化維護:專用使用者可以透過為每個流程提供隔離的上下文來簡化系統維護,從而使您能夠快速識別和解決任何問題。
使用專用使用者運行流程的缺點:
- 增加複雜性:使用專用使用者執行進程可能會增加系統管理的複雜性,因為您必須管理使用者的權限和特權。
- 能力有限:專用使用者可能缺乏某些進程所需的功能,例如對特權系統資源的存取。
使用 SELinux 運行進程的優點:
提高安全性:SELinux 提供了強大的存取控制機制,可用於隔離進程並限制惡意進程的潛在損害。
改進的性能:SELinux 可以透過限制花在安全相關任務上的時間來幫助提高系統效能。
增加靈活性:SELinux 允許用戶將 SE 用戶綁定到 Linux 用戶,從而可以對存取和權限進行更細粒度的控制。
使用 SELinux 運行進程的缺點:
- 增加複雜性:SELinux 可能很複雜且難以配置,從而使系統管理變得更加困難。
- 相容性有限:SELinux 並不與所有應用程式相容,限制了它在某些情況下的實用性。