V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ffgrinder
V2EX  ›  Linux

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

  •  
  •   ffgrinder · 2022-09-01 21:51:59 +08:00 · 3277 次点击
    这是一个创建于 848 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司的 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

    感谢!

    第 1 条附言  ·  2022-09-02 20:28:13 +08:00
    在 VPN 机器上开启转发,echo 1 > /proc/sys/net/ipv4/ip_forward
    并开启 SNAT iptables -t nat -A POSTROUTING -s $CLIENT_IP -o $TARGET_INTERFACE -j MASQUERADE

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

    另外想着在路由器上可能不安全,所以就单独搞了个虚拟机做这个
    cwzsquare
        3
    cwzsquare  
       2022-09-01 22:20:58 +08:00
    @ffgrinder (个人感觉 IKE v1 也确实不古老,某公司的安全网关都还只能默认支持这个,v2 都还不支持)那感觉如果 pve CPU 够强劲就试试上 Openwrt 上添加到 Ubuntu 虚拟机的虚拟 wan 口吧
    cwzsquare
        4
    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
        5
    ffgrinder  
    OP
       2022-09-01 22:26:49 +08:00
    @cwzsquare 感谢 我去试验一下
    ffgrinder
        6
    ffgrinder  
    OP
       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
        7
    ffgrinder  
    OP
       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
        8
    cnbatch  
       2022-09-01 23:52:22 +08:00   ❤️ 2
    Ubuntu 那台机器需要再启用 NAT 。

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

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

    至于 nftables 或 iptables 怎么写 NAT 规则,这方面的资料很容易找
    Puteulanus
        9
    Puteulanus  
       2022-09-02 02:25:21 +08:00   ❤️ 1
    让那台 Ubuntu 直接成为 Windows 的网关,类似旁路由的配置
    像楼上说的,Ubuntu 的防火墙要打开转发和 NAT
    cwzsquare
        10
    cwzsquare  
       2022-09-02 07:53:59 +08:00   ❤️ 1
    确实是需要 nat ,接楼上的观点;如果不想在 ubuntu 手写 nat 规则,可以试试把 Ubuntu 换成一个支持 luci 里配置 ipsec 的 OpenWrt 虚拟机(如果不怕的话甚至也可以上 ikuai ,它的确支持 ike v1/v2 ),设置 ipsec 连接成功后将它设置在 OpenWrt 默认防火墙的 wan 区段,然后用让这台设备成为 Windows 的网关的做法( Windows 所有流量经过这台虚拟机)或者主网关设置静态路由(只让特定的流量经过 ipsec 虚拟机)的方案。当然,以上这样的折腾,的确不如学习写 NAT 规则写法后,直接在 Ubuntu 上撰写来的快。
    ffgrinder
        11
    ffgrinder  
    OP
       2022-09-02 08:02:17 +08:00
    @cnbatch
    @Puteulanus
    @cwzsquare
    感谢各位,我去研究一下 NAT
    ffgrinder
        12
    ffgrinder  
    OP
       2022-09-02 08:07:41 +08:00
    已经全部搞定,晚一点 append 一下。感谢楼上各位。
    ffgrinder
        13
    ffgrinder  
    OP
       2022-09-02 08:10:57 +08:00
    @cwzsquare 以及我可以周末折腾下一个版本了,把 fedora 换成一个 openwrt 来降低 pve 的占用:)
    ffgrinder
        14
    ffgrinder  
    OP
       2022-09-02 08:13:14 +08:00
    @ffgrinder 哦口误,是 ubuntu 换成 fedora (原生支持 ipsec )或者就直接 openwrt (感觉研究一下写个配置就能搞定),感觉本质上是一样的。
    FrankAdler
        15
    FrankAdler  
       2022-09-02 09:30:39 +08:00 via iPhone
    openwrt 可能需要自己编译,也可能有人编译好了,好处是资源占用确实低也带 webui
    ffgrinder
        16
    ffgrinder  
    OP
       2022-09-02 20:28:51 +08:00
    @FrankAdler 软路由或者 x86 服务器基本直接下载官方固件就行
    hanssx
        17
    hanssx  
       2022-09-29 11:39:09 +08:00
    楼主把 VPN Client 放到 openwrt 了吗,话说怎么看公司 VPN 的支持不支持 IKE 这种,同样想放到 openwrt ,然后路由过去。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1024 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:15 · PVG 03:15 · LAX 11:15 · JFK 14:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.