2018年04月05日

snxが動かなくて・・・

WindowsからCheckPointのVPNで接続して、AS400端末で働くような環境の場合、Ubuntu上で互換環境(snx + TN5250)を実現できるといいなと思うことがあります。
結果としては、いろいろやってはみたものの現時点でVPN接続を確立できなかったため、Ubuntu上に互換環境を構築することはできませんでした。
将来さらにトライしてみることもあると思うので、備忘のためにメモを残しておきます。

1. snxを動かすのに必要になるライブラリをインストールします。
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install libstdc++5:i386 libxcb1:i386 libaudit1:i386 libgcc1:i386 libxau6:i386 libxdmcp6:i386 libpam0g:i386 libx11-6:i386

2. snxインストールのためのスクリプトを取得のうえ、インストールを実行します。
$ wget https://github.com/g3n1k/linux-check-point-web-based-client/raw/master/snx_install.sh
(スクリプトは自社のVPNサーバから取ってくることもできます→ $ wget --no-check-certificate https://xxx.xxx.xxx.xxx/sslvpn/SNX/INSTALL/snx_install.sh)
$ sudo sh ./snx_install.sh

3. snxインストール後、必要なライブラリがそろっているかどうか、確認します。
$ sudo ldd /usr/bin/snx
linux-gate.so.1 (0xf7fba000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf7e57000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7e38000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf7e20000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7e1b000)
libpam.so.0 => /lib/i386-linux-gnu/libpam.so.0 (0xf7e0b000)
libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0xf7df0000)
libstdc++.so.5 => /usr/lib/i386-linux-gnu/libstdc++.so.5 (0xf7d31000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7b55000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf7b29000)
/lib/ld-linux.so.2 (0xf7fbc000)
libaudit.so.1 => /lib/i386-linux-gnu/libaudit.so.1 (0xf7aff000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf79fb000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf79dd000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf79d9000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf79d2000)
libcap-ng.so.0 => /lib/i386-linux-gnu/libcap-ng.so.0 (0xf79cc000)
libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xf79b1000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf79a7000)
上記のように、すべての行に対応ファイルが表記されていれば、問題なくsnxを実行できます。
ファイルが見つからない場合は、そのファイルをふくむパッケージをインストールする必要があります。

4-1. コマンドラインでsnxを動かす。
$ snx -s xxx.xxx.xxx.xxx -u username
認証がとおりませんでした。

4-2. python上で動かす「snxvpn」をためしてみました。
$ sudo apt-get install python-pip
$ pip install snxvpn
$ snxconnect -H xxx.xxx.xxx.xxx -U username
これもcertificateが承認されません。

4-3. Windowsで接続しているVPNクライアントからcertificateを拝借してくる。
認証情報は「C:\Program Files (x86)\CheckPoint\Endpoint Connect\trac.config」に保管されているのですが、通常このファイルは暗号化されているため、直接このファイルから認証情報を取り出すことはできません。
暗号化を解除するためには、まずVPNクライアントとバックグラウンドで走っているCheckPointサービスを停止したうえで、おなじフォルダにある「trac.defaults」ファイルの「OBSCURE_FILE」引数を「1」から「0」に変更します。
その状態でCheckPointサービスとVPNクライアントを起動すると、「trac.config」に暗号化されないままの認証情報が保存される、というわけです。
エディタで「trac.config」ファイルを開くと、「ica_cert_object」項目の「PARAM」タグで囲まれた部分に、certificateが記入されているのが見つかります。
その部分をそのまま(改行をふくめて)コピーし、「vpn_certificate.crt」とでも名前をつけたテキストファイルにペーストし、「-----BEGIN CERTIFICATE-----」「-----END CERTIFICATE-----」で囲みます。
結果として、「vpn_certificate.crt」ファイルは、以下のように記述されます。

-----BEGIN CERTIFICATE-----
暗号化されない「trac.config」ファイルから取り出したcertificate
-----END CERTIFICATE-----

Windowsから取り出したcertificateファイルを、以下のコマンドでUbuntuに認識させます。
$ sudo cp vpn_certificate.crt /usr/local/share/ca-certificates/
$ sudo update-ca-certificates

この状態でふたたびsnxconnectコマンドをためしましたが、今度はcertificateとhost名が一致しないというようなエラーで、けっきょく接続できませんでした。
$ snxconnect -H xxx.xxx.xxx.xxx -U username

4-4. javaが動作する古いFirefoxをインストールする方法もためしてみました。
$ mkdir -p ~/bin && cd ~/bin
~/bin$ wget https://ftp.mozilla.org/pub/firefox/releases/45.0esr/linux-x86_64/en-US/firefox-45.0esr.tar.bz2
~/bin$ tar xvf ./firefox-45.0esr.tar.bz2
~/bin/firefox$ sudo apt-get install gcc libstdc++5 lib32gcc1 lib32stdc++6
この状態でFirefoxを起動し、VPNサーバへアクセスしてみましたが、やはり接続はできませんでした。

けっきょく接続できなかったのですが、Ubuntu端末がわの不備なのか、VPNサーバがわの設定の問題なのか、いまひとつはっきりしません。
とりあえず現時点ではあきらめることにしましたが、Ubuntuがわの環境がかわればまたべつの可能性も生まれるので、ちかいうちに再チャレンジしてみるつもりです。

参考ウェブページ一覧表(順不同)

https://github.com/schlatterbeck/snxvpn
https://pypi.python.org/pypi/snxvpn
https://github.com/schlatterbeck/snxvpn/issues/7
http://checkpoint-master-architect.blogspot.jp/2012/09/e75x-endpoint-connect-client-decrypting.html
https://g3n1k.wordpress.com/2017/05/12/linux-check-point-web-vpn-client/
posted by hatakazu at 10:21| Comment(0) | Linuxとか | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。