萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

SELinux 安全機制有哪些?TE 型別強制 + MLS 多層級安全雙重防護架構

SELinux (Security-Enhanced Linux) 由美國國家安全局 (NSA) 開發,是 Linux 核心強制存取控制 (MAC) 的參考實作。其安全架構建立在兩大核心機制之上:型別強制 (Type Enforcement, TE) 與 多層級安全 (Multi-Level Security, MLS),提供比傳統 DAC (自主存取控制) 更細緻、更強制的安全防護。

核心機制一:型別強制 (Type Enforcement, TE) — 主要機制

  • 核心概念: 每個行程 (主體) 和檔案/資源 (客體) 都被賦予一個「型別」標籤 (Type Label)。政策規則定義「哪個型別的行程可以對哪個型別的客體執行什麼操作」。
  • 政策規則範例: allow httpd_t httpd_sys_content_t : file { read getattr }; (允許 httpd_t 型別行程讀取 httpd_sys_content_t 型別檔案)。
  • 特性:
    • 強制性:使用者 (含 root) 無法覆蓋政策規則。
    • 最小權限:預設拒絕,僅明確允許的操作才能執行。
    • 型別轉換:行程執行特定程式 (如 httpd_exec_t) 時可轉換型別 (如 → httpd_t),實現領域分離。
  • 適用場景: 絕大多數安全需求 (Web 伺服器、資料庫、容器隔離、系統服務強化),TE 政策最實用、最成熟。

核心機制二:多層級安全 (Multi-Level Security, MLS) — 選用機制

  • 起源: 軍事/政府機密分級系統 (機密、秘密、絕密...),Bell-LaPadula 模型。
  • SELinux 實作: 安全上下文擴展包含「敏感度」與「類別」:
    user:role:type:sensitivity[:category,...][-sensitivity[:category,...]]
    範例:system_u:system_r:httpd_t:s0:c0.c1023
  • 支配關係:
    • dom (支配):主體敏感度 ≥ 客體敏感度,且主體類別 ⊇ 客體類別 → 可「讀取」。
    • domby (被支配):主體敏感度 ≤ 客體敏感度,且主體類別 ⊆ 客體類別 → 可「寫入」。
    • eq (相等):敏感度與類別完全相同 → 可讀可寫。
    • incomp (不可比較):類別集合無包含關係 → 無存取權。
  • 單一層級 vs 多層級: 大多數行程/客體只有單一安全層 (低=高);可信任主體 (Trusted Subject) 可跨層級降密 (Downgrade) 資訊。
  • 啟用方式: 安裝 selinux-policy-mls 套件,設定 /etc/selinux/config 中 SELINUXTYPE=mls,重開機 (需重新標記檔案系統)。

TE vs MLS 選擇指南

維度Type Enforcement (TE)Multi-Level Security (MLS)
複雜度中等,政策可讀性較好極高,標籤管理困難
適用範圍通用伺服器、容器、桌面、嵌入式軍事、情報、多密級共處系統
預設啟用是 (targeted/mcs 政策)否 (需顯式切換 mls 政策)
維護成本低極高

其他輔助機制

  • 角色型存取控制 (RBAC): 透過角色 (Role) 限制使用者可轉換的型別/網域,輔助 TE。
  • 多類別安全 (MCS, Multi-Category Security): MLS 簡化版,僅使用類別 (c0, c1...),無敏感度層級,用於 sVirt/KVM 虛擬機隔離 (s0:cXXX)。
  • Booleans (布林開關): 動態切換政策規則 (如 httpd_can_network_connect),無需重編政策。
SELinux 架構圖

實務建議

  • 生產環境預設使用 Targeted 政策 (TE 為主,MCS 隔離容器),即開即用,平衡安全與可用性。
  • 遇到 SELinux 拒絕訊息 (AVC denial) → 使用 audit2allow 產生允許規則模組,或調整檔案標籤 (restorecon/chcon),切勿直接設為 Permissive/Disabled。
  • 政府/軍事/金融核心系統若需多密級隔離,才投入 MLS 架構建置。

SELinux 雙重機制 (TE+MLS) 為 Linux 提供了企業級、軍用級的強制存取控制能力,正確配置是現代 Linux 系統硬化的關鍵。

copyright © 萬盛學電腦網 all rights reserved