有没有什么开源自建的 WebVPN?

2023-10-05 13:55:29 +08:00
 mikewang

这个词或许是国内常用,在 Google 搜到的都是中文网页,并且都是公司学校的入口。不知道正式的名字叫什么。
很早的时候有 Glype ,缺点是没有登录认证,现在也停止维护了。

总之,不想直接将 NAS 的服务暴露在公网,想要加一层保护,并且临时使用的时候不需要客户端。

8240 次点击
所在节点    NAS
50 条回复
vvhy
2023-10-06 16:27:49 +08:00
这个可以参考一下 https://github.com/EtherDream/jsproxy ,不过也不完美
patrickyoung
2023-10-07 00:23:01 +08:00
@ysc3839 @adoal #19
我大概知道你们在说什么了。访问准入+Web 云应用。

基础架构都需要打一个插件到用户的浏览器,实现的方式不同,本地有客户端,这个客户端一般是 openvpn 二开的 ssl vpn ,如果没有客户端的纯 web 应用,就是 ws 代理,然后里面的操作终端是 guacamole 二开的。

核心的原理就是这个,具体实现的各家有差异。
friparia
2023-10-07 09:36:00 +08:00
方案原理大概是前端劫持了浏览器 js 的相关 api ,在涉及到所有和 URL 相关的地方做自动化替换

实际上和 https://github.com/EtherDream/jsproxy 差不多,但是是服务器端的
Kinnice
2023-10-07 10:32:04 +08:00
要不换个思路,敲门模式,野路子 webvpn ,无需反代
0. 随便糊个后端,部署在你需要被 webvpn 访问的机器上,使用 iptables/ufw ,除了管理端口,其他端口的包全部 drop
1. 糊一个公开的 web 段提供 auth ,auth 成功后把当前/24 的 ip 段加到你的 [需要被访问的 iptables accept 列表中]
2. 如果 n 分钟没有新连接、手动断开,就删除这个 accept 规则


more: 切换 ip 后,web 如果还在通过 websocket/轮询,更新新的 ip
d460686680
2023-10-07 14:55:02 +08:00
发现一个你说的这玩意 https://github.com/Hideipnetwork/hideipnetwork-web/tree/dev
试了下 除了套 cf 盾的其他都好使
yg503
2023-10-10 14:42:24 +08:00
https://github.com/NginxProxyManager/nginx-proxy-manager
https://github.com/k8scat/lua-resty-feishu-auth

我们的需求是把公司内的一些 web 服务暴露到公网,想通过钉钉控制只有企业内的人访问,基于这个开源的 lua 适配了钉钉 API ,搭配 https://github.com/liftoff/GateOne 也能实现 shell 功能。
DIO
281 天前
请问 op 现在在用什么好的方案吗
mikewang
280 天前
@DIO 我没有在使用类似方案了,目前仍是 wg 组网
MFWT
279 天前
我也在考虑类似的玩意,最大的痛点其实是前端链接的改写,因为浏览器不知道你这个是代理,所以光做后端反代(包括楼上说到传递变量给 nginx 的 proxy_pass )没有用,对于页面中的外链(不同域名)和带主机的链接,浏览器在前端就发走了,根本不会发往你的代理服务器

在后端收到内容之后提前嗅探并改写数据流中的链接是个方法,但是覆盖面不够(比如前端动态生成资源地址的完全没辙),性能消耗也大。比较通用的方法是前端尽可能用 js 改写掉所有有可能发起请求的函数(比如 XMLHTTPRequest ,fetch ,扫描并嗅探所有 html 标签的 src/href 属性值),但是我不确定浏览器允不允许这么干,或者说有些请求会不会覆盖到?
MFWT
279 天前
另外就是,学校或者企业用 webVPN 比较多的原因是,这种位于内网的网站很多都是自己部署且仅面对内网的(比如内部 OA ,学校在线图书馆),很少存在外站链接,所以实现起来比较简单,也是最早应用起来的

此外就是,这种部门信息化比较早,『适配 IE6.0 』这个笑话大概也就是起源于此。IE 浏览器最大的杀手锏其实是 ActiveX 控件,这玩意近似理解就是前端可以很方便执行原生二进制文件,可玩空间就高很多,说是说 clientless ,但实际上只是自动下载部署了个很小体积的客户端(在华为那边这个就是 Web Link 模式的 SSL VPN )。可惜现在 IE 已经作古,ActiveX 也被放弃,现代浏览器呢,又越来越强调沙盒化,这种玩法也就没落了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/979011

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX