【VMware@SoftLayer】SSL VPN－Plus編

#前回までのあらすじ

IBMとVMwareが協業しましたね。

SoftLayer上でVMwareを使っていろいろできるかどうか確認するという趣味を持つ私としては嬉しい限りです。

前回までの詳しい流れについては[こちら](http://qiita.com/khayama/items/b8dc884c7ea273861a24)の記事をご覧ください。


#今回の内容
NSX Edge Service Gatewayの1つの機能であるSSL VPN-Plusを用いてNSX上で作成したセグメントをプライベートネットワークとして活用し、SSL VPNを通して安全に接続できることを確認します。

#SSL VPN-Plus概要
![sslvpn1.png](https://qiita-image-store.s3.amazonaws.com/0/103277/af4708b6-dbb4-b88a-86cb-d442c4694f5e.png)

SSL VPN-Plusは、NSX Edgeの後方にプライベートネットワークを設定し、そのネットワークへのセキュアなアクセスを提供する機能です。

サポートされているクライアント側のOSは以下の通りです。

- Windows: XP以降
- Mac OS: X Tiger、Leopard、Snow Leopard、Lion、Mountain Lion、Maverick、Yosemite
- Linux：ユーザーインターフェイスを機能させるにはTCL-TKが必要

#実装
SSL VPN-Plusには、SSLクライアントソフトウェアをダウンロードしてアクセスする「ネットワークアクセスモード」と、クライアントをダウンロードしなくてもWebブラウザ経由でアクセスできる「Webアクセスモード」の2種類があります。

設定方法にさほど差はないので、今回は「ネットワークアクセスモード」を確認していきたいと思います。


##SSL VPN-Plus サーバ設定の追加

Web ClientからNSX Edgeを選択し、「管理」の「SSL VPN-Plus」タブから「サーバー設定」をクリックします。
![sslvpn2.png](https://qiita-image-store.s3.amazonaws.com/0/103277/1b83e6df-4541-0503-d96d-0c69d86de13b.png)
右側の「変更」からサーバー設定を変更します。

ここでは暗号化方式やポートなど、基本的な設定を行います。
![sslvpn3.png](https://qiita-image-store.s3.amazonaws.com/0/103277/60ab2eba-9c2b-06ab-eb46-bfad0b66aeef.png)

##IPプールの追加

リモートクライアントに割り当てるIPアドレスの範囲を設定します。
![sslvpn4.png](https://qiita-image-store.s3.amazonaws.com/0/103277/cbaa38cb-1955-ca01-464b-664f95fd35e9.png)
ここで設定したIPプールの範囲内でクライアントにIPアドレスが割り当てられます。「宛先」欄にはIPプールの最後のIPアドレスを入力してください。

##プライベートネットワークの追加

SSL VPN接続によってアクセスしたいネットワークセグメントを追加します。

今回は1つのVXLAN上のセグメントを非公開ネットワークとして登録しました。
![sslvpn5.png](https://qiita-image-store.s3.amazonaws.com/0/103277/b5eb7816-d339-53b0-54e1-d4ca698ee5db.png)

##認証の追加(オプション)

SSL VPN-Plusでは、SSL ゲートウェイにバインドされている外部認証サーバ（AD、LDAP、Radius、RSAを追加可能です。

この機能を利用した場合、バインドされた認証サーバにアカウントがあるすべてのユーザーが認証されます。

##インストールパッケージの追加

リモートユーザーがダウンロードするSSLクライアントのパッケージの設定をしていきます。
![sslvpn6.png](https://qiita-image-store.s3.amazonaws.com/0/103277/e3f18816-1a0b-f7d1-b442-062dd792fdad.png)
対象OSや、インストール時のパラメーターを設定します。

また、「ゲートウェイ」にはNSX Edgeの**パブリック**インターフェースのFQDN(もしくはIPアドレス)を入力します。
ここで設定したゲートウェイがSSLクライアントにバインドされることになります。


##ユーザーの追加

リモートユーザーを追加します。
![sslvpn7.png](https://qiita-image-store.s3.amazonaws.com/0/103277/b5f6dbac-0c78-e10d-6b30-da0b58219d86.png)
ユーザー名、パスワードを入力し、パスワードのポリシーを設定します。


##ログイン/ログオフスクリプトの追加(オプション)

リモートユーザーがログイン、ログオフする際に実行するスクリプトを割り当てることができます。

ユーザー毎に割り当てを変更することなどはできず、有効、無効を一律で設定することができるのみです。

##SSL VPN-Plusの有効化

最後にダッシュボードからサービスを有効化し、設定は完了です。

![sslvpn8.png](https://qiita-image-store.s3.amazonaws.com/0/103277/6b717d6e-7bf3-755c-96fc-855830871c53.png)

##パスワードのポリシー

また、ここまで設定が完了すると、ローカルの認証サーバーが「認証」タブに追加されていると思います。
![sslvpn14.png](https://qiita-image-store.s3.amazonaws.com/0/103277/17e9b73a-72bd-9d6a-e17f-3e39c4e9851f.png)

この認証サーバーの設定を変更することで、パスワードのポリシーを細かく設定することができます。

#VPN経由でのアクセス

では、先ほどプライベートネットワークに設定したセグメントにアクセスできるか確認していきます。

まずはSSLクライアントをダウンロードします。ブラウザから、https://(ExternalEdgeInterfaceIP)/sslvpn-plus/にアクセスしてください。

ちなみに(ExternalEdgeInterfaceIP)とは、先ほどゲートウェイとして設定したパブリックのインターフェースです。

アクセスすると下記のような画面になるので、ここで先ほど作成したリモートユーザーの資格情報を入力しましょう。
![sslvpn9.png](https://qiita-image-store.s3.amazonaws.com/0/103277/a473ad10-53b2-2256-2802-2dd1f1bf518a.png)

ログインに成功すると先ほど作成したSSLクライアントのパッケージをダウンロードすることができます。
![sslvpn10.png](https://qiita-image-store.s3.amazonaws.com/0/103277/f3f9047d-ffd6-3366-7015-8c1003028287.png)

Windowsの場合、「VMware_index.html-Setup.exe」というファイルがダウンロードされるので、それを実行し、SSLクライアントをインストールしていきます。

お使いのセキュリティーソフトによっては、ダウンロード時、実行時にアラートが出ると思いますが、適切な処置をお願いいたします。

![sslvpn11.png](https://qiita-image-store.s3.amazonaws.com/0/103277/e1486168-64db-783b-0569-37ef8305f636.png)
インストールが完了するとログインできるようになりますので、ログイン情報を入力し、SSL VPNにログインしましょう。

ログインが完了したら、設定したプライベートネットワーク上のサーバーにアクセスします。

pingが通ることを確認します。
![sslvpn12.png](https://qiita-image-store.s3.amazonaws.com/0/103277/cc48d509-1f9a-6529-b3ad-3c6f230829a7.png)

リモートデスクトップも通りました。
![sslvpn13.png](https://qiita-image-store.s3.amazonaws.com/0/103277/7da3ca43-a84a-ebb5-87c2-2c1caa5e21e9.png)


見事にアクセスできました！

#運用管理時の懸念点

最後に、実際にSSL VPN-Plusを運用していく上で懸念点となり得るところを調査していますのでそれをメモとして書き記しておきます。

- 新規ユーザーの追加はEdgeから管理者が行う必要がある。(クライアント側では追加できない)
- パスワードの期限設定はどうなっているのか？
    - 設定は管理者が行う
    - 変更はクライアントが行う
- ログはどこに残るのか？
    - ログはNSX Edgeアプライアンスで設定されたSyslogサーバーに送信される
    - クライアント側のログは、「%PROGRAMFILES%/VMWARE/SSL VPN Client」配下に保存される


#まとめ

NSX Edgeを利用し、プライベートなネットワークを作成することができました。これにより、設定したセグメントにセキュアに接続することができます。