セッションパラメータ:

セッションパラメータ:

CheckPoint SSL Network Extender VPNを設定するための公式のCheckpointコマンドラインツールは、Linuxコマンドラインで実行されなくなりました。 CheckPointはこれ以上積極的にサポートしていません。

snxただし、というコマンドラインユーティリティを認証して通信するJavaアプレットを複製したいという有望なプロジェクトがありますsnxconnect

私はsnxconnectDebian 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の実行をサポートします。

  1. ビルド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/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
    
  2. 接続するには、次のように入力します。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
  1. VPNの電源を切ったり切断したりするには停止/終了できますが、snxより良い公式な方法は次のコマンドを実行することです。
    $snx -d
    SNX - Disconnecting...
     done.

また、見ることができますLinuxチェックポイントSNXツール構成の問題使用するsnxバージョンのいくつかのガイドラインです。

  1. 自動ログイン、新しい署名の受け入れ、セキュリティへの影響を理解するためにスクリプトを作成しましたが、それほど安全で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/


したがって、ステップバイステップのガイドラインはおおよそ次のようになります。

  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

すべての依存関係が満たされた後にのみ、以下から続行できます。

署名VPNsnx -s CheckpointURLFQDN -u USERは。snxconnect/etc/snx/USER.db

  1. snxconnectこれでPythonユーティリティができました。このタイプのプログラムはWebインタフェースをエミュレートしようとしますが、より興味深いことに、認証にJavaは必要ありません。

したがって、インストールして設定するには、snxconnectrootとして実行してください。

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
  1. インストールしたら、権限のないユーザーとして実行できます。

    /usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies

すべてが正常な場合は、パスワードを求めて次のように表示されます。

SNX connected, to leave VPN open, leave this running!

このメッセージの受信に問題があり、「予期しない応答です。もう一度やり直してください」というメッセージが連続して複数回表示される場合は、Firefox の方法を実行し、正しく切断してからログアウトしてから、snxconnect再試行する前に数分程度待ってください。

  1. 正常に使用されると、~/.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 routetunsnxインターフェイスを介して新しいパスも表示されます。

  1. 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を起動する」オプションを「自動」に変更する必要があります。
  • snxlocalhostの7776 / TCPを使用するsnxconnectには、自由に使用できる必要がありますsnx
  • snxconnect/に渡されたホスト名はsnx仮想ホストと見なされるため、VPN IPアドレスを直接使用することはできません。
  • このスクリプトを実行するには、32ビットアーキテクチャをインストールする必要があるようですsnx_install.sh
  • python2より少ないスペースでトレードオフで実行することを選択できますが、python2は段階的に中断されるため、snxconnect近いうちにサポートされない可能性があります。
  • Webクライアントインターフェイスを使用すると、/sslvpn私のURLは/sslvpn。コードにその文字列が存在するのが以前のバージョンであるかどうかはまったくわかりません。フィードバックを受けたいのです。
  • CheckPointホスト名の名前はsnxconnectWeb仮想ホストであるため、Webインターフェイスが認証後に表示する正確な名前である必要があります。そうしないと、VPN を正常に設定できません。
  • 初めてsnx使用すると、VPN / Checkpoint Serverによって署名されたファイルが作成されます/etc/snx/USER.db
  • snxconnectコマンドラインでOTPを使用する必要がある場合はサポートされていないため、snx別途実行する必要があります。

関連情報