共享访客与主机之间的 VPN 连接

共享访客与主机之间的 VPN 连接

我注意到有几个类似的问题,但没有一个能让我达到目标。

我的目标是将我的 Ubuntu 机器连接到远程检查点 VPN。看起来没有 VPN 客户端可以直接连接。

我做了什么:

  1. 我使用 Oracle VirtualBox 在本地构建了一个 Windows VM。
  2. 我将访客连接到 VPN。

作为步骤 3,我想将主机连接到访客 VPN,但我无法实现这一点。

我设置了 NAT 网络和仅主机网络:

  • 主机:Ubuntu 16.04
  • 访客:Win 10 主页
  • 访客主机专用网络:ipv4 192.168.56.101 gw 1​​92.168.56.1 sub 255.255.255.0

  • Oracle VirtualBox 5.2.8

  • 目标示例 VPN 子网:123.123.0.0/24

我尝试编辑我的默认(主机)网关如何在 VMWare 客户机虚拟机中与主机共享 VPN 连接

sudo add route default 192.168.56.101

... 看起来不错,但不起作用。

我尝试保存路线/etc/networking/routes 123.123.0.0 255.255.255.0 192.168.56.101 any

... 还是行不通。

我尝试使用 iptables:

FORWARD
ACCEPT     all  --  123.123.0.0/24        anywhere             ctstate NEW
ACCEPT     all  --  anywhere              anywhere             ctstate RELATED,ESTABLISHED

我试过这个https://www.expressvpn.com/support/vpn-setup/share-vpn-connection-windows/来自访客,但由于某种原因无法启动托管网络。

我现在真的没主意了。如果可以的话,我可以在同一个 WiFi 上设置另一台 Windows 物理计算机。

编辑:

起初我实际上尝试了 snx 解决方案,这是控制台显示的内容

# snx -s 123.123.123.123 -u username -g
Check Point's Linux SNX
build 800005013
Please enter your password:

SNX: Authentication failed

这些是 snx.elg 中的日志

[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] exists_in_buf: returning 1
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] snx_browser::Receive: state==FIRST_REQ
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] search_for: searching for SESSION_ID= and  ;
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] search_for: prefix not found!
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] parse_page_for_sessionid: session_id not found!
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] snx: quit.
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] snx_browser::~snx_browser: called
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] talkssl::~talkssl: delete link
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] talkssl::end_handler: ending connection
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] snx_browser::Failure: entering with code: 2
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] got link down!- exit
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] talkssl::~talkssl: end
[ 17505 -140036352]@riccardo-notebook[11 May  8:34:03] done

答案1

关于您在使用 snx 时遇到的错误,我认为您使用了错误的版本。据我所知(根据直接经验),版本 800007075 应该可以工作。

这篇超级用户帖子

答案2

如果 VPN 服务器未配置为允许拆分隧道,则此方法无效。在这种情况下,其 VPN 连接无法与其他计算机共享。

我发现您找不到适用于 Ubuntu 的 Checkpoint VPN 客户端,这很奇怪。

看看这个 Checkpoint 社区文章 它提供访问 Checkpoint VPN 的链接和说明。

它提供的链接之一是文章 适用于主要 Linux 发行版的 CheckPoint SNX 安装说明其中写道:

从版本 800007075 开始,Checkpoint 不再支持在命令行上使用 Native Client。这阻止了脚本登录,并且还需要一个笨重的桌面(而我们可以使用无头服务器)。仍然可以访问,但只能通过“SSL 网络扩展器”进行。这是一个很大的麻烦,因为它需要(根据我的经验)X 服务器、Oracle Java 和 FireFox 浏览器才能运行。

本文针对 Ubuntu 15.04 Vivid Vervet 给出的说明如下所示。请将其调整到您的 Ubuntu 版本。

我们将安装一个 ppa 来获取 Java 语言,更改root密码并安装一些附加库 运行检查点所需的。

sudo su -
passwd
add-apt-repository -y ppa:webupd8team/java
apt-get update
apt-get install oracle-java9-installer libstdc++5:i386 libpam0g:i386 libx11-6:i386
java -version

按“连接”将打开一个 xterm 窗口,下载并运行本机客户端安装文件脚本。您需要输入之前设置的 root 密码,sudo 将不起作用。

现在最后尝试“连接”>“继续”>“接受密钥”,您就应该可以连接了。

阅读我的第一个完整链接以获取更多信息和使 Checkpoint VPN 正常工作的其他方法。

答案3

我写了一篇文章,描述如何从客户机到主机共享连接: https://krasovs.ky/2021/04/26/checkpoint-snx-adventure.html

最难的部分是 NAT。你必须设置 snat,简单的伪装没有帮助:

GATEWAY=$(ip -o -4 addr show tunsnx | awk '{printf $4}')
nft add rule inet nat postrouting oifname "tunsnx" ip daddr 10.0.0.0/8 snat ip to $GATEWAY

另外,为了使其更加灵活,我在主机和客户机上使用了 WireGuard 来共享连接。

相关内容