Centos配置叢集為什麼要關閉SELINUX

LuckyJiang-2019發表於2016-12-25
SELinux系統比起通常的Linux系統來,安全效能要高的多,它通過對於使用者,程式許可權的最小化,即使受到攻擊,程式或者使用者許可權被奪去,也不會對整個系統造成重大影響。
接下來我來介紹SELinux的一些特點。
對訪問的控制徹底化
特點1:MAC(Mandatory Access Control)―――對訪問的控制徹底化
對於所有的檔案,目錄,埠這類的資源的訪問,都可以是基於策略設定的,這些策略是由管理員定製的、一般使用者是沒有許可權更改的。
對於程式只賦予最小的許可權
特點2:TE (Type Enforcement)――― 對於程式只賦予最小的許可權
Te概念在 SELinux裡非常的重要。它的特點是對所有的檔案都賦予一個叫type的檔案型別標籤,對於所有的程式也賦予各自的一個叫 domain的 標籤。Domain標籤能夠執行的操作也是由access vector在策略裡定好的。
我們熟悉的apache伺服器,httpd程式只能在httpd_t 裡執行,這個httpd_t 的domain能執行的操作,比如能讀網頁內容檔案賦予httpd_sys_content_t,密碼檔案賦予shadow_t,TCP的80埠賦予 http_port_t等等。如果在access vector裡我們不允許 http_t來對http_port_t進行操作的話,Apache啟動都啟動不了。反過來說,我們只允許80埠,只允許讀取被標為 httpd_sys_content_t的檔案,httpd_t就不能用別的埠,也不能更改那些被標為httpd_sys_content_t的檔案(read only)。


防止許可權升級
特點3:domain遷移 ―― 防止許可權升級

在使用者環境裡執行點對點下載軟體azureus,你當前的domain是fu_t,但是,你考慮到安全問題,你打算讓他在azureus_t裡執行,你要是在terminal裡用命令啟動azureus的話,它的程式的domain就會預設繼承你實行的shell的fu_t。
有了domain遷移的話,我們就可以讓azureus在我們指定的azureus_t裡執行,在安全上面,這種做法更可取,它不會影響到你的fu_t。
下面是domain遷移指示的例子:
domain_auto_trans(fu_t,azureus_exec_t,azureus_t)
意思就是,當在 fu_t domain裡,實行了 被標為 azureus_exec_t的檔案時,domain 從fu_t遷移到 azureus_t。下面是Apache啟動的遷移圖。注意了,因為從哪一個domain能遷移到httpd_t是在策略裡定好了,所以要是我們手動 (/etc/init.d/httpd start)啟動apache的話,可能仍然留在sysadm_t裡,這樣就不能完成正確的遷移。要用run_init命令來手動啟動。
對於使用者只賦予最小的許可權
特點4:RBAC(role base access control) ――――― 對於使用者只賦予最小的許可權
對於使用者來說,被劃分成一些ROLE,即使是ROOT使用者,你要是不在sysadm_r裡,也還是不能實行sysadm_t管理操作的。因為,那些ROLE可以執行那些domain也是在策略裡設定的。ROLE也是可以遷移的,但是也只能按策略規定的遷移。

相關文章