Bor v0.8.0 版本說明 / 新功能

Bor v0.8.0 是一套開源的 Linux 桌面政策管理系統,擴充了管理功能、現代化了管理介面,並加強了安全姿態。本次發行重點在於提升受管理政策的應用覆蓋率,以及改善 fleet 管理員的操作效率。

新增政策類型

Bor v0.8.0 新增支援三種政策類型,讓管理員能在整個 Linux 桌面 fleet 中強制套用設定。

Thunderbird

Mozilla Thunderbird 現在可以使用與 Firefox ESR 相同的機制進行管理。Bor 代理會寫入受管理的 policies.json 檔案,該檔案是所有綁定政策的合併結果。若最後一項政策被移除,會還原原始檔案。此強制方式同時相容 Flatpak 與 RPM/DEB 安裝。為防止未授權變更,代理使用防篡改監控器偵測外部編輯,並立即還原受管理檔案。

Microsoft Edge for Business

對於在 Linux 上使用 Microsoft Edge 的 fleet,Bor 現在支援在每個 Edge 受管理政策目錄中建立 bor_managed.json 檔案。Web UI 提供樹狀編輯器,內含完整的 Edge 政策目錄、JSON 驗證,以及啟用前的設定預覽。

Firewalld Zones

Bor 現在管理已註冊節點上的 firewalld 區域,涵蓋服務、埠、轉發埠、rich rules、masquerade、介面、來源與區域目標。代理將區域 XML 寫入 /etc/firewalld/zones/,使用 firewall-cmd --check-config 進行配置驗證,並重新載入 firewalld。這些區域檔案同樣受到防篡改監控器保護。

Web UI 大改版

管理介面已使用 PatternFly 6 重新設計,以提升可用性與無障礙性(WCAG 2.2 AA)。

改善的導覽與使用者體驗

  • 路由頁面: 每個頁面現在都有唯一的 URL,支援瀏覽器的前進/後退與深層連結。全域錯誤邊界可防止白屏崩潰。
  • 全頁政策編輯器: 政策編輯器從巢狀 modal 移至專屬路由頁面(/policies/:id/edit),提供更大的樹狀編輯空間。
  • 可擴充清單: 節點與合規清單現在使用伺服器端分頁、過濾與排序,以維持千級節點 fleet 的效能。
  • 安全護欄: UI 現在加入未儲存變更保護、破壞性操作(如刪除資源)的確認對話框,以及 Chrome/Edge 值的 JSON 驗證。
  • 儀表板強化: 儀表板現在提供分組側邊欄導覽與統計磁磚,讓管理員可直接點擊「離線」等項目,直接跳至已過濾的 Nodes 頁面。

生活品質改進

  • 兩步登入: 登入表單現在加入密碼顯示切換與即時 Caps Lock 警告。
  • MFA 管理: 多因素驗證(MFA)的備用代碼現在可複製或下載。
  • 政策管理: 政策可直接在清單檢視中釋出或撤回。

安全加固

Bor v0.8.0 包含專屬的安全通道,以保護伺服器與代理。

  • 身分與存取: 代理身分現在嚴格綁定於 mTLS 用戶端憑證。伺服器上的 MFA 與 RBAC 強制路徑已加固。
  • 加密更新: 舊版 SHA-256 加密的 TOTP 密鑰會在首次讀取時透明遷移至 HKDF 派生的加密方式。
  • 基礎設施保護: Ubuntu PPA 與 Fedora COPR 套件庫匯入工具現在僅跟隨白名單的重新導向目標,以阻止基於重新導向的 SSRF。
  • 稽核日誌: 稽核日誌 CSV 匯出現在防止試算表公式注入。
  • 憑證管理: 初始管理員密碼不再印在伺服器日誌(journald)中;改寫入僅限 root 存取的檔案。
  • TLS 管理: 當伺服器 TLS 憑證的主體備選名稱(SAN)不再符合設定的主機名稱時,憑證會自動重新產生。
  • 相依性更新: 所有開放的 Dependabot 警報皆已解決,包含 react-router RSC CSRF 建議(GHSA-qwww-vcr4-c8h2)。

技術實作與平台更新

基於 Proto 的目錄

為維持單一真實來源,Firefox、Thunderbird、Chrome 與 Edge 的政策目錄現在由 protobuf 註解產生。此共享 schema 供伺服器、代理與前端使用。

Polkit 變數條件

Polkit 規則現在支援透過 action.lookup() 的變數條件,允許規則依動作變數匹配(例如僅允許可移除磁碟的掛載)。此外,單一規則中的多個 action ID 現在正確以 || 連接。

平台堆疊

  • 前端: React 19.2 與 react-router 8.3。
  • 後端/代理: gRPC 1.82.1 與 golang.org/x/crypto 0.52.0。
  • 開發: 前端開發現在需要 Node.js 22.22 以上。

升級說明

管理員必須將代理升級至 v0.8.0,才能支援新加入的 Thunderbird、Edge 與 Firewalld 政策類型。舊版代理會忽略不認識的政策類型。protobuf 政策 schema 已加入 thunderbird.protofirewalld.proto,並更新了 polkit 與 edge 訊息;任何基於 proto/policy/ 的外部工具都必須重新產生。

社群見解

Hacker News 的使用者討論了 Bor 的潛在應用與替代方案。部分管理非營利筆電的管理員正在尋求支援 Linux Mint 的 Cinnamon 桌面環境以及執行自訂腳本的想法。

其他技術問題聚焦於政策執行模型,特別是代理如何處理配置漂移與跨來源衝突的政策。一位使用者指出 inotify 漂移捕捉機制在使用者察覺前即恢復變更的效能。

"Nice work on the mTLS/gRPC push design — the inotify drift-catch on parent dirs is a clean answer to the 'revert happens before the user notices' problem, and I like that the audit trail is server-side."

對專案的其他建議包括支援 SCAP(Security Content Automation Protocol)以執行 DISA STIG,及與 Wazuh 等 fleet 治理工具的潛在整合。

Sources