Linux 安全模組使用

Linux 安全模組 (LSM) 框架提供了一種機制,允許新的核心擴充套件掛接各種安全檢查。“模組”這個名稱有點用詞不當,因為這些擴充套件實際上不是可載入的核心模組。 相反,它們是在構建時透過 CONFIG_DEFAULT_SECURITY 選擇的,並且可以在啟動時透過 "security=..." 核心命令列引數覆蓋,前提是給定的核心中構建了多個 LSM。

LSM 介面的主要使用者是強制訪問控制 (MAC) 擴充套件,它們提供全面的安全策略。 示例包括 SELinux、Smack、Tomoyo 和 AppArmor。 除了更大的 MAC 擴充套件之外,還可以使用 LSM 構建其他擴充套件,以便在 Linux 本身的核心功能中無法使用這些調整時,對系統操作進行特定更改。

Linux 功能模組將始終包含在內。 之後可以是任意數量的“次要”模組,以及最多一個“主要”模組。 有關功能的更多詳細資訊,請參閱 Linux 手冊頁專案中的 capabilities(7)

可以透過讀取 /sys/kernel/security/lsm 找到活動安全模組的列表。 這是一個逗號分隔的列表,並且始終包含功能模組。 該列表反映了進行檢查的順序。 功能模組始終是第一個,然後是任何“次要”模組(例如 Yama),然後是配置的一個“主要”模組(例如 SELinux)。

與“主要”安全模組關聯的程序屬性應使用 /proc/.../attr 中的特殊檔案進行訪問和維護。 安全模組可以在其中維護一個模組特定的子目錄,以模組命名。 /proc/.../attr/smack 由 Smack 安全模組提供,包含其所有特殊檔案。 /proc/.../attr 中的檔案直接保留為提供子目錄的模組的遺留介面。