请教如何转发 VPN 到内网另一台机器

2022-09-01 21:51:59 +08:00
 ffgrinder

公司的 VPN 我只能在 Linux 上链接成功,目前是在 PVE 上虚拟了一个 Ubuntu 。

本地 IP 段 192.168.1.0/24: Ubuntu 192.168.1.21, Windows 192.168.1.31

公司 VPN 的 IP 段 10.1.100.0/24

目前的想法是希望能够让 Win 访问公司的网段时也能使用 VPN ,请问这可以实现吗,该如何操作?路由器是 Openwrt

感谢!

3275 次点击
所在节点    Linux
17 条回复
cwzsquare
2022-09-01 22:12:23 +08:00
pve 可以添加虚拟网桥来着(这种方法大概是给 Openwrt 和 Ubuntu 用一条虚拟网线连起来,然后 Openwrt 新创建一个 wan 口,在 OP 网关添加路由表从这个口出去,然后在 Ubuntu 上配置好内核 ipv4 转发就好);但是 VPN 能在 linux 上用为啥不在 Openwrt 上直接部署……是基于啥协议的 VPN 呢
ffgrinder
2022-09-01 22:15:53 +08:00
@cwzsquare 是古老的 IKE v1 ,我写配置文件写的比较头疼,所以直接用 gui 解决了。。

另外想着在路由器上可能不安全,所以就单独搞了个虚拟机做这个
cwzsquare
2022-09-01 22:20:58 +08:00
@ffgrinder (个人感觉 IKE v1 也确实不古老,某公司的安全网关都还只能默认支持这个,v2 都还不支持)那感觉如果 pve CPU 够强劲就试试上 Openwrt 上添加到 Ubuntu 虚拟机的虚拟 wan 口吧
cwzsquare
2022-09-01 22:23:44 +08:00
@cwzsquare 偶不,我说的太麻烦了;其实 Ubuntu 也在 192.168.1.1/24 的网段的话,直接在 Openwrt 上添加一条静态路由,10.1.100.0/24 的下一条网关是 192.168.1.21 就好
ffgrinder
2022-09-01 22:26:49 +08:00
@cwzsquare 感谢 我去试验一下
ffgrinder
2022-09-01 22:57:39 +08:00
@cwzsquare 目前的操作是,静态路由已经配置好,在 Ubuntu 上也开启了内核转发。echo 1 > /proc/sys/net/ipv4/ip_forward

但是在 win 上貌似还是不能访问,是有什么其它需要配置的吗。
===

traceroute to 10.1.100.xxx (10.1.100.xxx), 30 hops max, 60 byte packets
通过最多 30 个跃点跟踪到 10.1.100.xxx 的路由

1 <1 毫秒 <1 毫秒 <1 毫秒 Ubuntu.lan [192.168.1.21]
2 1 ms <1 毫秒 1 ms Ubuntu.lan [192.168.1.21]
3 Ubuntu.lan [192.168.1.21] 报告: 无法访问目标网。

====
ffgrinder
2022-09-01 23:09:55 +08:00
@cwzsquare Update:关掉了 firewalld 之后

1 <1 毫秒 <1 毫秒 <1 毫秒 Ubuntu.lan [192.168.1.21]
2 * * * 请求超时。
3 * * * 请求超时。
4 * * * 请求超时。
cnbatch
2022-09-01 23:52:22 +08:00
Ubuntu 那台机器需要再启用 NAT 。

用纯路由方式转发的话,192.168.1.x 的包到达公司网段之后,无法返回来,原因在于公司那边不知道返回 192.168.1.x 应该往哪发,需要编辑公司内部的路由表才行。甚至 192.168.1.x 在公司内网本身就存在,那就更加不可能专门改设置了。

因此需要在 Ubuntu 这台机器采用 NAT 转换一次地址。

至于 nftables 或 iptables 怎么写 NAT 规则,这方面的资料很容易找
Puteulanus
2022-09-02 02:25:21 +08:00
让那台 Ubuntu 直接成为 Windows 的网关,类似旁路由的配置
像楼上说的,Ubuntu 的防火墙要打开转发和 NAT
cwzsquare
2022-09-02 07:53:59 +08:00
确实是需要 nat ,接楼上的观点;如果不想在 ubuntu 手写 nat 规则,可以试试把 Ubuntu 换成一个支持 luci 里配置 ipsec 的 OpenWrt 虚拟机(如果不怕的话甚至也可以上 ikuai ,它的确支持 ike v1/v2 ),设置 ipsec 连接成功后将它设置在 OpenWrt 默认防火墙的 wan 区段,然后用让这台设备成为 Windows 的网关的做法( Windows 所有流量经过这台虚拟机)或者主网关设置静态路由(只让特定的流量经过 ipsec 虚拟机)的方案。当然,以上这样的折腾,的确不如学习写 NAT 规则写法后,直接在 Ubuntu 上撰写来的快。
ffgrinder
2022-09-02 08:02:17 +08:00
@cnbatch
@Puteulanus
@cwzsquare
感谢各位,我去研究一下 NAT
ffgrinder
2022-09-02 08:07:41 +08:00
已经全部搞定,晚一点 append 一下。感谢楼上各位。
ffgrinder
2022-09-02 08:10:57 +08:00
@cwzsquare 以及我可以周末折腾下一个版本了,把 fedora 换成一个 openwrt 来降低 pve 的占用:)
ffgrinder
2022-09-02 08:13:14 +08:00
@ffgrinder 哦口误,是 ubuntu 换成 fedora (原生支持 ipsec )或者就直接 openwrt (感觉研究一下写个配置就能搞定),感觉本质上是一样的。
FrankAdler
2022-09-02 09:30:39 +08:00
openwrt 可能需要自己编译,也可能有人编译好了,好处是资源占用确实低也带 webui
ffgrinder
2022-09-02 20:28:51 +08:00
@FrankAdler 软路由或者 x86 服务器基本直接下载官方固件就行
hanssx
2022-09-29 11:39:09 +08:00
楼主把 VPN Client 放到 openwrt 了吗,话说怎么看公司 VPN 的支持不支持 IKE 这种,同样想放到 openwrt ,然后路由过去。

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

https://www.v2ex.com/t/877112

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

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

© 2021 V2EX