Rui*_*iro 5 debian vpn checkpoint
我需要从 Debian Stretch amd64 VM 连接到 CheckPoint 公司 VPN。
我是站在客户的角度使用的,对服务端的技术细节不太了解。我将它与 Windows 中的 CheckPoint Mobile 客户端一起使用,并且我知道它接受与 Firefox+Java aka SSL Network Extender 的 Web VPN 连接。
我曾尝试在 Linux 的 Firefox 中打开它,但没有奏效。我还研究了文本模式替代方案,即snx命令行客户端,但是 CheckPoint 文献明确指出snx不再支持从命令行直接登录。
我做了几次测试,包括安装snxlinux 客户端snxconnect和openconnect/vpncVPN 客户端,但都没有成功。我还有些怀疑,除了已经复杂的过程之外,CheckPoint 方面还在仔细检查用户代理,至少在我的情况下是这样。
该怎么办?
最终,我决定使用 Firefox+Java 进行身份验证(后来改变了主意,请参阅底部的相关链接)。VM 本身不运行 Java 或图形界面,当我需要连接到我们的公司网络时,我在笔记本上的远程 X 服务器上运行 Firefox。
流程大致如下:
1) 安装firefox
2)登录Web VPN 客户端界面后下载snxLinux 客户端安装
3) 安装JDK
4) 一切安装后,每次需要使用VPN 时访问VPN URL 。
5) 通过以下方式关闭 VPNfirefoxfirefox
至于实际步骤指南:
1)经过一些测试,很明显最新firefox版本并没有削减它运行Java小程序。
火狐 52 及以上
从 Firefox 52(2017 年 3 月发布)开始,插件支持仅限于 Adobe Flash,并不再支持 NPAPI,影响 Java、Silverlight 和其他类似基于 NPAPI 的插件的插件。
因此,在测试了几个firefox旧版本后,我决定firefox 48将其仅用于登录 VPN。从firefox 档案下载。
因此,在您的目标目录中,执行以下操作:
tar -jxvf firefox-48.0.tar.bz2
Run Code Online (Sandbox Code Playgroud)
然后做:
cd firefox
Run Code Online (Sandbox Code Playgroud)
为了防止它在您第一次在此目录上运行时更新到更新的版本:
sudo touch updates
sudo chattr +i updates
Run Code Online (Sandbox Code Playgroud)
注意:第一次运行它时,您还可以通过以下方式禁用更新:
或者:
并在“Firefox 更新”中选择单选按钮:“从不检查更新”
2) 如果在 VPN 中,要获取安装文件,请执行以下操作:
wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh
Run Code Online (Sandbox Code Playgroud)
或者,从 Web VPN 界面下载应用程序,在“设置->编辑本机应用程序设置 SSL 网络扩展器:下载 Linux 安装”

