CheckPoint 提供的用于设置 SSL 网络扩展器 VPN 的官方 Checkpoint out 命令行工具不再在 Linux 命令行中工作。CheckPoint 也不再积极支持它。
但是,有一个很有前途的项目,它试图复制 Java 小程序以进行身份验证,它与snx
名为snxconnect
.
我试图让snxconnect
文本实用程序在 Debian Buster 中工作,这样做:
sudo pip install snxvpn
和
export PYTHONHTTPSVERIFY=0
snxconnect -H checkpoint.hostname -U USER
但是,它大多死于以下 HTTP 错误:
HTTP/1.1 301 Moved Permanently:
或者:
Got HTTP response: HTTP/1.1 302 Found
或者:
Unexpected response, try again.
该怎么办?
PS。EndPoint Security VPN 官方客户端在 Mac High Sierra 和 Windows 10 Pro 中运行良好。
SNX 从 2012 年开始构建 800007075,用于从 Linux 命令行支持 CheckPoint VPN。所以我测试了它,你瞧,它仍然适用于最新的发行版和内核 4.x/5.x。
所以最终,如果您无法获得 SNX 构建 800007075或者该特定版本的 SNX 停止与当前 Linux 版本一起使用(可能在不久的将来发生)或者您需要 OTP 支持,那么最终,我在这个线程中的另一个答案是正确的.
目前,解决方案是安装这个特定的最后一个 SNX 版本,它仍然支持从命令行执行 VPN。
snx
构建 800007075,请从以下位置获取:对于 Debian 和基于 Debian 的 64 位系统,如 Ubuntu 和 Linux Mint,您可能需要添加 32 位架构:
我必须安装以下 32 位软件包:
然后运行
snx
安装脚本:您现在将拥有一个
/usr/bin/snx
32 位客户端二进制可执行文件。检查是否缺少任何动态库:只有满足所有依赖项后,您才能继续进行以下几点。
您可能需要先手动运行
snx -s CheckpointURLFQDN -u USER
,然后再编写任何自动使用的脚本,以便将签名 VPN 保存在/etc/snx/USER.db
.在使用它之前,您创建一个
~/.snxrc file, using your regular user (not root)
具有以下内容的:要连接,请键入
snx
$ snx Check Point 的 Linux SNX build 800007075 请输入您的密码:
SNX - 已连接。
会话参数:
办公模式 IP:10.xxx DNS 服务器:10.xxx 辅助 DNS 服务器:10.xxx DNS 后缀:xxx.xx、xxx.xx 超时:24 小时
如果您了解在脚本中硬编码 VPN 密码的安全风险,您还可以将其用作:
snx
,但更好的官方方法是发出命令:另请参阅Linux Checkpoint SNX 工具配置问题,了解有关使用哪个
snx
版本的一些说明。如果自动登录并接受新签名(并了解安全含义),我编写了一个
expect
脚本,我称之为脚本snx_login.exp
;不是很安全,但是您可以自动登录,使用密码作为参数调用它:#!/usr/bin/expect spawn /usr/bin/snx
设置密码 [lindex $argv 0]
期望 " ?assword: " 发送 -- "$password\r"
期望 { "o:" { 发送 "y\r" exp_continue } eof }
PS。注意
snx
不单独支持 OTP,snxconnect
如果使用它,您将不得不使用另一个答案中的脚本。PPS @gibies 提醒我注意,使用 etoken,密码字段获取密码加上附加的 etoken,而不是固定密码。
在 Firefox 中的VPN SSL Network Extender问题中安装 Firefox 官方 SSL VPN Extender 接口时,我发现并解决了这个问题的更多难题。
显然,虽然 from checkpoint 的命令行使用
snx
已停止,但链接帖子中描述的基于 Web 的客户端仍然有效。但是,有一个 python 命令行客户端,它试图在客户端上复制 Web+Java 界面snx
,这篇文章是关于设置它的工作。首先,
snxvp
安装的 frompython pip
不起作用。https://github.com/agnis-mateuss/snxvpn上有一个更新的补丁版本,其中有一些有用的补丁,包括忽略未签名和/或过期证书的选项,更有趣的是,兼容 python2和python3。此外,所有的 URL
snxconnect.py
都必须从更改sslvpn/
为 ``。所以分步说明大致是:
snx
设置:如果在 VPN 中,要获取安装文件,请执行以下操作:
否则,您将不得不从 Web 界面获取它,如链接答案中所述。
对于 Debian,您可能需要:
我必须安装以下内容:
然后运行:
您现在将拥有一个
/usr/bin/snx
32 位客户端二进制可执行文件。检查是否缺少任何动态库:只有满足所有依赖项后,您才能继续进行以下几点。
不确定是否需要
snx -s CheckpointURLFQDN -u USER
在使用前先运行snxconnect
,因为签名 VPN 保存在/etc/snx/USER.db
.snxconnect
python 实用程序。此类程序试图模拟 Web 界面,更有趣的是,它不需要 Java 进行身份验证。因此,要安装和设置
snxconnect
,请以 root 身份运行:. 然后以root身份执行python3:(推荐)
. 或者,对于python2,以 root 身份执行:
安装后,您可以以非特权用户身份运行:
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies
如果一切正常,它会询问密码,然后显示:
如果您在收到此消息时遇到问题,而是连续多次收到消息:“意外响应,请重试。”,请执行 Firefox 方法,然后正确断开连接并注销,等待几分钟,然后再尝试
snxconnect
再次命令。VPN建立后,您可以检查
ip address
或ifconfig
您现在有一个tunsnx
界面:ip route
还将向您显示通过tunsnx
界面的新路线。对于关闭/断开 VPN,虽然您可以 stop/kill
snxconnect
,但更好的官方方法是发出命令:$snx -d
SNX - 断开连接……完成。
此外,我还发现:
snxconnect
如果出现一些奇怪的问题,断开之前的 VPN 连接并在官方 Web 界面中注销时似乎表现得更好(必须尝试这样做snx -d
,看看它是否会产生相同的结果);snx
才能拥有它,就像snxconnect
使用snx
它一样;snxconnect
/的主机名snx
作为虚拟主机处理,因此您不能直接使用 VPN IP 地址;snx_install.sh
脚本的要求;python2
换取更少的空间,但是由于 python2 正在逐步淘汰,snxconnect
在不久的将来可能不支持它;/sslvpn
字符串,因为我的 URL 不是以/sslvpn
. 我会检查你的具体情况。我完全不知道代码中该字符串的存在是否是由于旧版本造成的,希望得到一些反馈;snxconnect
的主机名必须是 Web 界面在其中通过身份验证后向您显示的确切名称,因为它是一个 Web 虚拟主机。否则,您将无法成功建立 VPN;snx
使用时,会在 ; 创建一个带有 VPN/Checkpoint 服务器签名的文件/etc/snx/USER.db
;snxconnect
assnx
单独不支持它。