Debian

讓 Checkpoint VPN SSL Network Extender 在命令行中工作

  • June 23, 2021

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。

  1. 要安裝snx建構 800007075,請從以下位置獲取:
wget https://starkers.keybase.pub/snx_install_linux30.sh?dl=1 -O snx_install.sh

對於 Debian 和基於 Debian 的 64 位系統,如 Ubuntu 和 Linux Mint,您可能需要添加 32 位架構:

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

我必須安裝以下 32 位軟體包:

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

然後執行snx安裝腳本:

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

您現在將擁有一個/usr/bin/snx32 位客戶端二進制執行檔。檢查是否缺少任何動態庫:

sudo ldd /usr/bin/snx

只有滿足所有依賴項後,您才能繼續進行以下幾點。

您可能需要先手動執行snx -s CheckpointURLFQDN -u USER,然後再編寫任何自動使用的腳本,以便將簽名 VPN 保存在/etc/snx/USER.db.

  1. 在使用它之前,您創建一個~/.snxrc file, using your regular user (not root) 具有以下內容的:
server IP_address_of_your_VPN
username YOUR_USER
reauth yes
  1. 要連接,請鍵入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 密碼的安全風險,您還可以將其用作:

echo 'Password' | snx
  1. 對於關閉/斷開 VPN,雖然您可以 stop/kill snx,但更好的官方方法是發出命令:

$snx -d SNX - 斷開連接…完成。

另請參閱Linux Checkpoint SNX 工具配置問題,了解有關使用哪個snx版本的一些說明。

  1. 如果自動登錄並接受新簽名(並理解安全含義),我編寫了一個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,而不是固定密碼。

引用自:https://unix.stackexchange.com/questions/450229