「FirefoxのVPN SSLネットワークエクステンダー」の質問でFirefox公式のSSL VPNエクステンダーインターフェースをインストールする作業をしているときに、この質問のパズルのいくつかのピースを見つけて解決しました。
どうやら、snxチェックポイントからのコマンドラインの使用は中止されましたが、リンクされた投稿に記載されているWebベースのクライアントは引き続き機能します。ただし、Pythonコマンドラインクライアントがあり、snxクライアントの上にWeb + Javaインターフェースを複製しようとしています。この投稿では、クライアントが機能するように設定しています。
まず、snxvpインストールされたpython pipが機能しません。https://github.com/agnis-mateuss/snxvpnに更新されたパッチバージョンがあり、署名されていない証明書や期限切れの証明書を無視するオプションを含むいくつかの便利なパッチがあり、さらに興味深いことに、python2 および python3互換です。
さらに、上のすべてのURL snxconnect.pyをからに変更する必要があります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/snx32ビットのクライアントバイナリ実行可能ファイルが作成されます。ダイナミックライブラリが不足していないかどうかを確認します。
sudo ldd /usr/bin/snx
すべての依存関係が満たされた場合にのみ、次のポイントに進むことができます。
snx -s CheckpointURLFQDN -u USERを使用する前に最初に実行する必要があるかどうか不明です。snxconnect署名VPNはに保存されてい/etc/snx/USER.dbます。
2)これでsnxconnectpythonユーティリティができました。このようなプログラムは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 routetunsnxインターフェイスを通過する新しいルートも表示されます。
5)VPNを閉じる/切断するためにsnxconnect、停止/強制終了することはできますが、より適切で正式な方法は次のコマンドを発行することです。
$snx -d
SNX - Disconnecting...
done.
さらに、私は次のことも発見しました:
snxconnect以前のVPN接続を切断して公式のWebインターフェースでログアウトすると、奇妙な問題が発生した場合に動作が向上するようです(snx -d同じ結果が得られるかどうかを確認する必要があります)。
- PYTHONHTTPSVERIFY = 0はpython2バージョンにのみ影響します。
- Webインターフェースが、リダイレクトされたホスト名を直接指す、セカンダリCheckPointの場所へのHTMLリダイレクトを行っている場合、より良い結果が得られます。
- ファイアウォールの証明書が自己署名されている場合(多くの場合そうです)、-skip-certオプションを使用する必要があります。そうしないと認証が失敗します。
- 再認証にそれほど多くの問題がなかったため、ユーザーがリモートVPNポイントにログインしている間(タイムアウトはx時間)、-save-cookiesを使用して認証Cookieを使用する必要がありました。
- 前の質問で説明したように、スクリプトを機能させるには、「サインイン時にSSL Network Extenderを起動する」オプションを「自動」に変更する必要があります。
- localhostの7776 / TCPは、
snxそれを所有するために、それsnxconnectをsnx使用することと対話するため、無料である必要があります。
snxconnect/に渡されるホスト名はsnx仮想ホストとして扱われるため、VPN IPアドレスを直接使用することはできません。
- 32ビットアーキテクチャのインストールは、
snx_install.shスクリプトを実行するための要件のようです。
python2より少ないスペースとのトレードオフとして実行することを選択することもできますが、python2が段階的に廃止さsnxconnectれているため、近い将来、サポートされなくなる可能性があります。
/sslvpnURLがで始まっていないため、Webクライアントインターフェイスを使用して、すべての文字列をパッチまたは削除する必要があることは明らか/sslvpnです。あなたの特定のケースをチェックします。コード内のその文字列の存在が古いバージョンによるものであるかどうかは、まったくわかりません。
- で
snxconnect、それはウェブ仮想ホストであるとして、チェックポイントのホスト名、ウェブインターフェースがあなたを示している正確な名前は、かつてそこに認証されなければなりません。そうしないと、VPNの確立に成功しません。
- 初めて
snx使用する場合は、VPN /チェックポイントサーバーの署名を含むファイルがに作成され/etc/snx/USER.dbます。
- コマンドラインからOTPを使用する必要がある場合は
snxconnect、snx単独ではサポートされていないため、使用する必要があります。