备份配置
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
路径验证规则
- 前缀匹配:使用适当的边界检查进行前缀匹配验证路径
- 路径清理:所有路径都经过标准化处理以防止目录遍历攻击(如
../
序列) - 精确边界:
/tmp
允许/tmp/backup
但不允许/tmpfoo
以防止混淆 - 空默认值:默认情况下,为了最大安全性,不允许任何自定义目录备份操作
安全考虑
- 默认安全:默认的空配置确保在明确配置之前不允许任何自定义目录备份操作
- 显式配置:管理员必须有意识地定义允许的路径
- 定期审查:根据操作需要定期审查和更新允许的路径
- 最小权限:仅授予真正需要备份功能的目录访问权限
备份类型
配置备份
备份 Nginx 或 Nginx UI 配置时:
- 加密:所有配置备份都使用 AES 加密自动加密
- 密钥管理:加密密钥自动生成并与备份文件一起保存
- 完整性验证:SHA-256 哈希确保备份完整性
- 元数据:包含版本信息和时间戳以提供恢复上下文
自定义目录备份
对于自定义目录备份:
- 无加密:自定义目录备份存储为标准 ZIP 文件,不加密
- 路径验证:源目录必须在
GrantedAccessPath
边界内 - 灵活内容:可以备份允许路径内的任何目录结构
存储配置
本地存储
- 路径验证:存储路径必须在
GrantedAccessPath
边界内 - 目录创建:如果存储目录不存在,会自动创建
- 权限:备份文件使用安全权限(0600)创建
S3 存储
对于 S3 兼容的对象存储:
- 必需字段:存储桶名称、访问密钥 ID 和秘密访问密钥是必需的
- 可选字段:可以为自定义 S3 提供商配置端点 URL 和区域
自动备份调度
可视化 Cron 编辑器
自动备份使用可视化 cron 编辑器界面,允许您:
- 选择频率:从每日、每周、每月或自定义计划中选择
- 设置时间:选择备份执行的具体小时和分钟
- 预览计划:查看备份计划的人类可读描述
任务管理
- 状态跟踪:每个备份任务跟踪执行状态(待处理、成功、失败)
- 错误日志:失败的备份包含详细的错误消息以便故障排除
此配置在保持严格安全边界的同时启用备份操作,确保备份功能不会被滥用来访问未授权的系统区域。