NetPanel V0.3 更新说明
从 V0.2 升级到 V0.3 的更新说明。
🎉 版本亮点
V0.3 是 NetPanel 迈向「安全网关 + 智能选线」形态的关键版本。本版本完成了四件大事:
- 界面全面现代化 —— 白色极简风格 + 亮/暗主题切换,交互体验焕然一新;
- WAF 安全中心落地 —— 从「规则过滤」升级为「攻击事件分析 + 态势统计 + 封禁联动」的完整安全运营能力;
- 智能选线闭环打通 —— 探测、测速、选线、切换、重绑全链路自动化,并接入 MCP 提供可编程的探测管理与异常诊断;
- 全链路安全加固 —— 修复认证绕过、越权提权、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三个安全基础组件
⚠️ 升级注意事项
- 数据库自动迁移:V0.3 会对既有数据库自动执行模型迁移(新增
token_version字段等),首次启动会自动完成,无需手动操作。 - 管理员账户:若 V0.2 中未设置管理员密码,升级后首次访问会进入初始化向导强制设置。
- WAF 规则:安全中心 v2 新增了攻击事件与态势统计数据,相关规则配置会自动保留。
- 令牌失效:升级后所有已签发令牌会因
token_version机制重新校验,用户需要重新登录一次,属正常现象。 - 建议备份
data/目录下的数据库文件后再进行升级,以便回滚。
📦 下载与安装
- 桌面版(Electron):Windows / macOS / Linux
- 服务端:Linux / Windows / macOS,支持 x64 / ARM64 等架构
- 详细说明见 安装文档