好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > SELinux 入門詳解

SELinux 入門詳解

熱門標簽:網絡電話外呼系統開發 申請400電話收費標 滴滴急救中心地圖標注 福州語音電銷機器人招商 艾澤拉斯地圖標注 菏澤自動電銷機器人公司 淘寶辦理400電話是多少 外呼線路隨意切換嗎 北海智能電銷機器人公司

回到 Kernel 2.6 時代,那時候引入了一個新的安全系統,用以提供訪問控制安全策略的機制。這個系統就是 Security Enhanced Linux (SELinux),它是由美國國家安全局(NSA)貢獻的,它為 Linux 內核子系統引入了一個健壯的強制控制訪問Mandatory Access Control架構。

如果你在之前的 Linux 生涯中都禁用或忽略了 SELinux,這篇文章就是專門為你寫的:這是一篇對存在于你的 Linux 桌面或服務器之下的 SELinux 系統的介紹,它能夠限制權限,甚至消除程序或守護進程的脆弱性而造成破壞的可能性。

在我開始之前,你應該已經了解的是 SELinux 主要是紅帽 Red Hat Linux 以及它的衍生發行版上的一個工具。類似地, Ubuntu 和 SUSE(以及它們的衍生發行版)使用的是 AppArmor。SELinux 和 AppArmor 有顯著的不同。你可以在 SUSE,openSUSE,Ubuntu 等等發行版上安裝 SELinux,但這是項難以置信的挑戰,除非你十分精通 Linux。

說了這么多,讓我來向你介紹 SELinux。

DAC vs. MAC

Linux 上傳統的訪問控制標準是自主訪問控制Discretionary Access Control(DAC)。在這種形式下,一個軟件或守護進程以 User ID(UID)或 Set owner User ID(SUID)的身份運行,并且擁有該用戶的目標(文件、套接字、以及其它進程)權限。這使得惡意代碼很容易運行在特定權限之下,從而取得訪問關鍵的子系統的權限。

另一方面,強制訪問控制Mandatory Access Control(MAC)基于保密性和完整性強制信息的隔離以限制破壞。該限制單元獨立于傳統的 Linux 安全機制運作,并且沒有超級用戶的概念。

SELinux 如何工作

考慮一下 SELinux 的相關概念:

  • 主體Subjects
  • 目標Objects
  • 策略Policy
  • 模式Mode

當一個主體Subject(如一個程序)嘗試訪問一個目標Object(如一個文件),SELinux 安全服務器SELinux Security Server(在內核中)從策略數據庫Policy Database中運行一個檢查。基于當前的模式mode,如果 SELinux 安全服務器授予權限,該主體就能夠訪問該目標。如果 SELinux 安全服務器拒絕了權限,就會在 /var/log/messages 中記錄一條拒絕信息。

聽起來相對比較簡單是不是?實際上過程要更加復雜,但為了簡化介紹,只列出了重要的步驟。

模式

SELinux 有三個模式(可以由用戶設置)。這些模式將規定 SELinux 在主體請求時如何應對。這些模式是:

  • Enforcing 強制— SELinux 策略強制執行,基于 SELinux 策略規則授予或拒絕主體對目標的訪問
  • Permissive 寬容— SELinux 策略不強制執行,不實際拒絕訪問,但會有拒絕信息寫入日志
  • Disabled 禁用— 完全禁用 SELinux

圖 1:getenforce 命令顯示 SELinux 的狀態是 Enforcing 啟用狀態。

默認情況下,大部分系統的 SELinux 設置為 Enforcing。你要如何知道你的系統當前是什么模式?你可以使用一條簡單的命令來查看,這條命令就是 getenforce。這個命令用起來難以置信的簡單(因為它僅僅用來報告 SELinux 的模式)。要使用這個工具,打開一個終端窗口并執行 getenforce 命令。命令會返回 Enforcing、Permissive,或者 Disabled(見上方圖 1)。

設置 SELinux 的模式實際上很簡單——取決于你想設置什么模式。記住:永遠不推薦關閉 SELinux。為什么?當你這么做了,就會出現這種可能性:你磁盤上的文件可能會被打上錯誤的權限標簽,需要你重新標記權限才能修復。而且你無法修改一個以 Disabled 模式啟動的系統的模式。你的最佳模式是 Enforcing 或者 Permissive。

你可以從命令行或 /etc/selinux/config 文件更改 SELinux 的模式。要從命令行設置模式,你可以使用 setenforce 工具。要設置 Enforcing 模式,按下面這么做:

  • 打開一個終端窗口
  • 執行 su 然后輸入你的管理員密碼
  • 執行 setenforce 1
  • 執行 getenforce 確定模式已經正確設置(圖 2)

圖 2:設置 SELinux 模式為 Enforcing。

要設置模式為 Permissive,這么做:

  • 打開一個終端窗口
  • 執行 su 然后輸入你的管理員密碼
  • 執行 setenforce 0
  • 執行 getenforce 確定模式已經正確設置(圖 3)

圖 3:設置 SELinux 模式為 Permissive。

注:通過命令行設置模式會覆蓋 SELinux 配置文件中的設置。

如果你更愿意在 SELinux 命令文件中設置模式,用你喜歡的編輯器打開那個文件找到這一行:

SELINUX=permissive

你可以按你的偏好設置模式,然后保存文件。

還有第三種方法修改 SELinux 的模式(通過 bootloader),但我不推薦新用戶這么做。

策略類型

SELinux 策略有兩種:

  • Targeted目標 — 只有目標網絡進程(dhcpd,httpd,named,nscd,ntpd,portmap,snmpd,squid,以及 syslogd)受保護
  • Strict嚴格 — 對所有進程完全的 SELinux 保護

你可以在 /etc/selinux/config 文件中修改策略類型。用你喜歡的編輯器打開這個文件找到這一行:

SELINUXTYPE=targeted

修改這個選項為 targeted 或 strict 以滿足你的需求。

檢查完整的 SELinux 狀態

有個方便的 SELinux 工具,你可能想要用它來獲取你啟用了 SELinux 的系統的詳細狀態報告。這個命令在終端像這樣運行:

sestatus -v

你可以看到像圖 4 那樣的輸出。

圖 4:sestatus -v 命令的輸出。

僅是皮毛

和你預想的一樣,我只介紹了 SELinux 的一點皮毛。SELinux 的確是個復雜的系統,想要更扎實地理解它是如何工作的,以及了解如何讓它更好地為你的桌面或服務器工作需要更加地深入學習。我的內容還沒有覆蓋到疑難解答和創建自定義 SELinux 策略。

SELinux 是所有 Linux 管理員都應該知道的強大工具。現在已經向你介紹了 SELinux,我強烈推薦你回到 Linux.com(當有更多關于此話題的文章發表的時候)或看看NSA SELinux 文檔 獲得更加深入的指南。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:三沙 賀州 亳州 滄州 延安 丹東 混顯 資陽

巨人網絡通訊聲明:本文標題《SELinux 入門詳解》,本文關鍵詞  SELinux,入門,詳解,SELinux,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SELinux 入門詳解》相關的同類信息!
  • 本頁收集關于SELinux 入門詳解的相關信息資訊供網民參考!
  • 推薦文章