Skip to content

系统设置(System Settings)

你来这里要完成什么

当你需要做“系统级运维与安全收敛”时,用这一页:

  • 控制后台登录会话(减少账号泄露风险)
  • 备份/恢复数据库(迁移、回滚、事故恢复)
  • 开启定时备份并接入 Webhook 告警
  • 下载诊断包(把现场信息打包给维护人员)
  • 维护 IP 白名单(用于异常判定与安全基线)

提示:这里的设置主要影响“Web 管理后台”,并不等同于 OpenVPN 客户端认证。

常见场景与建议操作顺序

  1. 配置会话策略(TTL / 空闲超时 / 单点登录),并确认不会误踢正常运维
  2. 启用数据库定时备份 + 设置保留策略
  3. (可选)配置 Webhook 告警并点击测试
  4. 遇到故障时先下载“诊断包”再做变更
  5. 需要恢复数据库时,先备份当前状态再执行恢复
  6. 安全策略变更(白名单/账户)后,验证访问与登录链路

这一页包含哪些能力

你可以在这里完成:会话策略、数据库备份/恢复、定时备份、Webhook 告警、诊断包、IP 白名单、设备与连接日志、账户安全(改密/改名)。

主要功能区块

  • 会话安全:会话 TTL / 空闲超时 / 单点登录(同账号只保留一个会话)/ 登出所有会话。
  • 数据库备份与恢复(手动):备份导出、恢复导入。
  • 数据库自动备份(定时):周期执行、保留策略、文件管理。
  • Webhook 告警:备份结果/测试通知。
  • 诊断包:一键打包关键日志与健康摘要(已做最小脱敏)。
  • IP 白名单:维护允许访问 Web 管理的源 IP(支持 IPv4/IPv6 单个地址;不支持 CIDR 网段)。
  • 设备管理:查看与维护设备信息(用于审计/授权等)。
  • 连接日志:查看用户连接事件与历史记录。
  • 账户安全:修改用户名/密码。

配置项速查(system_config)

以下配置由系统写入数据库 users.dbsystem_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[不发送]

跨域通 — 企业级 OpenVPN 管控平台