SSL Network Extender VPNを設定するためのCheckPointの公式の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の両方でうまく機能しています。
2012年のSNXビルド800007075。コマンドラインでVPNをサポートするために使用されます。だから私はそれをテストしました、そして見たところ、それはまだ最新のディストリビューションとカーネル4.xで動作します。
したがって、最終的に、SNXビルド800007075またはを取得できない場合、このスレッドのもう1つの答えはtrueになり、SNXの特定のバージョンが現在のLinuxバージョン(近い将来に発生する可能性があります)またはOTPサポートが必要な場合。
現在の解決策は、stillがコマンドラインからのVPNの実行をサポートするSNXのこの特定の最新バージョンをインストールすることです。
1)snx
build 800007075をインストールするには、次のようにします。
wget https://starkers.keybase.pub/snx_install_linux30.sh?dl=1 -O snx_install.sh
DebianおよびUbuntuやLinux MintのようなDebianベースのシステムでは、次のものが必要になる場合があります。
Sudo dpkg --add-architecture i386
Sudo apt-get update
次のものをインストールする必要がありました。
Sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
次に実行します:
chmod a+rx snx_install.sh
Sudo ./snx_install.sh`
/usr/bin/snx
32ビットクライアントバイナリ実行可能ファイルを知っているでしょう。ダイナミックライブラリが不足していないかどうかを確認します。
Sudo ldd /usr/bin/snx
すべての依存関係が満たされた場合にのみ、次のポイントに進むことができます。
シグネチャVPNをsnx -s CheckpointURLFQDN -u USER
に保存するには、自動使用をスクリプト化する前に、最初に手動で/etc/snx/USER.db
を実行する必要がある場合があります。
2)使用する前に、次の内容の~/.snxrc
ファイルを作成します。
server IP_address_of_your_VPN
username YOUR_USER
reauth yes
3)接続するには、snx
と入力します
$ snx
Check Point's Linux SNX
build 800007075
Please enter your password:
SNX - connected.
Session parameters:
===================
Office Mode IP : 10.x.x.x
DNS Server : 10.x.x.x
Secondary DNS Server: 10.x.x.x
DNS Suffix : xxx.xx, xxx.xx
Timeout : 24 hours
スクリプトでVPNパスワードをハードコーディングすることのセキュリティリスクを理解している場合は、次のように使用することもできます。
echo 'Password' | snx
4)VPNを閉じる/切断する場合、snx
を停止/強制終了できますが、より適切で正式な方法は次のコマンドを発行することです。
$snx -d
SNX - Disconnecting...
done.
使用するsnx
バージョンの説明については、 LinuxチェックポイントSNXツールの構成の問題 も参照してください。
5)ログインを自動化して新しい署名を受け入れる(およびセキュリティへの影響を理解する)場合、expect
スクリプトを記述しました。これをsnx_login.exp
と呼びました。
#!/usr/bin/expect
spawn /usr/bin/snx
set password [lindex $argv 0]
expect "*?assword:*"
send -- "$password\r"
expect {
"o:" {
send "y\r"
exp_continue
}
eof
}
PS。 snx
はOTPだけをサポートしていないことに注意してください。使用する場合は、他の回答にあるsnxconnect
スクリプトを使用する必要があります。
PPS @gibiesは、etokenを使用する場合、passwordフィールドは固定のパスワードではなくetokenからパスワードを取得することに注意を呼びかけました。
質問 FirefoxのVPN SSLネットワークエクステンダー でFirefox公式のSSL VPNエクステンダーインターフェイスをインストールする作業をしているときに、この質問のパズルのいくつかのピースを見つけて解決しました。
どうやら、チェックポイントからのsnx
のコマンドラインの使用は中止されましたが、リンクされた投稿で説明されているWebベースのクライアントは引き続き機能します。ただし、snx
クライアントの上にWeb + Javaインターフェースを複製しようとするpythonコマンドラインクライアントがあり、この投稿はそれが機能するように設定することについてです。
まず、python pip
からインストールされたsnxvp
が機能しません。 https://github.com/agnis-mateuss/snxvpn にはパッチが適用された更新バージョンがあり、署名されていない証明書や期限切れの証明書を無視するオプションなど、いくつかの便利なパッチがあり、さらに興味深いことに、 python2およびpython3互換です。
さらに、snxconnect.py
のすべてのURLをsslvpn/
から ``に変更する必要があります。
したがって、ステップバイステップの指示はおおよそ次のとおりです。
1)最初にsnx
セットアップをインストールします:
VPN内にある場合、インストールファイルを取得するには、次の操作を行います。
wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh
それ以外の場合は、リンクされた回答に記載されているように、Webインターフェースから取得する必要があります。
Debianの場合、次のものが必要になる場合があります。
Sudo dpkg --add-architecture i386
Sudo apt-get update
次のものをインストールする必要がありました。
Sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
次に実行します:
chmod a+rx snx_install.sh
Sudo ./snx_install.sh`
/usr/bin/snx
32ビットクライアントバイナリ実行可能ファイルを知っているでしょう。ダイナミックライブラリが不足していないかどうかを確認します。
Sudo ldd /usr/bin/snx
すべての依存関係が満たされた場合にのみ、次のポイントに進むことができます。
snxconnect
を使用する前に最初にsnx -s CheckpointURLFQDN -u USER
を実行する必要があるかどうか不明です。署名VPNは/etc/snx/USER.db
に保存されます。
2)snxconnect
pythonユーティリティです。このようなプログラムはWebインターフェイスをエミュレートしようとしますが、さらに興味深いことに、Java =認証する。
をセットアップするためにsnxconnect
をインストールするには、rootとして実行します。
apt-get -y install git make libxml2-dev libxslt1-dev zlib1g-dev python-pip
pip install pytz
git clone https://github.com/agnis-mateuss/snxvpn
git clone git://git.code.sf.net/p/sfreleasetools/code releasetools
cd snxvpn
Now, as for taking out the /sslvpn URL, some Checkpoint appliances need it, some do not. I am not still aware of why the difference. I need it, @WileyMarques does not.
sed -i "s/sslvpn\///g" snxconnect.py
。次に、Python3の場合はrootとして実行します:(推奨)
apt-get install python3-docutils python3-pip python3-libxml2 python3-dev python3-crypto python3-bs4
make
python3 setup.py install --prefix=/usr/local
。または代わりに、python2の場合はルートとして実行:
apt-get install python-docutils python-libxml2 python-lxml python-dev python-bs4 python-beautifulsoup
sed -i "s/distutils.core/setuptools/g" setup.py
make
python setup.py install --prefix=/usr/local
3)インストール後、非特権ユーザーとして実行できます。
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies
問題がなければ、パスワードの入力を求め、次のように言います。
SNX connected, to leave VPN open, leave this running!
このメッセージの取得に問題があり、代わりに数回連続して表示される場合は、「予期しない応答です。再試行してください。」というメッセージが表示され、Firefoxのメソッドを実行して、切断して適切にログアウトし、数分待ってからsnxconnect
コマンドをもう一度。
4)cookie(s)ファイルは、使用に成功した後、〜/ .snxcookiesに作成されます。
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
インターフェースを経由する新しいルートも表示します。
5)VPNを閉じる/切断する場合、snxconnect
を停止/終了することができますが、より適切で正式な方法は次のコマンドを発行することです。
$snx -d
SNX - Disconnecting...
done.
さらに、私は次のことも発見しました:
snxconnect
は、以前のVPN接続を切断し、公式のWebインターフェースでログアウトしたときの動作が向上しているようです奇妙な問題がある場合(snx -d
同じ結果になるかどうかを確認します);snx
がsnxconnect
と通信するため、snx
がそれを所有するためには、localhostの7776/TCPがフリーでなければなりません。snxconnect
/snx
に渡されるホスト名は仮想ホストとして扱われるため、VPN IPアドレスを直接使用することはできません。snx_install.sh
スクリプトを実行するための要件のようです。python2
として実行することを選択する場合がありますが、python2が段階的に廃止されるため、近い将来にsnxconnect
はそれをサポートしない可能性があります。/sslvpn
で始まっていないので、ウェブクライアントインターフェースを使用して、すべての/sslvpn
文字列にパッチを適用するか削除する必要があることは明らかです。特定のケースを確認します。コード内のその文字列の存在が古いバージョンによるものであるかどうかは、まったくわかりません。snxconnect
では、CheckPointのホスト名は、Web仮想ホストであるため、そこで認証されるとWebインターフェースが表示する正確な名前である必要があります。そうしないと、VPNの確立に成功しません。snx
を初めて使用するときは、VPN /チェックポイントサーバーの署名を含むファイルが/etc/snx/USER.db
に作成されます。snxconnect
を使用する必要があります。snx
だけではサポートされないためです。