Appearance
系统设置(System Settings)
你来这里要完成什么
当你需要做“系统级运维与安全收敛”时,用这一页:
- 控制后台登录会话(减少账号泄露风险)
- 备份/恢复数据库(迁移、回滚、事故恢复)
- 开启定时备份并接入 Webhook 告警
- 下载诊断包(把现场信息打包给维护人员)
- 维护 IP 白名单(用于异常判定与安全基线)
提示:这里的设置主要影响“Web 管理后台”,并不等同于 OpenVPN 客户端认证。
常见场景与建议操作顺序
- 配置会话策略(TTL / 空闲超时 / 单点登录),并确认不会误踢正常运维
- 启用数据库定时备份 + 设置保留策略
- (可选)配置 Webhook 告警并点击测试
- 遇到故障时先下载“诊断包”再做变更
- 需要恢复数据库时,先备份当前状态再执行恢复
- 安全策略变更(白名单/账户)后,验证访问与登录链路
这一页包含哪些能力
你可以在这里完成:会话策略、数据库备份/恢复、定时备份、Webhook 告警、诊断包、IP 白名单、设备与连接日志、账户安全(改密/改名)。
主要功能区块
- 会话安全:会话 TTL / 空闲超时 / 单点登录(同账号只保留一个会话)/ 登出所有会话。
- 数据库备份与恢复(手动):备份导出、恢复导入。
- 数据库自动备份(定时):周期执行、保留策略、文件管理。
- Webhook 告警:备份结果/测试通知。
- 诊断包:一键打包关键日志与健康摘要(已做最小脱敏)。
- IP 白名单:维护允许访问 Web 管理的源 IP(支持 IPv4/IPv6 单个地址;不支持 CIDR 网段)。
- 设备管理:查看与维护设备信息(用于审计/授权等)。
- 连接日志:查看用户连接事件与历史记录。
- 账户安全:修改用户名/密码。
配置项速查(system_config)
以下配置由系统写入数据库 users.db 的 system_config 表(可通过页面 UI 修改)。
会话策略
SESSION_TTL_MINUTES:会话绝对 TTL(分钟)。默认 1440(24 小时),最小 5,最大 10080(7 天)。SESSION_IDLE_TIMEOUT_MINUTES:会话空闲超时(分钟)。默认未设置时等于SESSION_TTL_MINUTES;设置为0表示关闭空闲超时(仍受绝对 TTL 限制)。SINGLE_SESSION_PER_USER:是否启用“同账号单会话”。true/1/on开启;默认关闭。
数据库自动备份
DB_BACKUP_ENABLED:是否启用自动备份(true/false)。默认关闭。DB_BACKUP_INTERVAL_HOURS:备份周期(小时)。默认 24,范围 1~168。DB_BACKUP_KEEP_COPIES:保留份数。默认 14,范围 1~365。DB_BACKUP_MAX_TOTAL_MB:备份文件最大总占用(MB)。默认 1024,范围 50~10240。
Webhook 告警
ALERT_WEBHOOK_ENABLED:是否启用 Webhook。ALERT_WEBHOOK_URL:Webhook 接收地址。ALERT_WEBHOOK_EVENTS:事件白名单(JSON 数组)。常用:["db_backup_success", "db_backup_failure", "test"]。
功能说明与使用指南
1) 会话安全(后台 Web 登录)
用途:控制 Web 管理后台的登录会话有效期,降低账号泄露后的风险。
- 会话 TTL(绝对有效期):超过 TTL 必须重新登录。
- 空闲超时:长时间不操作会被登出(建议开启)。
- 单点登录(同账号单会话):开启后,同一账号在新设备登录会自动撤销旧会话。
- 登出所有会话:用于紧急处置(例如怀疑管理员账号泄露)。
注意:这些策略只影响 Web 管理后台,不影响 OpenVPN 客户端连接。
2) 数据库备份与恢复(手动)
用途:导出/导入 users.db,用于系统迁移、回滚、事故恢复。
- 备份:生成 zip(包含
users.db)并由浏览器下载。 - 恢复:上传 zip 或
.db文件导入;属于破坏性操作,会覆盖当前库。 - 推荐流程:恢复前先备份当前状态(双保险),再执行恢复。
3) 数据库自动备份(定时)
用途:在系统内自动周期性生成备份文件,并按“保留份数 + 总大小上限”清理。
- 设置项:启用开关、周期(小时)、保留份数、最大总占用(MB)。
- 运行方式:后台进程内轻量 scheduler,默认每 10 分钟检查一次是否到期。
- 文件位置:容器内
/etc/openvpn/backups/db/。
运维建议:如果你希望“容器重建后备份文件不丢”,请把 /etc/openvpn/backups 作为 volume 挂载到宿主机持久化目录。
4) Webhook 告警
用途:把关键事件(例如备份成功/失败)推送到外部告警系统。
- 发送规则:只有在
ALERT_WEBHOOK_ENABLED=true且事件命中ALERT_WEBHOOK_EVENTS白名单时才会发送。 - 事件名:
test:点击“测试 Webhook”时发送db_backup_success:数据库备份成功db_backup_failure:数据库备份失败
5) 诊断包(排障)
用途:一键下载 zip,便于你把“可复现的现场信息”发给维护人员或留档审计。
包含内容(概览):
- 系统健康摘要(已做最小脱敏:不落地用户名、不落地绝对路径)
- 关键日志 tail(openvpn/status/client-connect/client-disconnect 等)
- 备份设置(不包含 webhook URL,仅包含
url_set: true/false) - 会话策略摘要(TTL / 空闲超时 / 单点登录开关)
6) 登录历史 & 异常检测(后台 Web 登录)
这里的“登录历史/异常”指的是 Web 管理后台的登录(不是 OpenVPN 客户端 auth-user-pass)。
异常判定逻辑:满足任一条件即标记异常:
- 登录结果为“拒绝”(失败登录)
- 登录 IP 不在 IP 白名单中
提示:如果白名单为空,那么“所有带 IP 的记录”都会被标记为异常(因为都不在白名单)。如需减少误报,请先维护白名单。
7) IP 白名单
用途:给 Web 管理后台提供“信任来源 IP”基线,用于异常检测与安全收敛。
- 支持:IPv4 / IPv6 单个地址
- 不支持:CIDR 网段(例如
192.168.0.0/24) - 存储:
/etc/openvpn/ip_whitelist.json
8) OpenVPN 账号防爆破(锁定)
OpenVPN 客户端账号的“失败次数过多锁定”属于 VPN 认证链路能力,更多使用与解锁操作见:
- 用户状态说明与解锁:用户管理
本页建议:将“Web 管理后台登录异常”和“OpenVPN 账号锁定”区分理解,避免混淆。
页面流程图(数据库备份/恢复)
mermaid
flowchart TD
A[打开「系统设置」] --> B[展示系统维护入口]
B --> C{选择动作}
C -->|数据库备份| D[点击「备份」] --> E[浏览器下载备份文件]
C -->|数据库恢复| F[选择备份文件并点击「恢复」] --> G{恢复结果}
G -->|成功| H[提示恢复成功(必要时刷新/重新登录)] --> B
G -->|失败| I[提示恢复失败并保留当前页面] --> B页面流程图(定时备份 + Webhook)
mermaid
flowchart TD
A[打开「系统设置」] --> B[进入「数据库自动备份」卡片]
B --> C[配置启用/周期/保留/容量上限]
C --> D[保存设置]
D --> E{立即手动执行一次备份?}
E -->|是| F[点击「立即备份」] --> G[生成备份文件 + 更新列表]
E -->|否| H[等待定时任务触发]
G --> I{Webhook 是否启用且允许该事件?}
I -->|是| J[发送 webhook 事件]
I -->|否| K[不发送]