CheckPoint SSL Network Extender VPNを設定するための公式のCheckpointコマンドラインツールは、Linuxコマンドラインで実行されなくなりました。 CheckPointはこれ以上積極的にサポートしていません。
snx
ただし、というコマンドラインユーティリティを認証して通信するJavaアプレットを複製したいという有望なプロジェクトがあります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で正しく動作します。
答え1
2012年のSNXビルド800007075は、Linuxコマンドラインを介してCheckPoint VPNをサポートしています。だからテストしてみましたが、最新のディストリビューションとカーネル4.x / 5.xでまだ動作します。
したがって、最終的にSNXビルド800007075を取得できない場合、このスレッドの他の答えは正しいです。または特定のバージョンのSNXが現在のLinuxバージョンで機能していない場合(近い将来に発生する可能性があります)またはOTPサポートが必要な場合。
現在の解決策は、最新バージョンのSNXをインストールすることです。まだコマンドラインからのVPNの実行をサポートします。
- ビルド800007075をインストールするには、
snx
以下から入手してください。
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/snx
32ビットクライアントバイナリ実行可能ファイルが作成されました。動的ライブラリが欠落していることを確認してください。
sudo ldd /usr/bin/snx
すべての依存関係が満たされた後にのみ、以下から続行できます。
自動化された使用スクリプトを作成する前に、まず手動で実行してsnx -s CheckpointURLFQDN -u USER
署名付きVPNを/etc/snx/USER.db
。
~/.snxrc file, using your regular user (not root)
使用する前に、次の内容を含むファイルを作成する必要があります。server IP_address_of_your_VPN username YOUR_USER reauth yes
接続するには、次のように入力します。
snx
$ snx Check Point Linux SNXビルド800007075パスワードを入力してください:
SNX - 接続されました。
セッションパラメータ:
オフィスモードIP:10.xxx DNSサーバー:10.xxxセカンダリDNSサーバー:10.xxx DNSサフィックス:xxx.xx、xxx.xxタイムアウト:24時間
VPNパスワードをスクリプトにハードコードすることのセキュリティリスクを理解している場合は、次のように使用することもできます。
echo 'Password' | snx
- VPNの電源を切ったり切断したりするには停止/終了できますが、
snx
より良い公式な方法は次のコマンドを実行することです。
$snx -d
SNX - Disconnecting...
done.
また、見ることができますLinuxチェックポイントSNXツール構成の問題使用するsnx
バージョンのいくつかのガイドラインです。
自動ログイン、新しい署名の受け入れ、セキュリティへの影響を理解するためにスクリプトを作成しましたが、それほど安全で
expect
はありませんが、自動ログインが可能で、snx_login.exp
パスワードを引数として呼び出すことができます。 :#!/usr/bin/expect は /usr/bin/snx を生成します。
パスワード設定 [linindex $argv 0]
予想される"?パスワード:"送信 - "$password\r"
{"o:"{send "y\r" exp_continue}eof} をお楽しみください
PS。別のOTPをサポートしていないため、それを使用するには別の回答にあるスクリプトをsnx
使用する必要があります。snxconnect
PPS @gibiesは、etokenを使用すると、パスワードフィールドに固定パスワードではなくパスワードと添付のetokenが追加されることを指摘しました。
答え2
問題の Firefox 公式 SSL VPN Extender インターフェイスをインストールするときFirefoxのVPN SSLネットワーク拡張機能、私はこの問題に関するより多くのパズルを見つけて解決しました。
明らかに、チェックポイントのコマンドラインの使用はsnx
中止されましたが、リンクされた投稿で説明されているWebベースのクライアントはまだ機能します。ただし、クライアント上にWeb + Javaインターフェイスを複製しようとするPythonコマンドラインクライアントがあり、snx
この記事ではこれを機能させる方法について説明します。
まず、インストールsnxvp
されたバージョンがpython pip
機能しません。最新のパッチバージョンが利用可能です。https://github.com/agnis-mateuss/snxvpn署名されていない証明書および/または期限切れの証明書を無視するオプションを含むいくつかの便利なパッチがあり、より興味深いことにはpython2です。そしてPython3と互換性があります。
また、すべてのURLは ``snxconnect.py
で変更する必要がありますsslvpn/
。
したがって、ステップバイステップのガイドラインはおおよそ次のようになります。
- まず
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
すべての依存関係が満たされた後にのみ、以下から続行できます。
署名VPNsnx -s CheckpointURLFQDN -u USER
は。snxconnect
/etc/snx/USER.db
snxconnect
これでPythonユーティリティができました。このタイプのプログラムはWebインタフェースをエミュレートしようとしますが、より興味深いことに、認証にJavaは必要ありません。
したがって、インストールして設定するには、snxconnect
rootとして実行してください。
apt-get -y install git make libxml2-dev libxslt1-dev zlib1g-dev
apt-get -y install 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-pip python3-docutils python3-pip python3-libxml2 python3-dev python3-crypto python3-bs4
pip install rsa
make
python3 setup.py install --prefix=/usr/local
。または代わりに、python2の場合はrootとして実行されます。
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
インストールしたら、権限のないユーザーとして実行できます。
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies
すべてが正常な場合は、パスワードを求めて次のように表示されます。
SNX connected, to leave VPN open, leave this running!
このメッセージの受信に問題があり、「予期しない応答です。もう一度やり直してください」というメッセージが連続して複数回表示される場合は、Firefox の方法を実行し、正しく切断してからログアウトしてから、snxconnect
再試行する前に数分程度待ってください。
- 正常に使用されると、~/.snxcookies に Cookie ファイルが生成されます。
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
インターフェイスを介して新しいパスも表示されます。
VPNの電源を切ったり切断したりするには停止/終了できますが、
snxconnect
より良い公式な方法は次のコマンドを実行することです。$snx-d
SNX - 切断...完了しました。
さらに、私は次の事実を学びました。
snxconnect
以前のVPN接続を切断して公式Webインターフェイスからログアウトすると、パフォーマンスが向上するようです。奇妙な問題があればsnx -d
(同じ結果が出ていることを確認するにはこれを試してください。)- PYTHONHTTPSVERIFY = 0はpython2バージョンにのみ影響します。
- Web インターフェイスがセカンダリ CheckPoint の場所に HTML リダイレクトを実行している場合、リダイレクトのホスト名を直接指すと、より良い結果が得られます。
- ファイアウォールの証明書が自己署名されている場合(通常はそうです)、--skip-certオプションを使用する必要があります。それ以外の場合、認証は失敗します。
- 再認証に関連する多くの問題を回避するには、ユーザーがリモートVPNポイントにログインしている間(x時間のタイムアウト)、--save-cookiesを使用して認証Cookieを使用する必要があります。
- 前の質問で述べたようにスクリプトが正しく機能するには、「ログイン時にSSL Network Extenderを起動する」オプションを「自動」に変更する必要があります。
snx
localhostの7776 / TCPを使用するsnxconnect
には、自由に使用できる必要がありますsnx
。snxconnect
/に渡されたホスト名はsnx
仮想ホストと見なされるため、VPN IPアドレスを直接使用することはできません。- このスクリプトを実行するには、32ビットアーキテクチャをインストールする必要があるようです
snx_install.sh
。 python2
より少ないスペースでトレードオフで実行することを選択できますが、python2は段階的に中断されるため、snxconnect
近いうちにサポートされない可能性があります。- Webクライアントインターフェイスを使用すると、
/sslvpn
私のURLは/sslvpn
。コードにその文字列が存在するのが以前のバージョンであるかどうかはまったくわかりません。フィードバックを受けたいのです。 - CheckPointホスト名の名前は
snxconnect
Web仮想ホストであるため、Webインターフェイスが認証後に表示する正確な名前である必要があります。そうしないと、VPN を正常に設定できません。 - 初めて
snx
使用すると、VPN / Checkpoint Serverによって署名されたファイルが作成されます/etc/snx/USER.db
。 snxconnect
コマンドラインでOTPを使用する必要がある場合はサポートされていないため、snx
別途実行する必要があります。