Pulse Connect Secure

From ArchWiki
Jump to navigation Jump to search

Pulse Connect Secure (PCS, 旧名: Juniper SSL VPN) はビジネス向けの商用 VPN ソリューションです。

インストール

AUR

pulse-secureAUR パッケージをインストールしてサービスを実行:

$ pulsesvc -h <hostname> -Port <port number> -u <username> -realm <realm> -Url <login URL>

ログイン URL はブラウザで使用する URL とは違うので注意してください。#サーバー/URL に関するノートセクションを参照。

GUI クライアントの pulseUi を使用するには webkitgtkAUR をインストールする必要があります。GUI クライアントでは URL はブラウザで使用する URL と同じです。

OpenConnect

OpenConnect の VPN クライアントは Pulse Connect Secure もサポートしています。詳しくは アナウンス を見てください。

使用するには openconnect をインストールします。Juniper VPN のセットアップが接続後に入力を必要としない場合、以下のコマンドで接続できます:

# openconnect --juniper https://vpn.example.com/

NetworkManager を使いたい場合は networkmanager-openconnect あるいは最新の git バージョンをインストールしてください。VPN 接続は GUI や以下のコマンドで作成できます:

$ nmcli con add type vpn con-name "Connection Name" ifname "*" vpn-type openconnect -- vpn.data "gateway=vpn.example.com,protocol=nc"

サードパーティスクリプト

JNC

ノート: In some cases[リンク切れ 2017-12-19], depending on your corporate policy configuration, you must login through the browser. If this is the case, command-line tools (jnc, junipernc) will not work.

1. 会社の VPN サイトを開いて、ログインしたら Juniper クライアントをダウンロード・インストールしてください。

2. jncAUR をインストールしてください。64ビット環境では32ビットのパッケージをインストールする必要があります (Multilib)。上流のウェブサイト を参照。

3. .config ファイルを保存するディレクトリを作成:

$ mkdir -p ~/.juniper_networks/network_connect/config

4. 作成したディレクトリに以下の .config ファイルを適宜修正してコピー:

~/.juniper_networks/network_connect/config/.config
host=foo.bar.com
user=username
password=secret
realm= realm with spaces
cafile=/etc/ssl/bar-chain.pem
certfile=
cafile
ホストの証明書を検証する ca チェイン。
certfile
DER 形式のホスト証明書。Cafile または certfile は VPN のサインインページからダウンロードして設定できます (証明書情報から証明書をエクスポート)。
realm
VPN のサインインページのソースから realm を確認できます。realm という単語で検索してください。

5. Network Connect を起動:

$ jnc --nox

クライアントを停止するには:

$ jnc stop

MSJNC

Mad Scientist の "msjnc" スクリプトgtk2-perl, glib-perl, unzip を必要とします。

64ビット環境の手順

Multilib を有効化して lib32-zlib, net-tools, glib-perl, perl-libwww, gtk2-perl パッケージをインストールしてください。

使用する Juniper VPN ウェブサイトにアクセスしたら、ログインしてインストールを試行してください。以下のようなエラーが表示されます:

Setup failed.
Please install 32 bit Java and update alternatives links using update-alternatives command.
For more details, refer KB article KB25230

これで ~/.juniper_networks/ncLinuxApp.jar ファイルが作られるはずです。

ncLinuxApp.jar がダウンロードされない場合、手動で取得してください。URL は次のようになっているはずです: https://server/dana-cached/nc/ncLinuxApp.jar (先にログインが必要です)。

それから msjnc スクリプトをダウンロードして実行可能属性を付与して PATH を通してください。

msjnc を使って ncsvc を自動でインストール

(ncsvc をインストールする前に) msjnc を初めて実行したときに ncLinuxApp.jar が展開され、サービスをインストールするためにパスワードが要求されます。sudo を設定してユーザーが全てのコマンドを実行できるようにする必要があります。

suid で ~/.juniper_networks/network_connect/ncsvc にサービスがインストールされたら、プロファイルを作成して接続してください。

msjnc の手動インストール

以下のディレクトリを作成:

$ mkdir -p ~/.juniper_networks/network_connect
$ mkdir -p ~/.juniper_networks/tmp

ソフトウェアを展開:

$ unzip ~/.juniper_networks/ncLinuxApp.jar -d ~/.juniper_networks/tmp

NC.jarnetwork_connect ディレクトリにコピー:

$ cp ~/.juniper_networks/tmp/NC.jar ~/.juniper_networks/network_connect

サービスをインストール:

$ sh ~/.juniper_networks/tmp/installNC.sh ~/.juniper_networks/network_connect

