Linux SELinux 介紹詳解

Linux SELinux 介紹詳解php


SElinux 簡介linux

  SElinux (Security Enhanced Linux)是由美國國家安全局(NSA)開發的。它已被植入到了Linux系統的內核當中,主要做用是經過安全策略將系統應用軟件及用戶程序對系統文件目錄的訪問限制。已MAC(Mandatory Access Control)的委任試存儲方式做爲安全處理。express


SElinux 運做模式安全

  • 主體(Subject)
    • 主體至關於系統中的執行程序process,SElinux主要管理的就是程序。
  • 目標(Object)
    • 系統文件以及目錄。
  • 策略(Policy)
    • 因爲程序目錄數量比較多,所以SELinux會一局某些服務來定製基本的存取安全策略。CentOS 7.x裏面僅有提供三個主要的策略分別是:
      • targeted:針對網絡服務限制較多,針對本地限制較少,是預設的策略;
      • minimum:由 target 修訂而來,只針對選擇的程序來保護!
      • mls:完整的 SELinux 限制,限制方面較爲嚴格。

運做圖:bash


SElinux 三種身份網絡

查看當前目錄下的SElinux信息(前提SElinux已經打開)dom

# 查看Selinux信息
[root@study ~]# ls -Z
-rw-------. root root system_u:object_r:admin_home_t:s0     anaconda-ks.cfg
-rw-r--r--. root root system_u:object_r:admin_home_t:s0     initial-setup-ks.cfg
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 regular_express.txt
Identify:role:type
身份識別:角色:類型
  • 身份識別(Identify)
  • 表明:相當於帳號方面的身份識別!主要的身份識別常見有底下幾種常見的類型:
    • unconfined_u:不受限的用戶,也就是說,該檔案來自於不受限的程序所產生的!通常來說,我們使用可登入帳號來取得 bash 之後, 預設  的 bash 環境是不受 SELinux 管制的~因為 bash 並不是什麼特別的網路服務!所以,在這個不受 SELinux 所限制的 bash 程序所產生的檔案, 其身份識別大多就是 unconfined_u 這個『不受限』用戶囉!
    • system_u:系統用戶,大部分就是系統本身產生的檔案囉!
  • 角色(Role)
  • 表明:透過角色欄位,我們能夠知道這個資料是屬於程序、檔案資源還是表明使用者。通常的角色有:
    • object_r:表明的是檔案或目錄等檔案資源,這應該是最常見的囉;
    • system_r:表明的就是程序啦!不過,通常使用者也會被指定成為 system_r 喔!
  • 類型(Type)
  • 表明:在預設的 targeted 政策中, Identify 與 Role 欄位基本上是不重要的!重要的在於這個類型 (type) 欄位! 基本上,一個主體程序能不能讀取到這個檔案資源,與類型欄位有關!而類型欄位在檔案與程序的定義不太相同,分別是:
    • type在檔案資源 (Object) 上面稱為類型 (Type);
    • domain:在主體程序 (Subject) 則稱為領域 (domain) 了!

 SElinux 三種啓動模式spa

  • enforcing:強制模式、表明SELinux運行中,且已經正確的開放限制 domain/type。
  • permissive:寬容模式、表明SELinux運行中,不過金會有警告信息並不會直接限制 domian/type。
  • disabled:關閉模式、SELinux 關閉狀態。


 來源地址:http://linux.vbird.org/linux_basic/0440processcontrol.php#selinuxcode

相關文章
相關標籤/搜索