那会给你一个snx_install.sh文件。
您还需要选择:“登录时启动 SSL Network Extender:”将其更改为“自动”。
然后运行:
chmod a+rx snx_install.sh
sudo ./snx_install.sh`
Run Code Online (Sandbox Code Playgroud)
您将了解/usr/bin/snx32 位客户端二进制可执行文件。检查缺少哪些动态库:
sudo ldd /usr/bin/snx
Run Code Online (Sandbox Code Playgroud)
对于 Debian,我可能需要:
sudo dpkg --add-architecture i386
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
我必须安装以下内容:
sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
Run Code Online (Sandbox Code Playgroud)
再次检查是否缺少任何动态库(如果有):
sudo ldd /usr/bin/snx
Run Code Online (Sandbox Code Playgroud)
只有在满足所有依赖项后才能进行以下操作,因为 Java 小程序snx在幕后使用。
3)经过多次不成功的迭代和网络爬虫,发现需要从Sun安装Java 6。于是jdk-6u45-linux-x64.bin 从 Oracle 网站上得到了。
要安装它,请以 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
Run Code Online (Sandbox Code Playgroud)
我们不会将整个系统配置为使用这个 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
Run Code Online (Sandbox Code Playgroud)
至此,Java 安装完成。
4) 最后,以普通用户身份运行 firefox :
./firefox
Run Code Online (Sandbox Code Playgroud)
如果 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
Run Code Online (Sandbox Code Playgroud)
ip route还将向您显示通过tunsnx界面的新路线。
为了更加方便,您可以将 WebVPN 的 URL 定义为您的主页。
5) 要关闭 VPN,您可以按 Java 弹出窗口中的“断开连接”按钮,或关闭/杀死 Firefox。
请参阅相关: 让 Checkpoint VPN SSL Network Extender 在命令行中工作
现在是 2022 年,尽管我之前的答案在 R80 检查点发布之前仍然有效,但世界已经向前发展。Firefox 不再运行 Java 小程序,因此 CheckPoint 将中间件 Java 小程序作为 Java 守护进程 - CShell 守护进程移至客户端/Linux 端(大约 2 年前)。
\n尽管遗憾的是,SNX SSL Network Extender 守护程序的可执行二进制文件仍然是 32 位,但现在除了对旧防火墙使用 SSLv3 隧道之外,还支持并仅与新防火墙的 TLS 1.2 配合使用。它还进行了一些细微的更改,使其与 snxconnect python 逆向工程工作不兼容。
\n另一方面,不再要求移动访问门户代理 (CShell) 使用 Java 8、Oracle Java 实现或特定的 Firefox 版本。它已使用 openJDK\nJRE 11 成功测试了多个 CheckPoint 版本。
\n在帮助我们的开发团队适应新场景时,我最初为 Debian 编写了说明,然后在第二个版本中为 cshell_install.sh 编写了补丁,因为它表现不佳。最终得出的结论是,您可能不希望您的计算机因必须具有 32 位活动的多架构或 Java,或者必须修补任何新的 cshell_install.sh 变体而受到阻碍。
\n因此,编写了有关在 chroot 中添加 SNX 和“新”CShell Java 守护进程的说明。不过文档太大,为Debian写了一个脚本。
\n最终,该脚本演变为伪造需求而不是修补 CheckPoint 的脚本,并支持大多数主要发行版,远远超过以“裸”官方形式使用 SNX + cshell_install.sh(例如最新版本) Fedora 不再支持)。
\n您可以在这里获取它:
\nhttps://github.com/ruyrybeyro/chrootvpn
\n要获取并安装脚本以自动创建 chroot 并使您的 VPN 正常工作,您必须使用配置为 sudo 的用户并执行以下操作:
\ncurl https://raw.githubusercontent.com/ruyrybeyro/chrootvpn/main/vpn.sh -O\nchmod a+rx vpn.sh\n./vph.sh -i --vpn=VPN_FQDN_DNS_NAME\nRun Code Online (Sandbox Code Playgroud)\n支持 Debian/Ubuntu、SUSE 或 RedHat/CentOS/Fedora 的任何衍生发行版。\nArch 的任何变体也受支持,只要它配置有网络管理器即可。\nSlackware、Void 和 Gentoo Linux 也受支持。
\n尽管如此,如果不使用上面的脚本,Debian 的简单、官方、非 chroot 设置的说明如下:
\n在浏览器中打开 Mobile Portal VPN,https://VPN_FW_HOSTNAME,并使用用户名和密码(+双因素 PIN,如果有)进行身份验证;当浏览器询问您是否要保存密码时,选择 \xe2\x80\x9cNever save\xe2\x80\x9d
\n选择设置。将默认值更改为:
\n登录时启动 SSL Network Extender: 自动\n使用以下方式连接 SSL Network Extender: 网络模式
\n选择确定。
\n关闭浏览器。
\n从防火墙下载 Linux 客户端设置脚本:
\n$ wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh\n$ wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/cshell_install.sh\nRun Code Online (Sandbox Code Playgroud)\n跑步:
\nchmod a+rx snx_install.sh cshell_install.sh
\n安装 SNX:
\n$ sudo dpkg --add-architecture i386\n$ sudo apt update\n$ sudo apt install libstdc++5:i386 libx11-6:i386 libpam0g:i386\n$ sudo ./snx_install.sh\nRun Code Online (Sandbox Code Playgroud)\n在安装 Java 代理之前安装 firefox:
\n$ sudo apt install firefox-esr\nRun Code Online (Sandbox Code Playgroud)\n运行 Firefox 并将其关闭。
\n安装 firefox-esr 后,为了与 CheckPoint cshell_install.sh 脚本兼容:
\n$ ln -s ~/.mozilla/firefox-esr ~/.mozilla/firefox\nRun Code Online (Sandbox Code Playgroud)\n请务必打开它以创建用户配置文件。使用非特权用户调用它是很重要的,因为它将被日常使用。未能在 /home 下运行/拥有 Firefox/Chrome 配置文件,意味着 cshell_install.sh 将不满足最低要求并将中止安装。
\n安装移动接入Portal Agent
\n$ sudo apt install xauth x11-xserver-utils certutil libnss3-tools openjdk-11-jdk\nRun Code Online (Sandbox Code Playgroud)\n对于下一步,Firefox 不得运行:
\n$ sudo ./cshell_install.sh\nRun Code Online (Sandbox Code Playgroud)\n如果安装顺利:
\n# ps ax | grep cshell\n 14224 pts/0 Sl 0:01 java -jar /usr/bin/cshell/CSell.jar /tmp/cshell.fifo\n 14300 pts/0 S+ 0:00 grep cshell\nRun Code Online (Sandbox Code Playgroud)\nCShell 守护进程现在必须正在运行。如果不是:
\n$ /usr/bin/cshell/launcher\nRun Code Online (Sandbox Code Playgroud)\n要验证证书是否已安装,您还可以执行以下操作:
\n$ wget -q -O- --no-check-certificate https://localhost:14186/id\nRun Code Online (Sandbox Code Playgroud)\n最后再次进入firefox,访问
\nhttps://localhost:14186/id
\n接受 https://localhost:14186 CheckPoint 自签名证书。
\n使用您的登录名和防火墙移动门户地址中的密码(+双因素 PIN,如果有)再次进行身份验证。
\n现在应该自动连接到 VPN。如果没有,请单击“连接”。
\n请注意,在不使用 chroot 脚本的情况下执行手动步骤,cshell_install.sh 安装要求非常严格,如果不满足,它就会中止。
\n相关 CheckPoint Linux 支持页面:
\n\n如何在 Linux 计算机上安装 SSL Network Extender (SNX) 客户端\n https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk114267
\n适用于 Linux 的移动访问门户代理先决条件\n https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk119772
\n移动访问门户和 Java 兼容性\n https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk113410
\n即使正确安装后,Mozilla Firefox 的移动访问门户代理仍要求重新安装\n https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk122576&partition=Advanced&product=Mobile
\n