SELinux (Security-Enhanced Linux) 由美國國家安全局 (NSA) 開發,是 Linux 核心強制存取控制 (MAC) 的參考實作。其安全架構建立在兩大核心機制之上:型別強制 (Type Enforcement, TE) 與 多層級安全 (Multi-Level Security, MLS),提供比傳統 DAC (自主存取控制) 更細緻、更強制的安全防護。
allow httpd_t httpd_sys_content_t : file { read getattr }; (允許 httpd_t 型別行程讀取 httpd_sys_content_t 型別檔案)。httpd_exec_t) 時可轉換型別 (如 → httpd_t),實現領域分離。user:role:type:sensitivity[:category,...][-sensitivity[:category,...]]system_u:system_r:httpd_t:s0:c0.c1023dom (支配):主體敏感度 ≥ 客體敏感度,且主體類別 ⊇ 客體類別 → 可「讀取」。domby (被支配):主體敏感度 ≤ 客體敏感度,且主體類別 ⊆ 客體類別 → 可「寫入」。eq (相等):敏感度與類別完全相同 → 可讀可寫。incomp (不可比較):類別集合無包含關係 → 無存取權。selinux-policy-mls 套件,設定 /etc/selinux/config 中 SELINUXTYPE=mls,重開機 (需重新標記檔案系統)。| 維度 | Type Enforcement (TE) | Multi-Level Security (MLS) |
|---|---|---|
| 複雜度 | 中等,政策可讀性較好 | 極高,標籤管理困難 |
| 適用範圍 | 通用伺服器、容器、桌面、嵌入式 | 軍事、情報、多密級共處系統 |
| 預設啟用 | 是 (targeted/mcs 政策) | 否 (需顯式切換 mls 政策) |
| 維護成本 | 低 | 極高 |
httpd_can_network_connect),無需重編政策。
audit2allow 產生允許規則模組,或調整檔案標籤 (restorecon/chcon),切勿直接設為 Permissive/Disabled。SELinux 雙重機制 (TE+MLS) 為 Linux 提供了企業級、軍用級的強制存取控制能力,正確配置是現代 Linux 系統硬化的關鍵。