SELinux Introduce - SELinux技術簡介(轉)

ba發表於2007-08-16
SELinux Introduce - SELinux技術簡介(轉)[@more@]  在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相關的文件,做大量的嘗試。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961946/,如需轉載,請註明出處,否則將追究法律責任。

相關文章