Skip to content

NetPanel V0.3 更新说明 ​

从 V0.2 升级到 V0.3 的更新说明。


🎉 版本亮点 ​

V0.3 是 NetPanel 迈向「安全网关 + 智能选线」形态的关键版本。本版本完成了四件大事:

  1. 界面全面现代化 —— 白色极简风格 + 亮/暗主题切换,交互体验焕然一新;
  2. WAF 安全中心落地 —— 从「规则过滤」升级为「攻击事件分析 + 态势统计 + 封禁联动」的完整安全运营能力;
  3. 智能选线闭环打通 —— 探测、测速、选线、切换、重绑全链路自动化,并接入 MCP 提供可编程的探测管理与异常诊断;
  4. 全链路安全加固 —— 修复认证绕过、越权提权、SSRF 等高危漏洞,引入会话签名、令牌吊销、登录限流等纵深防御机制。

🔐 安全加固(重点) ​

本版本针对多次安全评审发现的漏洞进行了系统性修复,强烈建议所有 V0.2 用户立即升级。

认证与授权 ​

  • 修复「认证绕过」高危漏洞:此前 Caddy 构造的 page_login 路由仅用正则判断 Cookie 是否存在,任意人设置 netpanel_session=x 即可绕过登录访问受保护站点。现统一收敛为 pkg/session 包,采用 HMAC-SHA256 签名 + 有效期校验,并使用 hmac.Equal 定长比较防止时序侧信道攻击。
  • 修复「越权提权」漏洞:此前 /admin/* 系列接口仅校验「是否登录」,权限判断依赖 currentUsername != "admin" 这类用户名字面量比较。由于用户名可被修改,任意普通用户可通过创建/修改用户接口给自己授予管理员权限。现统一改为基于 JWT 中 is_admin 声明的 AdminOnly 中间件,并将高危接口全部收口到管理员路由组。
  • 令牌即时吊销机制(TokenVersion):User 表新增 token_version 字段,改密、禁用、降权时自动 +1,使该账号所有已签发 JWT 立即失效(此前最长 24 小时内旧令牌仍有效)。
  • JWT 签名算法加固:显式校验 HMAC 签名算法,防止 alg=none 混淆攻击。

防暴力破解 ​

  • 登录失败限流:新增 pkg/ratelimit 滑动窗口限流器,按「客户端 IP + 用户名」维度计数,连续失败达到阈值后临时封禁(默认 5 次 / 分钟窗口,封禁 15 分钟),登录成功后自动清零。

防 SSRF(服务端请求伪造) ​

  • 新增 pkg/safehttp 安全 HTTP 客户端:所有「由用户提供 URL、服务端代为请求」的场景统一接入,禁止访问回环、私网、链路本地、云元数据(169.254.169.254)、保留段等地址。
  • 校验下沉到 DNS 解析之后、建立连接之前(Control 回调),可防御 DNS rebinding 与解析到内网的域名;重定向亦逐跳校验,防止 302 到内网绕过首跳检查。

CSRF 与跨域 ​

  • 会话 Cookie 加固:SameSite=Lax + HTTPS 下自动 Secure,降低 CSRF 风险。
  • CORS 加固:原固定返回 Access-Control-Allow-Origin: * 会放大 CSRF 与信息泄露风险,现改为按 NETPANEL_ALLOWED_ORIGINS 白名单回显,默认仅同源。

权限收口与纵深防御 ​

  • 高危能力仅管理员可用:Caddy 站点写操作、计划任务(shell 类型可执行任意命令)、监控任务、WAF 写操作、组网节点代理、系统日志、用户管理等均收口到 AdminOnly 路由组。
  • 组网节点代理权限旁路修复:/mesh/proxy/* 会把任意路径原样转发到对端节点,本地的 AdminOnly 在远端不生效,现已强制挂在管理员组,避免成为权限旁路。
  • 用户管理纵深防御:内置 admin 不允许改名/禁用/删除;不能取消自己的管理员权限;系统必须保留至少一名启用管理员。
  • Caddy / 存储参数校验加固:新增 validate.go,对站点域名、上游地址、存储用户名、共享名称等入参做合法性校验。
  • 移除弱默认值:NPS 服务端默认口令 123456 等弱默认值已移除,杜绝「公开后门」。

✨ 新功能 ​

🎨 界面与体验 ​

  • 现代化界面改版:白色极简设计,支持亮色 / 暗色主题一键切换(#42)
  • 首次启动初始化向导:无管理员账户时强制引导设置管理员密码,杜绝默认弱口令(#38)
  • 用户管理增强:最后管理员保护(防止误删唯一管理员)+ 支持管理员账号改名(#39)

🛡️ 安全中心(WAF) ​

  • Coraza WAF 引擎实现:真正接入 Caddy 反向代理链路,替换原有 TODO(#26)
  • WAF 安全中心 v2:攻击事件记录、态势统计、封禁联动、SpeedTest 补齐(#44)
  • WAF 写操作权限强化 + 参数校验加固(#49 安全评审批次)

🔀 智能选线与探测(核心网络能力) ​

  • 选线结果自动落地:选线自动同步 Caddy 反代目标与 DNS 解析(S2,#16)
  • 端口层切换重绑 + Quick 隧道入口(#10/#17)
  • 探测策略参数化 + 服务级锁线:可配置探测策略,支持按服务锁定线路(#9/#18)
  • 测速弹窗:服务线路即时并发测速(#32)
  • 探测工具过滤 + 端口层重绑模式开关(#31)
  • 统一入口安全网关与 IPv6 场景使用引导(#24 P5)

🌐 IPv6 全面支持 ​

  • 防火墙 IPv6 规则:基于 ip6tables 的入站/出站规则(#25)
  • DNS64 支持:为纯 IPv6 客户端合成 NAT64 AAAA 记录(#28)
  • Caddy IPv6 直达地址展示:双栈监听说明(#27)

🌍 内网穿透 ​

  • Cloudflare Tunnel(cloudflared):支持 Quick + Named 双模式,免公网 IP 边缘接入(#40)

🤖 MCP 服务 ​

  • MCP 服务端:提供标准化 AI/工具接入能力(#5/#19)
  • MCP 深化:探测配置管理与异常诊断(#30)

📡 监控与告警 ​

  • ICMP Ping 探测实现(#21)
  • 隧道状态同步:按类型查询 frp/nps/easytier/cftunnel/wireguard 状态(#22)
  • SMTP 邮件通知(#23)
  • 探测失败告警链路:实现 probe 类型告警规则与通知(#47)

🐛 修复 ​

  • 安全加固修复批次:认证绕过、越权提权、SSRF、CSRF、令牌吊销、登录限流等多项高危漏洞修复(详见「安全加固」章节)
  • 安全评审修复批次:含 WAF 参数校验、写操作权限加固等多项安全修复(#49)
  • Cloudflare Tunnel 模型迁移修复:修复创建后无法启动、删除旧模型(#48)
  • IPv6 地址拼接 vet 报错修复 + 移除重复模型注册(#46)
  • 证书 / WireGuard 非恒定格式字符串 vet 修复(#20)
  • CI 构建修复:前端 TS 类型错误、Go 版本升级至 1.25、构建目录创建

🔧 技术栈升级 ​

  • Go 版本升级至 1.25
  • 引入 cloudflared、MCP 等服务集成
  • 新增 pkg/session、pkg/ratelimit、pkg/safehttp 三个安全基础组件

⚠️ 升级注意事项 ​

  1. 数据库自动迁移:V0.3 会对既有数据库自动执行模型迁移(新增 token_version 字段等),首次启动会自动完成,无需手动操作。
  2. 管理员账户:若 V0.2 中未设置管理员密码,升级后首次访问会进入初始化向导强制设置。
  3. WAF 规则:安全中心 v2 新增了攻击事件与态势统计数据,相关规则配置会自动保留。
  4. 令牌失效:升级后所有已签发令牌会因 token_version 机制重新校验,用户需要重新登录一次,属正常现象。
  5. 建议备份 data/ 目录下的数据库文件后再进行升级,以便回滚。

📦 下载与安装 ​

  • 桌面版(Electron):Windows / macOS / Linux
  • 服务端:Linux / Windows / macOS,支持 x64 / ARM64 等架构
  • 详细说明见 安装文档

感谢所有参与 V0.3 开发与测试的贡献者!如有问题或建议,欢迎提交 Issue 或 PR。

基于 GPL-3.0 许可证发布