Firefox 中的 VPN SSL 网络扩展器

Firefox 中的 VPN SSL 网络扩展器

我需要从 Debian Stretch amd64 VM 连接到 CheckPoint 公司 VPN。

我是从客户的角度使用它,并且不太了解服务器端的技术细节。我将其与 Windows 中的 CheckPoint Mobile 客户端一起使用,并且我知道它接受与 Firefox+Java(又名 SSL 网络扩展器)的 Web VPN 连接。

我尝试在 Linux 中的 Firefox 中打开它,但没有成功。我还研究了文本模式替代方案,即snx命令行客户端,但是 CheckPoint 文献明确指出snx不再支持从命令行直接登录。

我做了几次测试,包括安装snxlinux客户端snxconnectopenconnect/vpncVPN客户端,但没有取得太大成功。我还有些怀疑,除了已经很复杂的过程之外,CheckPoint 方面还在对用户代理进行双重检查,至少在我的情况下是这样。

该怎么办?

答案1

这些 2018 年说明适用于旧版 CheckPoint VPN R80 (R80.10?) 版本。有关较新的 VPN/防火墙,请参阅新接受的答案。

最终,我决定使用 Firefox+Java 进行身份验证(后来我改变了主意,请参阅底部的相关链接)。 VM 本身不运行 Java,也不运行图形界面,当我需要连接到我们的公司网络时,我在笔记本上的远程 X 服务器上运行 Firefox。

流程大致是:

  1. 安装中firefox
  2. 下载snxLinux客户端安装登录Web VPN客户端界面
  3. 安装JDK
  4. firefox一切安装完毕后,每次需要使用VPN时都访问VPN URL 。
  5. 通过以下方式关闭 VPNfirefox

至于实际步骤指南:

  1. 经过一些测试,很明显最新firefox版本并没有减少运行 Java 小程序的能力。

火狐浏览器 52 及以上版本

从 Firefox 52(2017 年 3 月发布)开始,插件支持仅限于 Adob​​e Flash,并放弃对 NPAPI 的支持,影响 Java、Silverlight 和其他类似的基于 NPAPI 的插件。

因此,在测试了几个firefox旧版本后,我决定firefox 48仅用于登录 VPN。从以下位置下载的火狐档案

因此,在您的目标目录中,执行以下操作:

tar -jxvf  firefox-48.0.tar.bz2

然后做:

cd firefox

为了防止您第一次在此目录上运行时更新到更新版本:

sudo touch updates
sudo chattr +i updates

注意:第一次运行它时,您还可以通过以下方式禁用更新:

  • 菜单图标->首选项->高级->更新

或者:

  • 打开 URL about:preferences#advanced

并在“Firefox 更新”中选择单选按钮:“从不检查更新”

  1. 如果在 VPN 中,要获取安装文件,请执行以下操作:

    wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh

或者,从 Web VPN 界面的“设置 -> 编辑本机应用程序设置 SSL Network Extender:下载适用于 Linux 的安装”中下载应用程序

网址

这会给你一个snx_install.sh文件。

您还需要选择:“登录时启动 SSL Network Extender:”将其更改为“自动”。

然后运行:

