我注意到有几个类似的问题,但没有一个能让我达到目标。
我的目标是将我的 Ubuntu 机器连接到远程检查点 VPN。看起来没有 VPN 客户端可以直接连接。
我做了什么:
- 我使用 Oracle VirtualBox 在本地构建了一个 Windows VM。
- 我将访客连接到 VPN。
作为步骤 3,我想将主机连接到访客 VPN,但我无法实现这一点。
我设置了 NAT 网络和仅主机网络:
- 主机:Ubuntu 16.04
- 访客:Win 10 主页
访客主机专用网络:ipv4 192.168.56.101 gw 192.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 来共享连接。