安全服务 · 零信任 VPN 模块(vpn-Modules)¶
服务分类:安全服务 —— 对应 nfvpn 客户端与 console vpn 管理页
模块定位¶
零信任 VPN 网关:nfarmsd Gateway 模块(--module gateway)提供
WebSocket 认证骨架(2.md §4.3),按设备类型从虚拟 IP 池分配地址,
登记会话并输出审计事件;IP 双向转发为后续迭代(实际流量走 WireGuard 备用通道)。
功能¶
- 认证:WS 升级后 15s 内接收
{token, device_id, device_type}→ JWT 验证(共享JWT_SECRET)→ 设备类型白名单(office/robot/sensor/gateway); - 虚拟 IP 池(172.19.0.0/16 规划):
- office:172.19.19.0/24
- robot:172.19.208.0/20
- sensor:172.19.224.0/19
- 会话登记:
vpn_sessions(内存 + SQLite),断开自动回收 IP; - 审计事件:NATS
audit.vpn.connected/audit.vpn.disconnected(离线降级写vpn_audit表); - 心跳:30s 定时 Ping(定时器驱动,修复心跳反馈风暴);
- 管理面:会话/审计列表接口(console vpn 页)。
接口要点¶
WS ws://{gateway}:9994/vpn/ws 认证 → {success, vpn_ip, session_id}
GET /vpn/sessions 在线会话(admin)
GET /vpn/audit 审计事件(admin)
状态与关联¶
- 已实现:认证骨架 + IP 池 + 心跳 + 审计(nfarmsd v2.3.0);
- 客户端:
nfvpn(Windows Rust + Android 源码,nfvpn connect/status/disconnect/export-wg); - 关联前端:
console/(vpn/ztna/ztlogs 页)。
主备通道规划(双服务器)¶
| 角色 | 通道 | 说明 |
|---|---|---|
| 主服务器 | VPN 主通道 | nfarmsd gateway(9991,规范端口段);办公/机器人/传感器流量默认接入 |
| 从服务器 | 备通道 + WireGuard VPN 可视化 | 同构 gateway(9991 standby);WireGuard 服务端与隧道可视化面板 |
- 主通道原则:主服务器只承担 VPN 主通道;从服务器承载备通道与 WireGuard 接入/可视化;
- 重启窗口(每日 02:00 备份→清缓存→重启,见
../nfos/backup.md):重启前上报告警 (初始化系统告警),客户端(nfvpn 多端点配置)自动 failover 到备通道; 重启完成自检通过后发恢复完成初始化告警,主通道收回流量; - 告警来源:主
nfarmsd.backup.primary/ 从nfarmsd.backup.standby。