自 Linux 核心 5.13 版本以來,Landlock 安全模組一直可用,但由於其複雜的 API,儘管它具有強大的沙盒功能,但採用率一直有限。一款名為 Landrun 的新工具旨在透過簡單的命令列介面使 Landlock 的安全功能變得易於使用。
Landrun 是一款用 Go 語言編寫的輕量級 CLI 工具,它使非特權程序能夠建立具有精細檔案系統和網路訪問控制的安全沙盒。與需要 root 許可權或複雜容器設定的傳統沙盒解決方案不同,Landrun 利用核心原生的 Landlock LSM(Linux 安全模組)提供強大的安全性,同時保持最小的開銷。
為非特權程序簡化安全性
Landrun 透過使 Landlock 強大但複雜的 API 對日常使用者可用,解決了 Linux 安全工具中的一個重要空白。該工具允許精確控制程序可以從哪些目錄讀取、寫入或執行檔案,以及它可以繫結或連線到哪些 TCP 埠。
「Linux Landlock 是一個核心原生安全模組,允許非特權程序對自己進行沙盒化 - 但沒有人使用它,因為 API 太...難了!」
這種安全方法讓人想起 OpenBSD 的 pledge 和 unveil 系統呼叫,在討論中許多使用者稱讚它們的簡單性。雖然由於 Linux 嚴格的 ABI 相容性要求,Landlock 的實現必然更為複雜,但 Landrun 抽象了這種複雜性,提供了一個更易於使用的介面。
與現有解決方案的比較
社群討論強調了 Landrun 與現有沙盒工具(如 Firejail、Bubblewrap 和 nsjail)之間的幾個比較。雖然這些工具通常使用 Linux 名稱空間進行隔離,但 Landrun 使用 Landlock 提供了一些明顯的優勢。
名稱空間雖然強大,但可能引入大量攻擊面,並且通常需要對想要沙盒化的應用程式進行更實質性的更改。它們還經常需要 root 許可權或特殊的系統配置。相比之下,Landlock 專門設計用於非特權程序,並與現有安全機制良好整合。
幾位使用者指出,Firejail 最近也添加了 Landlock 支援,表明整個 Linux 生態系統對這種安全機制的興趣日益增長。
網路限制和未來發展
Landrun 最受討論的方面之一是其網路限制功能。目前,Landrun 支援基於 TCP 埠的限制(繫結和連線),但僅在 Linux 核心 6.8 或更高版本且 Landlock ABI v5 上支援。
開發人員已表示計劃在未來版本中擴充套件網路過濾功能,包括 UDP 支援和可能更精細的控制。這種漸進式的功能開發方法與 Landlock 在 Linux 核心中的演變一致。
一些使用者對每個程序的防火牆設定表示了興趣,指出這一直是 Linux 安全中的一個長期挑戰。雖然 Landrun 沒有完全解決這個問題,但其 TCP 限制為需要受控網路訪問的應用程式提供了朝這個方向邁出的一步。
Landrun 功能特點
- 使用 Landlock LSM 的核心級安全性
- 輕量級且快速執行
- 對目錄的細粒度訪問控制
- 支援讀取和寫入路徑
- 路徑特定的執行許可權
- TCP 網路訪問控制(繫結和連線)
核心相容性表格
功能 | 最低核心版本 | Landlock ABI 版本 |
---|---|---|
基本檔案系統沙盒 | 5.13 | 1 |
檔案引用/重新分配控制 | 5.19 | 2 |
檔案截斷控制 | 6.2 | 3 |
網路 TCP 限制 | 6.7 | 4 |
特殊檔案的 IOCTL | 6.10 | 5 |
實際應用
社群成員分享了 Landrun 的各種用例,從使用選擇性網路許可權保護 Web 伺服器到在受控環境中執行不受信任的程式碼。一位使用者提到使用類似工具來限制第三方軟體的構建,突顯了這種工具對日常開發工作流程的實際安全益處。
對於桌面使用者,一些人將其與 macOS 的許可權系統進行了比較,在該系統中,應用程式必須請求訪問特定目錄的許可權。雖然 Landrun 目前沒有實現互動式許可權系統,但它提供了可以在未來實現此類功能的基礎機制。
該工具的輕量級特性和沒有依賴性使其對那些想要新增額外安全層而不需要完全容器化開銷的安全意識使用者特別有吸引力。
隨著 Linux 繼續發展其安全功能,像 Landrun 這樣的工具在使高階安全功能對更廣泛的受眾可用方面發揮著至關重要的作用。透過簡化 Landlock 的介面,Landrun 幫助彌合了強大的核心級安全機制與實際日常使用場景之間的差距。
參考:landrun