Linux

使用 chcon 從本質上繞過 selinux 是否不如將 selinux 設置為 permissive 安全?

  • February 19, 2016

我想知道是否有可能通過使用使 CentOS 7 伺服器的安全chcon性低於 SELinux 處於 Permissive 模式時的安全性。我實際上是在嘗試使用 Nginx 設置 Phusion Passenger 以使用安裝的 Ruby 版本rbenv(一個 Ruby 版本管理器,它基本上在使用者的主目錄中安裝 Ruby 庫、二進製文件、庫等),用於非 sudoer 的使用者。我使用的工具setroubleshoot-server基本上可以解決各種問題,例如 SELinux 布爾值,但這些工具無法幫助我診斷安裝在特定使用者主目錄中的 Ruby 版本的問題。在以下情況下,一切都適用於 Phusion Passenger 和 Nginx:

  • 使用系統範圍的 Ruby (v2.0) 安裝(SELinux 處於強制模式)
  • 使用已rbenv安裝的 Ruby (v2.2.3)(SELinux 處於許可模式)
  • 在執行以下命令後使用rbenv已安裝的 Ruby (v2.2.3)(SELinux 處於強制模式):

chcon -R --reference /bin /home/myuser/.rbenv/

請注意,我在配置更改之間重新啟動了伺服器以驗證觀察到的行為。

我覺得我通過使用chcon更改包含rbenvRuby 版本的文件夾的安全上下文,使其具有與文件夾相同的安全上下文,實際上是在繞過 SELinux /bin。以這種方式使用是否有任何意外的安全後果chcon

這可能超出了問題的範圍,但是是否有適當的方法來設置安裝在使用者主目錄中的 Ruby 解釋器的安全上下文,以便與 Nginx 和 Phusion Passenger 一起使用?

SELinux 預設拒絕任何未明確允許的內容。當 SELinux 在許可模式下執行時,SELinux 會記錄許可拒絕但不會強制執行(即,SELinux 不會阻止任何操作完成)。在強制模式下,SELinux 記錄並強制執行權限拒絕(即,SELinux 阻止操作完成)。

使用chcon從本質上繞過 SELinux 不會使您的系統比在許可模式下使用 SELinux 更安全,因為處於強制模式的 SELinux 仍然會拒絕對系統中您未接觸的所有其他部分的操作chcon

來源:https ://source.android.com/security/selinux/

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