# 备份配置 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 编辑器界面,允许您: - **选择频率**:从每日、每周、每月或自定义计划中选择 - **设置时间**:选择备份执行的具体小时和分钟 - **预览计划**:查看备份计划的人类可读描述 ### 任务管理 - **状态跟踪**:每个备份任务跟踪执行状态(待处理、成功、失败) - **错误日志**:失败的备份包含详细的错误消息以便故障排除 此配置在保持严格安全边界的同时启用备份操作,确保备份功能不会被滥用来访问未授权的系统区域。