Centos

SELinux 是否讓 Redhat 更安全?

  • September 4, 2015

SELinux 是否讓 Redhat 更安全?

我不記得我禁用 SELinux 的次數了,因為它一直讓我無法正常執行。很多時候,沒有明顯的原因為什麼東西不起作用,我不得不穀歌找出原因。

鑑於大多數臨時使用者會在安全性出現障礙時禁用或削弱安全性,除了嚴肅的、企業級的 Redhat 使用者之外,SELinux 真的有用嗎?

PS。是否有一些工具可以幫助您記錄、跟踪和管理所有應用程序中的 SELinux 問題?

是的,Selinux 讓系統更安全。但是你需要理解它的概念,並且至少對 selinux 和審計工具有基本的了解。

Selinux 正在記錄到 /var/log/audit/audit.log(但要確保 auditd 正在執行),並且有許多工具可以解決 selinux 問題。可能最簡單的方法是使用audit2allow

是的,SELinux 使 Red Hat(以及任何其他實際使用它的 Linux 發行版)更加安全,假設它實際上正在使用中。

SELinux 實施強制訪問控制。普通的 Unix 權限、ACL 等,實現自由訪問控制。兩者相輔相成。

為了工作,SELinux 需要一個策略,定義可以允許系統上的哪些操作。雖然可以從頭開始創建整個系統策略,但大多數 Linux 發行版都提供基於所謂的參考策略的策略。這意味著,跨發行版配置 SELinux 將非常相似。(大多數 Linux 發行版都在其軟體包儲存庫中提供了 SELinux 參考策略,儘管預設情況下可能不會安裝它。)

SELinux 的工作方式是限制使用者和程序僅執行策略中允許他們執行的操作。預設情況下,策略是拒絕,因此如果策略沒有明確允許某個操作,那麼它就不會發生。這就是為什麼您經常遇到 SELinux 不允許您嘗試做的事情的原因。

從好的方面來說,這也可以防止漏洞利用,甚至是 0-day 漏洞利用失控。例如,如果您的 Web 伺服器 (Apache) 被利用,則損害僅限於 Apache 可以訪問的那些東西。/etc/shadow例如,即使使用遠端 root 漏洞利用,它也無法讀取您的文件。雖然 Unix 權限 (DAC) 允許 root 讀取文件,但 SELinux (MAC) 不允許受感染的程序越界。

最大的問題是必須為該服務載入一個 SELinux 策略模組。如果你在你的機器上安裝了一個不包含 SELinux 策略模組的服務,那麼它將不受限制地執行並且能夠做任何它想做的事情。SELinux 不適用於它。

你應該知道的另一件事是關於booleans。這些可調參數由 SELinux 策略提供,以針對特定安裝自定義它們,並根據本地配置需要允許或拒絕訪問。例如,您可以授予 Apache 對 Samba 共享的訪問權限,使 Samba 能夠共享使用者主目錄,以及許多其他可能有用的東西,這些東西對於某些設置是必需的,而對於其他設置則不是。

我目前看到的最好的 SELinux 指南是 Red Hat 的Security-Enhanced Linux User Guide。它將幫助您快速啟動和執行,並填寫正在發生的事情的背景詳細資訊。它還包括一個全面的故障排除指南,可幫助您在 SELinux 下執行您的程序。

有用嗎?

SELinux 可以防止程序(和使用者,如果你限制了你的使用者)做意想不到的事情。它嚴重限制了遠端漏洞利用可以造成的損害。如果您從未遭受過遠端妥協,那麼您是 (1) 幸運的,並且 (2) 可能是新人。如果您進行了遠端妥協,您當然不希望它再次發生。

它在家庭環境中沒有那麼有用,除非您碰巧在家中執行面向 Internet 的服務(有些人這樣做)。在這種情況下,上述所有內容均適用。

SELinux 可能是您的數據和真正想要它的具有 0-day 漏洞的攻擊者之間的最後一件事。如果你能用它,你為什麼不呢?

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