什麼是SELinux

簡介

SELinux是「安全增強型Linux」的簡稱,是美國國家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)開發的 Linux的一個擴展強制訪問控制安全模塊

9f510fb30f2442a76481e183d343ad4bd113020c.jpg

開發原因

因為企業的業務平台的服務器上存儲著大量的商務機密,個人資料,個人資料它直接關係到個人的隱私問題。特別是政府的網站,作為信息公開的平台,它的安全就 更顯得重要了。這些連到互聯網的服務器,不可避免的要受到來自世界各地的各種威脅。最壞的時候我們的服務器被入侵,主頁文件被替換,機密文件被盜走。除了 來自外部的威脅外,內部人員的不法訪問,攻擊也是不可忽視的。對於這些攻擊或者說是威脅,當然有很多的辦法,有防火牆,入侵檢測系統,打補丁等等。因為 Linux也和其他的商用UNIX一樣,不斷有各類的安全漏洞被發現。

傳統的Linux OS的不足之處

雖然Linux 比起 Windows 來說,它的可靠性,穩定定要好得多,但是他也是和其他的UNIX 一樣,有以下這些不足之處。

1)存在特權用戶root
任何人只要得到root的權限,對於整個系統都可以為所欲為。這一點Windows也一樣。
2)對於文件的訪問權的劃分不夠細
在linux系統裡,對於文件的操作,只有「所有者」,「所有組」,「其他」這3類的劃分。對於「其他」這一類裡的用戶再細細的劃分的話就沒有辦法了。
3)SUID程序的權限升級
如果設置了SUID權限的程序有了漏洞的話,很容易被攻擊者所利用。
4)DAC (自主訪問控制)問題
文件目錄的所有者可以對文件進行所有的操作,這給系統整體的管理帶來不便。對於以上這些的不足,防火牆,入侵檢測系統都是無能為力的。

DAC(隨機訪問控制,自主訪問控制):

DAC機制就是指對象(比如程序、文件或進程等)的的擁有者可以任意的修改或授予此對象相應的權限。例如傳統Linux,Windows等。

MAC(強制訪問控制,強制訪問控制):

MAC機制是指系統不再允許對象(比如程序、文件或文件夾等)的擁有者隨意修改或授予此對象相應的權限,而是透過強制的方式為每個對象統一授予權限,例如SELinux。

SELinux的優點

SELinux的系統比起通常的Linux系統來,安全性能要高的多,它通過對於用戶,進程權限的最小化,即使受到攻擊,進程或者用戶權限被奪去,也不會對 整個系統造成重大影響。在標準Linux中,主體的訪問控制屬性是與進程通過在內核中的進程結構關聯的真實有效的用戶和組ID,這些屬性通過內核利用大量 工具進行保護,包括登陸進程和setuid程序,對於文件,文件的inode包括一套訪問模式位、文件用戶和組ID。以前的訪問控制基於讀/寫/執行這三 個控制位,文件所有者、文件所有者所屬組、其他人各一套。在SELinux中,訪問控制屬性總是安全上下文三人組形式,所有文件和主體都有一個關聯的安全 上下文,標準Linux使用進程用戶/組ID,文件的訪問模式,文件用戶/組ID要么可以訪問要么被拒絕,SELinux使用進程和客體的安全上下文,需 要特別指出的是,因為SELinux的主要訪問控制特性是類型強制,安全上下文中的類型標識符決定了訪問權。若要訪問文件,必須同時具有普通訪問權限和 SELinux訪問權限。因此即使以超級用戶身份root運行進程,根據進程以及文件或資源的SELinux安全性上下文可能拒絕訪問文件或資源。

舉個栗子:
在Linux中,passwd程序是可信任的,修改存儲經過加密的密碼的影子密碼文件(/etc/shadow),passwd程序執行它自己內部的安全 策略,允許普通用戶修改屬於他們自己的密碼,同時允許root修改所有密碼。為了執行這個受信任的作業,passwd程序需要有移動和重新創建 shadow文件的能力,在標準Linux中,它有這個特權,因為passwd程序可執行文件在執行時被加上了setuid位,它作為root用戶(它能 訪問所有文件)允許,然而,許多程序都可以作為root允許(實際上,所有程序都有可能作為root允許)。這就意味著任何程序(當以root身份運行 時)都有可能能夠修改shadow文件。類型強制使我們能做的事情是確保只有passwd程序(或類似的受信任的程序)可以訪問shadow文件,不管運 行程序的用戶是誰。

本文由 落格博客 原創撰寫:落格博客 » 什麼是SELinux

轉載請保留出處和原文鏈接:https://www.logcg.com/archives/486.html

發表評論

您的電子郵件地址不會被公開. 必填字段標 *