chmod a+rx snx_install.sh
sudo ./snx_install.sh`

您将了解/usr/bin/snx32 位客户端二进制可执行文件。检查缺少哪些动态库:

sudo ldd /usr/bin/snx

对于 Debian,您可能需要:

sudo dpkg --add-architecture i386
sudo apt-get update    

我必须安装以下内容:

sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386

再次检查是否缺少任何动态库(如果有):

sudo ldd /usr/bin/snx

只有满足所有依赖项后,您才能继续执行以下操作,就像 Java 小程序snx在幕后使用的那样。

  1. 经过多次不成功的迭代和网络爬取,发现需要安装Sun的Java 6。于是得到了jdk-6u45-linux-x64.bin 来自甲骨文网站

要以 root 身份安装它:

mkdir /usr/java
mv jdk-6u45-linux-x64.bin /usr/java
cd /usr/java
chmod a+rx jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin

我们不会配置整个系统来使用这个 Java 版本,因为它太旧了。只是为了稍后在 Firefox 中使用 Java:

sudo mkdir -p /usr/lib/mozilla/plugins
sudo ln -s /usr/java/jdk1.6.0_45/jre/lib/amd64/libnpjp2.so libnpjp2.so

至此,Java安装完毕。

  1. 最后,运行firefox作为普通用户做:

    ./火狐浏览器

如果 Java Applet/SSL Network Extender 在身份验证后未自行启动,请执行“本机应用程序 -> 连接”。它将打开一个弹出/Java 窗口。等待“状态:已连接”。

延长器

然后您可以关闭 FireFox 主窗口。

VPN建立后,您可以检查ip address或者ifconfig您现在有一个tunsnx界面:

$ ip addr show dev tunsnx
14: tunsnx: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none
    inet 10.x.x.x peer 10.x.x.x/32 scope global tunsnx
       valid_lft forever preferred_lft forever
    inet6 fe80::acfe:8fce:99a4:44b7/64 scope link stable-privacy
       valid_lft forever preferred_lft forever

ip route还将向您显示通过该tunsnx界面的新路线。

为了更加方便,您可以将 WebVPN 的 URL 定义为您的主页。

  1. 要关闭 VPN,您可以按 Java 弹出窗口中的“断开连接”按钮,或关闭/终止 Firefox。

参见相关: 让 Checkpoint VPN SSL Network Extender 在命令行中工作

答案2

要使用最新版本的 Firefox,安装snx_install.shcshell_install.sh打开后https://localhost:14186/id在单独的 Firefox 选项卡中并为站点添加安全例外”https://本地主机:14186/添加例外后,您将看到十六进制格式的唯一标识符。您现在可以关闭此选项卡并尝试再次连接。

答案3

@ Kubuntu 18.04 32位,Firefox 75.0(32位),openjdk-8

应该为 Firefox 添加一个页面例外https://localhost:14186/id,这对我来说是个问题,小程序启动了,但不想继续,因为它没有权利得到这个https://localhost:14186/id

另外我应该注意,我已经在 Firefox 75.0(32 位)和 openjdk-8 上成功启动了 vpn,而没有降级到 Firefox 48 和 jdk-6u45,尽管我也尝试过这一点,并且 cshell_install.sh 不希望安装在 jdk-6u45

但无论如何,非常感谢答案的作者 - Rui F Ribeiro。对我帮助很大

答案4

现在是 2022 年,虽然我之前的答案在 R80 检查点发布之前仍然有效,但世界已经向前发展。 Firefox 不再运行 Java 小程序,因此 CheckPoint 将中间件 Java 小程序作为 Java 守护进程 - CShell 守护进程移至客户端/Linux 端(大约 2 年前)。

尽管遗憾的是,SNX SSL Network Extender 守护程序的可执行二进制文件仍然是 32 位,但现在除了对旧防火墙使用 SSLv3 隧道之外,还支持并仅与新防火墙的 TLS 1.2 配合使用。它还进行了一些细微的更改,使其与 snxconnect python 逆向工程工作不兼容。

另一方面,不再要求移动访问门户代理 (CShell) 使用 Java 8、Oracle Java 实现或特定的 Firefox 版本。它已使用 openJDK JRE 11 成功测试了多个 CheckPoint 版本。

在帮助我们的开发团队适应新场景时,我最初为 Debian 编写了说明,然后在第二个版本中为 cshell_install.sh 编写了补丁,因为它表现不佳。最终得出的结论是,您可能不希望您的计算机因必须具有 32 位活动的多架构或 Java,或者必须修补任何新的 cshell_install.sh 变体而受到阻碍。

因此,编写了有关在 chroot 中添加 SNX 和“新”CShell Java 守护进程的说明。不过文档太大,为Debian写了一个脚本。

最终,脚本演变为伪造需求而不是修补 CheckPoint 的脚本,并支持大多数主要发行版,远远超过以“赤裸裸”的官方形式使用 SNX + cshell_install.sh(例如最新版本的 Fedora 没有)更长的支持)。

您可以在这里获取它:

https://github.com/ruyrybeyro/chrootvpn

为了获取并安装脚本以自动创建 chroot 并使您的 VPN 正常工作,您必须使用配置为 sudo 的用户并执行以下操作:

curl https://raw.githubusercontent.com/ruyrybeyro/chrootvpn/main/vpn.sh -O
chmod a+rx vpn.sh
./vph.sh -i --vpn=VPN_FQDN_DNS_NAME

支持 Debian/Ubuntu、SUSE 或 RedHat/CentOS/Fedora 的任何衍生发行版。 Arch 的任何变体也是如此,只要它配置有网络管理器。 Slackware、Void 和 Gentoo Linux 也是如此。



尽管如此,如果不使用上面的脚本,Debian 的简单、官方、非 chroot 设置的说明如下:

在浏览器中打开 Mobile Portal VPN,https://VPN_FW_HOSTNAME,并使用用户名和密码(+双因素 PIN,如果有)进行身份验证;当浏览器询问您是否要保存密码时,选择“从不保存”

选择设置。将默认值更改为:

登录时启动 SSL Network Extender:自动连接 SSL Network Extender 使用:网络模式

选择确定。

关闭浏览器。

从防火墙下载 Linux 客户端设置脚本:

$ wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh
$ wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/cshell_install.sh

跑步:

chmod a+rx snx_install.sh cshell_install.sh

安装 SNX:

$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install libstdc++5:i386 libx11-6:i386 libpam0g:i386
$ sudo ./snx_install.sh

在安装 Java 代理之前安装 firefox:

$ sudo apt install firefox-esr

运行 Firefox 并将其关闭。

安装 firefox-esr 后,为了与 CheckPoint cshell_install.sh 脚本兼容:

$ ln -s ~/.mozilla/firefox-esr ~/.mozilla/firefox

请务必打开它以创建用户配置文件。使用非特权用户调用它是很重要的,因为它将被日常使用。如果在 /home 下已运行/拥有 Firefox/Chrome 配置文件失败,则意味着 cshell_install.sh 将不满足最低要求并将中止安装。

安装移动接入Portal Agent

$ sudo apt install xauth x11-xserver-utils certutil libnss3-tools openjdk-11-jdk

对于下一步,Firefox 不得运行:

$ sudo ./cshell_install.sh

如果安装顺利:

# ps ax | grep cshell
  14224 pts/0 Sl 0:01 java -jar /usr/bin/cshell/CSell.jar /tmp/cshell.fifo
  14300 pts/0 S+ 0:00 grep cshell

CShell 守护进程现在必须正在运行。如果不是:

$ /usr/bin/cshell/launcher

要验证证书是否已安装,您还可以执行以下操作:

$ wget -q -O- --no-check-certificate https://localhost:14186/id

最后再次进入firefox,访问

https://localhost:14186/id

接受 https://localhost:14186 CheckPoint 自签名证书。

使用您的登录名和防火墙移动门户地址中的密码(+双因素 PIN,如果有)再次进行身份验证。

现在应该自动连接到 VPN。如果没有,请单击“连接”。

请注意,在不使用 chroot 脚本的情况下执行手动步骤,cshell_install.sh 安装要求非常严格,如果不满足,它就会中止。

相关 CheckPoint Linux 支持页面:

SSL 网络扩展器 https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk65210#Linux%20Supported%20Platforms

如何在 Linux 计算机上安装 SSL Network Extender (SNX) 客户端 https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk114267

适用于 Linux 的移动访问门户代理先决条件 https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk119772

移动访问门户和 Java 兼容性 https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk113410

Mozilla Firefox 的移动访问门户代理即使在正确安装后也要求重新安装 https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk122576&partition=Advanced&product=Mobile

相关内容