msjnc を起動して、プロファイルを作成して接続してください。

サーバー/URL に関するノート

サーバー/URL にはログインページとは異なるログインフォームを処理する URL を指定する必要があります。例えば、ログインフォームが /dana-na/auth/url_0/welcome.cgi にあったとしてもフォームが実際に処理されるのは /dana-na/auth/url_0/login.cgi であったりします。ログインページの HTML からフォームの action 属性を探してください。

JVPN

JVPN Perl スクリプト は Juniper VPN 接続を確立して以下の機能をサポートしています:

  • Host Checker による接続。
  • root で実行したときに Juniper に必要な java とデーモンファイル (ncsvc) を自動でダウンロード。

インストール

perl の依存パッケージ perl-term-readkeyperl-lwp-protocol-httpsインストールしてください。ダウンロードしたら、jvpn を root で実行するか通常ユーザーで実行するかによって以下のセクションの手順に従ってください。

root で実行

以下のコマンドを実行してください:

# curl -L https://github.com/samm-git/jvpn/archive/v0.7.0.tar.gz | tar xz

カレントディレクトリに jvpn-0.7.0 ファイルが作成されます。

以下のコマンドでスクリプトを起動してください:

# ./jvpn.pl

初めて起動したときにスクリプトは必要なファイルをすべてダウンロードします。

通常ユーザーで実行

ウェブブラウザを使って VPN のウェブサイトに接続して適切なソフトウェアをダウンロードしてください。ダウンロードしたファイルは ~/.juniper_networks/network_connect/ に配置されます (VPN 接続が失敗した場合でもダウンロードされます)。

ブラウザで Java プラグインを機能させる必要があるため複雑です (適切なセキュリティ設定が必要です)。Network Connect のインストール時に、ブラウザは ncsvc (Juniper デーモン) の setuid フラグを設定するための root パスワードを要求します。

そして以下のコマンドを実行して jvpn をフォルダにインストール:

$ cd ~/.juniper_networks/network_connect
$ curl -L https://github.com/samm-git/jvpn/archive/v0.7.0.tar.gz | tar xz --strip-components=1

次に jvpn.ini を編集してください (ファイル内に手順が書かれています)。

最後に、以下のコマンドでスクリプトを起動:

$ cd ~/.juniper_networks/network_connect
$ ./jvpn.pl

トラブルシューティング

ログインは成功するのに Network Connect が確立しない

  1. 最初に Java がインストールされているか確認してください。
  2. ~/.juniper_networks/network_connect を開いてください。
  3. ncsvc の setuid が root に設定されていることを確認してください。設定されていない場合は修正してください。
  4. ldd ncsvc を実行してライブラリが欠けていないか確認してください。
  5. Juniper フォーラム に書かれている手順に従ってコマンドラインから実行してください。-L 5 スイッチで全てをログに出力し root で strace を使います。また、ncsvc.log にエラーが出力されていないか確認してください。

Network Connect が起動すると設定エラーメッセージが表示される

net-tools がインストールされているか確認してください。

ncapp.error Failed to connect/authenticate with IVE.

Ubuntu フォーラムの 投稿 を見てください。場合によっては、ポリシーによってコマンドラインからの接続が許可されないことがあります。bin32-jreAURbin32-firefoxAUR をインストールしてブラウザから認証してください。

ncsvc とカーネルのバージョン 3.19 と 4.5 から 4.9

Juniter VPN は linux 3.19 をサポートしていません。UNIXgr を見てください。

linux バージョン 4.5 から 4.9 でも問題が存在します (4.10 以上でもおそらく問題が発生します)。詳しくは カーネルのバグトラッカーの Bug 121131 を見てください。問題を解決する方法は2つあります:

# echo 0 > /proc/sys/net/ipv6/conf/default/router_solicitations

上記の設定を永続化するには systemd-tmpfiles を使います:

/etc/tmpfiles.d/disable-router-solicitations.conf
w /proc/sys/net/ipv6/conf/default/router_solicitations - - - - 0

Unauthorized new route has been added, disconnecting

pulse-secureAUR クライアントを使用している場合、ルーティングテーブルのストラテジが衝突して connman で VPN が使えないことがあります。~/.pulse_secure/pulse/pulsesvc.log に以下のようなメッセージがないかチェックしてください:

rmon.error Unauthorized new route to x.x.x.x/y.y.y.y has been added (conflicts with our route to z.z.z.z), disconnecting (routemon.cpp:598)

上記のメッセージがある場合、NetworkManager を使用することで問題は解決します。