SELinux简介(转载)
幾乎可以肯定每個人都聽說過 SELinux (更準確的說,嘗試關閉過),甚至某些過往的經驗讓您對 SELinux 產生了偏見。不過隨著日益增長的 0-day 安全漏洞,或許現在是時候去了解下這個在 Linux 內核中已經有8年歷史的強制性訪問控制系統(MAC)了
SELinux 與強制訪問控制系統
SELinux 全稱 Security Enhanced Linux (安全強化 Linux),是 MAC (Mandatory Access Control,強制訪問控制系統)的一個實現,目的在于明確的指明某個進程可以訪問哪些資源(文件、網絡端口等)
強制訪問控制系統的用途在于增強系統抵御 0-Day 攻擊(利用尚未公開的漏洞實現的攻擊行為)的能力。所以它不是網絡防火墻或 ACL 的替代品,在用途上也不重復。
舉例來說,系統上的 Apache 被發現存在一個漏洞,使得某遠程用戶可以訪問系統上的敏感文件(比如 /etc/passwd 來獲得系統已存在用戶),而修復該安全漏洞的 Apache 更新補丁尚未釋出。此時 SELinux 可以起到彌補該漏洞的緩和方案。因為 /etc/passwd 不具有 Apache 的訪問標簽,所以 Apache 對于 /etc/passwd 的訪問會被 SELinux 阻止。
相比其他強制性訪問控制系統,SELinux 有如下優勢:
控制策略是可查詢而非程序不可見的。
可以熱更改策略而無需重啟或者停止服務。
可以從進程初始化、繼承和程序執行三個方面通過策略進行控制。
控制范圍覆蓋文件系統、目錄、文件、文件啟動描述符、端口、消息接口和網絡接口。
了解和配置 SELinux
1. 獲取當前 SELinux 運行狀態
getenforce可能返回結果有三種:Enforcing、Permissive 和 Disabled。Disabled 代表 SELinux 被禁用,Permissive 代表僅記錄安全警告但不阻止可疑行為,Enforcing 代表記錄警告且阻止可疑行為。目前常見發行版中,RHEL 和 Fedora 默認設置為 Enforcing,其余的如 openSUSE 等為 Permissive。2. 改變 SELinux 運行狀態
setenforce [ Enforcing | Permissive | 1 | 0 ]該命令可以立刻改變 SELinux 運行狀態,在 Enforcing 和 Permissive 之間切換,結果保持至關機。一個典型的用途是看看到底是不是 SELinux 導致某個服務或者程序無法運行。若是在 setenforce 0 之后服務或者程序依然無法運行,那么就可以肯定不是 SELinux 導致的。若是想要永久變更系統 SELinux 運行環境,可以通過更改配置文件 /etc/sysconfig/selinux 實現。注意當從 Disabled 切換到 Permissive 或者 Enforcing 模式后需要重啟計算機并為整個文件系統重新創建安全標簽(touch /.autorelabel && reboot)。3. SELinux 運行策略
配置文件 /etc/sysconfig/selinux 還包含了 SELinux 運行策略的信息,通過改變變量 SELINUXTYPE 的值實現,該值有兩種可能:targeted 代表僅針對預制的幾種網絡服務和訪問請求使用 SELinux 保護,strict 代表所有網絡服務和訪問請求都要經過 SELinux。RHEL 和 Fedora 默認設置為 targeted,包含了對幾乎所有常見網絡服務的 SELinux 策略配置,已經默認安裝并且可以無需修改直接使用。若是想自己編輯 SELinux 策略,也提供了命令行下的策略編輯器 seedit 以及 Eclipse 下的編輯插件 eclipse-slide 。更詳細的請見:http://www.ha97.com/4336.html
轉載于:https://www.cnblogs.com/raind/p/10288409.html
總結
以上是生活随笔為你收集整理的SELinux简介(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7-4 单词替换 (10分)——单词查找
- 下一篇: linux 其他常用命令