新聞中心
Security Enhanced Linux 的縮寫,也就是安全強化的 Linux,是由美國國家安全局(NSA)聯(lián)合其他安全機構(比如 SCC 公司)共同開發(fā)的,旨在增強傳統(tǒng) Linux 操作系統(tǒng)的安全性,解決傳統(tǒng) Linux 系統(tǒng)中自主訪問控制(DAC)系統(tǒng)中的各種權限問題(如 root 權限過高等)。

SELinux 項目在 2000 年以 GPL 協(xié)議的形式開源,當 Red Hat 在其 Linux 發(fā)行版本中包括了 SELinux 之后,SELinux 才逐步變得流行起來?,F(xiàn)在,SELinux 已經(jīng)被許多組織廣泛使用,幾乎所有的 Linux 內核 2.6 以上版本,都集成了 SELinux 功能。
對于 SELinux,初學者可以這么理解,它是部署在 Linux 上用于增強系統(tǒng)安全的功能模塊。
我們知道,傳統(tǒng)的 Linux 系統(tǒng)中,默認權限是對文件或目錄的所有者、所屬組和其他人的讀、寫和執(zhí)行權限進行控制,這種控制方式稱為
自主訪問控制(DAC)方式;而在 SELinux 中,采用的是
強制訪問控制(MAC)系統(tǒng),也就是控制一個進程對具體文件系統(tǒng)上面的文件或目錄是否擁有訪問權限,而判斷進程是否可以訪問文件或目錄的依據(jù),取決于 SELinux 中設定的很多策略規(guī)則。
說到這里,讀者有必要詳細地了解一下這兩個訪問控制系統(tǒng)的特點:
- 自主訪問控制系統(tǒng)(Discretionary Access Control,DAC)是 Linux 的默認訪問控制方式,也就是依據(jù)用戶的身份和該身份對文件及目錄的 rwx 權限來判斷是否可以訪問。不過,在 DAC 訪問控制的實際使用中我們也發(fā)現(xiàn)了一些問題:
- root 權限過高,rwx 權限對 root 用戶并不生效,一旦 root 用戶被竊取或者 root 用戶本身的誤操作,都是對 Linux 系統(tǒng)的致命威脅。
- Linux 默認權限過于簡單,只有所有者、所屬組和其他人的身份,權限也只有讀、寫和執(zhí)行權限,并不利于權限細分與設定。
- 不合理權限的分配會導致嚴重后果,比如給系統(tǒng)敏感文件或目錄設定 777 權限,或給敏感文件設定特殊權限——SetUID 權限等。
- 強制訪問控制(Mandatory Access Control,MAC)是通過 SELinux 的默認策略規(guī)則來控制特定的進程對系統(tǒng)的文件資源的訪問。也就是說,即使你是 root 用戶,但是當你訪問文件資源時,如果使用了不正確的進程,那么也是不能訪問這個文件資源的。
這樣一來,SELinux 控制的就不單單只是用戶及權限,還有進程。每個進程能夠訪問哪個文件資源,以及每個文件資源可以被哪些進程訪問,都靠 SELinux 的規(guī)則策略來確定。
注意,在 SELinux 中,Linux 的默認權限還是有作用的,也就是說,一個用戶要能訪問一個文件,既要求這個用戶的權限符合 rwx 權限,也要求這個用戶的進程符合 SELinux 的規(guī)定。
不過,系統(tǒng)中有這么多的進程,也有這么多的文件,如果手工來進行分配和指定,那么工作量過大。所以 SELinux 提供了很多的默認策略規(guī)則,這些策略規(guī)則已經(jīng)設定得比較完善,我們稍后再來學習如何查看和管理這些策略規(guī)則。
為了使讀者清楚地了解 SELinux 所扮演的角色,這里舉一個例子,假設 apache 上發(fā)現(xiàn)了一個漏洞,使得某個遠程用戶可以訪問系統(tǒng)的敏感文件(如 /etc/shadow)。如果我們的 Linux 中啟用了 SELinux,那么,因為 apache 服務的進程并不具備訪問 /etc/shadow 的權限,所以這個遠程用戶通過 apache 訪問 /etc/shadow文件就會被 SELinux 所阻擋,起到保護 Linux 系統(tǒng)的作用。
CentOS 6.x安裝SELinux
在 CentOS 6.x 中,SELinux 也是整合到 Linux 的內核當中的,并且是啟動的,所以不需要單獨安裝。不過,現(xiàn)在不再像在 CentOS 5.x 中,所有的 SELinux 工具都是已經(jīng)安裝和配置好的,在 CentOS 6.x 中,雖然 SELinux 的主程序默認已經(jīng)安裝,但是很多的 SELinux 管理工具需要我們手工安裝。
SELinux 安裝命令如下:
[root@localhost ~]# yum -y install setroubleshoot
[root@localhost ~]# yum -y install setools-console
這兩條命令要想正確運行,需要搭建正確的 yum 源。這兩個軟件包在安裝時會依賴安裝一系列的軟件包,這些軟件包中包含了 SELinux 的常用工具。
通過以上的介紹,讀者應該對 SELinux 有了初步的認識,下面我們再通過了解 SELinux 的工作模式,細致了解 SELinux。
分享文章:SELinux是什么
當前地址:http://www.fisionsoft.com.cn/article/ccsigee.html


咨詢
建站咨詢
