Security
SELinux 與 AppArmor 適用性
我正在閱讀一些關於 LSM 實現的入門知識,所以最終我將深入研究
AppArmor
和SELinux
.我知道這個討論,但這並沒有很清楚地說明我對這兩個 LSM 實現的一個問題:
這是不是一個事實:
- SELinux 必須在系統範圍內應用(因此
auto-relabeling
第一次啟動的過程需要與文件系統掃描一樣多的時間)- AppArmor 提供了僅在您喜歡的那些程序/腳本上定義策略的靈活性?- 通過互動式審計過程)
(?)
正如我對另一個問題的回答,AppArmor 和 SELinux 之間的主要區別在於標籤。AppArmor 是基於路徑的,而 SELinux 為每個對象添加了額外的標籤。這就是為什麼在首次啟動時自動重新標記以應用預設文件標籤的原因。否則就不可能為文件訪問編寫有意義的策略,因為每個文件都被認為是相同的(由於具有相同的標籤)。
AppArmor 和 SELinux 都有不受限制的域,它們不限制程序。兩個系統也都有抱怨模式(在 SELinux 中稱為許可域),它只記錄策略違規但不強制執行策略。AppArmor 和 SELinux 都在系統範圍內啟用,並且可以在兩個系統中執行不受安全模組限制的程序。
在自動策略生成方面,兩個系統都有相似的工具和機制。
AppArmor 配置文件可以使用
aa-genprof
和生成aa-logprof
。aa-genprof
創建一個基本配置文件並將其設置為抱怨模式。執行程序後,可以從日誌文件中生成規則。SELinux 工具是
policygentool
和audit2allow
. 主要區別還是文件標籤,但policygentool
可以自動為程序數據(var)、配置文件和日誌文件創建文件類型。然後可以在許可模式下載入策略,然後可以使用audit2allow
.