# 備份配置 Nginx UI 配置中的備份部分控制備份操作的安全性和存取權限。此部分確保備份功能在定義的安全邊界內運行,同時提供靈活的儲存選項。 ## 概述 Nginx UI 提供全面的備份功能,包括: - **手動備份**:透過 Web 介面按需建立備份 - **自動備份**:使用可視化 cron 編輯器的定時備份任務 - **多種備份類型**:支援 Nginx 配置、Nginx UI 配置或自訂目錄備份 - **儲存選項**:本地儲存和 S3 相容的物件儲存 - **安全性**:配置資料使用 AES 加密的加密備份 ## GrantedAccessPath - 類型:`[]string` - 預設值:`[]`(空陣列) - 版本:`>= v2.0.0` 這是備份操作最關鍵的安全設定。它定義了允許進行備份操作的目錄路徑清單,包括備份來源路徑和儲存目標路徑。 ### 用途 `GrantedAccessPath` 設定作為安全邊界: - **防止未授權存取**:將備份操作限制在明確授權的目錄內 - **保護系統檔案**:防止意外備份或存取敏感的系統目錄 - **強制存取控制**:確保所有備份路徑都在管理員定義的邊界內 - **防止路徑遍歷**:阻止嘗試存取允許範圍外的目錄 ### 配置格式 ```ini [backup] GrantedAccessPath = /var/backups GrantedAccessPath = /home/user/backups ``` ### 路徑驗證規則 1. **前綴比對**:使用適當的邊界檢查進行前綴比對驗證路徑 2. **路徑清理**:所有路徑都經過標準化處理以防止目錄遍歷攻擊(如 `../` 序列) 3. **精確邊界**:`/tmp` 允許 `/tmp/backup` 但不允許 `/tmpfoo` 以防止混淆 4. **空預設值**:預設情況下,為了最大安全性,不允許任何自訂目錄備份操作 ### 安全考量 - **預設安全**:預設的空配置確保在明確配置之前不允許任何自訂目錄備份操作 - **明確配置**:管理員必須有意識地定義允許的路徑 - **定期審查**:根據操作需要定期審查和更新允許的路徑 - **最小權限**:僅授予真正需要備份功能的目錄存取權限 ## 備份類型 ### 配置備份 備份 Nginx 或 Nginx UI 配置時: - **加密**:所有配置備份都使用 AES 加密自動加密 - **金鑰管理**:加密金鑰自動產生並與備份檔案一起儲存 - **完整性驗證**:SHA-256 雜湊確保備份完整性 - **中繼資料**:包含版本資訊和時間戳記以提供還原上下文 ### 自訂目錄備份 對於自訂目錄備份: - **無加密**:自訂目錄備份儲存為標準 ZIP 檔案,不加密 - **路徑驗證**:來源目錄必須在 `GrantedAccessPath` 邊界內 - **靈活內容**:可以備份允許路徑內的任何目錄結構 ## 儲存配置 ### 本地儲存 - **路徑驗證**:儲存路徑必須在 `GrantedAccessPath` 邊界內 - **目錄建立**:如果儲存目錄不存在,會自動建立 - **權限**:備份檔案使用安全權限(0600)建立 ### S3 儲存 對於 S3 相容的物件儲存: - **必需欄位**:儲存桶名稱、存取金鑰 ID 和秘密存取金鑰是必需的 - **可選欄位**:可以為自訂 S3 提供商配置端點 URL 和區域 - **未來增強**:計劃在未來版本中實現 S3 上傳功能 ## 自動備份排程 ### 可視化 Cron 編輯器 自動備份使用可視化 cron 編輯器介面,允許您: - **選擇頻率**:從每日、每週、每月或自訂計劃中選擇 - **設定時間**:選擇備份執行的具體小時和分鐘 - **預覽計劃**:檢視備份計劃的人類可讀描述 ### 任務管理 - **狀態追蹤**:每個備份任務追蹤執行狀態(待處理、成功、失敗) - **錯誤日誌**:失敗的備份包含詳細的錯誤訊息以便故障排除 此配置在保持嚴格安全邊界的同時啟用備份操作,確保備份功能不會被濫用來存取未授權的系統區域。