SELinux技術簡介

SELinux技術簡介

在Redhat Enterprise Linux 4.0或Fedora Core 2 Linux以上版本的Linux中,有不少用戶經常會遇到諸如apache的Permission denied,X windows打不開等等問題,拋開一些常規配置錯誤外,很大一部分原因是因爲激活了SELinux的緣故。

什麼是SELinux?SELinux全稱是Security Enhanced Linux,由美國國家安全部(National Security Agency)領導開發的GPL項目,它擁有一個靈活而強制性的訪問控制結構,旨在提高Linux系統的安全性,提供強健的安全保證,可防禦未知***,據稱相當於B1級的軍事安全性能。比MS NT所謂的C2等高得多。

應用SELinux後,可以減輕惡意***或惡意軟件帶來的災難,並提供對機密性和完整性有很高要求的信息很高的安全保障。

SELinux vs Linux
普通Linux安全和傳統Unix系統一樣,基於自主存取控制方法,即DAC,只要符合規定的權限,如規定的所有者和文件屬性等,就可存取資源。在傳統的安全機制下,一些通過setuid/setgid的程序就產生了嚴重安全隱患,甚至一些錯誤的配置就可引發巨大的漏洞,被輕易***。

而SELinux則基於強制存取控制方法,即MAC,透過強制性的安全策略,應用程序或用戶必須同時符合DAC及對應SELinux的MAC才能進行正常操作,否則都將遭到拒絕或失敗,而這些問題將不會影響其他正常運作的程序和應用,並保持它們的安全系統結構。

SELinux on Redhat Linux
在RHEL4.0或FC3以上的版本中,可以在安裝時就選擇是否激活SELinux,系統自動會安裝相應的內核、工具、程序等。由於SELinux的MAC機制將極大的影響了現有引用,因此RHEL4/FC3中已預配置了大量兼容現有應用的安全策略。

SELinux的配置相關文件都在/etc/selinux下,其中/etc/selinux/targeted目錄裏就包含了策略的詳細配置和context定義,以下是主要文件及功用:

/etc/selinux/targeted/contexts/*_context 默認的context設置
/etc/selinux/targeted/contexts/files/* 精確的context類型劃分
/etc/selinux/targeted/policy/* 策略文件

使用Redhat 默認的策略對正常應用帶來的影響比較小,兼容性相對比較好。對於需要提供虛擬主機或大量應用的用戶而言,則會帶來不小的麻煩,需要仔細閱讀SELinux的手冊進行調整。

其中Fedora Core 的官方網站上有相關的Apache/SELinux的策略調整文檔,建議web用戶仔細閱讀。

激活SELinux的操作系統,需要對策略和模式進行變更時,一般不需要重啓動即可獲得變化,主要就是透過libselinux軟件包實現。 libselinux包含了對策略的控制/管理工具,其中getsebool/setsebool是讀取/設置SELinux 布爾值的工具,getenforce/setenforce則是設置強制性的工具。

Why SELinux?
毫無疑問:安全!如今Internet上病毒、***層出不窮,信息安全受到了嚴重威脅,而普通Linux的安全性要做得很好並不容易,且沒有一箇中央化的安全體系結構,因此使用SELinux可以使用強制的訪問控制來進行小顆粒度的權限控制,並提高系統的穩定性,簡化了防系統崩潰的調整工作,達到信息保密和完整性的要求。
SELinux主要的改進在於:
# 對內核對象和服務的訪問控制
# 對進程初始化、繼承和程序執行的訪問控制
# 對文件系統、目錄、文件和打開文件描述的訪問控制
# 對端口、信息和網絡接口的訪問控制。

SELinux still difficult
控制的東西越多使用起來就越容易複雜,SELinux也不例外,目前SELinux還在不斷完善中,管理和控制策略並不是一件輕鬆的事,需要豐富的系統知識和經驗,並且必須仔細閱讀SELinux相關的文檔,做大量的嘗試。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章