VPNをアンドロイドで使う解説シリーズの2回目は、VPNサーバーをインストールしてみることにします。ただし、VPNサーバーはWindowsマシン(非Windows Server)にインストールすることとし、そのインターネット接続環境は、個人宅の一般的な構成である「ブロードバンドルーター」+「ローカルネットワーク」とします。また、VPNサーバーをインストールするマシンは、常時インターネットに接続可能なものとし、原則、スリープしない設定になっているものとします。
VPNソフトウェアとしては、フリーで利用可能な「Softether VPN」を使います。これを使う理由はフリーであるからというのもありますが、無料のダイナミックDNSサービスがあり、IPアドレス割り当てが固定でない一般的なISPを使っていても外出先からVPNサーバーに接続が可能になるからです。また、アンドロイドやデスクトップアプリケーションをインストールできないWindows RTにも対応するなど、クライアント側の対応プラットフォームが多いこともメリットです。
まずは、サーバーソフトウェアをダウンロードしてインストールします。また、WindowsやLinux用には、専用クライアントも用意されているので、必要に応じてインストールしてもいいでしょう。ただし、本連載はアンドロイド向けであるため、WindowsやLinuxのクライアントのインストールや設定については解説しません。
・SoftEther VPN
http://ja.softether.org/
・ソフトウェアダウンロード
http://ja.softether.org/5-download
SoftEther VPNのサイトからWindows版のサーバーソフトウェア(SoftEther VPN Server and VPN Bridge)をダウンロードしてインストールします。
インストールが完了し、最後の表示(写真01)で「SoftEther VPNサーバー管理マネージャを起動します」というのがオンになっていれば、管理ツール「SoftEther VPN Server Manager」が起動します(写真02)。設定はここから行います。リストで「localhost(このサーバー)」が選択されていることを確認して「接続」ボタンを押します。最初は、サーバーの管理用パスワードの設定です。以後の管理で必要になるので、忘れないように何かに記録しておきます。
写真01: インストールが終わったときのウィンドウに「SoftEther VPNサーバー管理マネージャを起動します」という項目があり、これがオンになっていると管理マネージャが起動する。設定はこの管理マネージャから行う |
次に「簡易セットアップ」ウィンドウ(写真03)が表示されるので、「リモートアクセスVPNサーバー」にチェックを入れて「次へ」ボタンを押します。
次の設定項目は「仮想HUB名」ですが、ここはデフォルトの「VPN」のままでかまいません。なお、以後の説明では、仮想HUB名はVPNであることを前提とするため、名前を変えて登録した場合には、適宜説明を読み替えてください。
次はダイナミックDNSの設定です(写真04)。ダイナミックDNSは、固定IP割り当てでないISPを使う場合に、インターネット側にあるDNSサーバーにVPNサーバーのIPアドレスを登録して、インターネット側からDNS名で常にアクセスを可能にする機能です。SoftetherVPNには、無料の専用ダイナミックDNSサービスがあり、自動的にIPアドレスを登録してくれます。これを利用するためには、ホスト名を登録しなければなりません。ウィンドウ右側中央付近に推奨のホスト名が提示されています。このまま「閉じる」ボタンを押せば登録は完了です。ホスト名をルールの範囲内で自由に設定できますが、他人と重複した名前を使うことはできません。なので、ここを変更すると、場合によっては何回か変更して利用可能な名前を探す必要があります。
次はVPNの接続方式の設定です(写真05)。ここでは「L2TPサーバー機能を有効にする」のチェックをオンにして、ウィンドウ左下の「IPsec事前共有キー」を設定します。IPsec事前共有キーは、クライアントを正しく認識するための情報なので、ここもちゃんと記録しておきます。「IPsec事前共有キー」は、あとでアンドロイドの設定を行う場合に利用します。
写真05: 「IPsec/L2TP/EtherIP/L2TPv3設定」では、「L2TPサーバー機能を有効にする」のチェックボックスをオンにして、画面下の「IPsec事前共有鍵」に適当な共有鍵を指定する。VPNサーバーは同じ共有鍵を持つクライアントからの接続を許可するが、暗号化キーなどは別になるので適当な名前(ただし推測されにくいもの)を設定する |
次の設定は「VPN Azureサービスの設定」です(写真06)。これは、VPNサーバーがファイアウォールの内側にあったり、あるいはWindows RTマシンで利用する場合に必要になりますが、このサービスも無料なので、ウィンドウ左下にある「VPN Azureを有効にする」をオンにします。すると、ダイナミックDNSで設定した名前を使った「VPN Azureサービス名」が表示されるます。ここに表示されたホスト名は、設定で利用するので記録しておいたほうがいいでしょう。ただし、アンドロイドのVPN設定では使いません。
写真06: VPN Azureサービスの設定は、アンドロイドの接続だけなら設定する必要はないが、ファイアウォールの設定変更が困難な場合やクライアントにWindows RTを使う場合には設定する必要がある。なお設定しておいても、悪影響はないので、設定しておくほうがいいだろう |
最後は「簡易セットアップの実行」です(写真07)。ここは、「VPN接続を受け入れるためのユーザーの作成」と「ローカルブリッジの設定」を行います。まず、「ユーザーを作成する」ボタンを押します。
「ユーザーの新規作成」(写真08)では、「ユーザー名」、「パスワード」、「パスワードの確認入力」を設定します。どちらもクライアントの接続で必要になる情報なので、記録しておきます。他の項目「本名」や「説明」などを設定してもかまいません。OKボタンを押すとユーザー管理ウィンドウが表示されるので、登録が正しいかをリストで確認したあと「閉じる」ボタンを押します。
次に戻ってきた「簡易セットアップの実行」にある「ローカルブリッジの設定」で、VPN接続が行われるネットワークアダプタ(インターネットに接続するネットワークアダプタ)を選択し(写真09)、「閉じる」ボタンを押します。
これで設定は終わりです。サーバー管理マネージャのウィンドウ(写真10)が表示されているはずなので、仮想HUBである「VPN」の状態が「オンライン」になっていることを確認して「閉じる」ボタンをおします。VPNサーバーはWindowsのサービスとして動作しているため、管理マネージャのウィンドウは閉じてしまってかまいません。
ブロードバンドルーターの設定
これでVPNサーバーは動作していますが、ブロードバンドルーターでは、VPNサーバーを含め、一般的にインターネット側からの接続を拒否するように設定されています。また、LAN側の複数のマシンからのインターネット接続のため「NAT」が動作しています。このため、ルーターの設定を変更し、インターネット側からVPNサーバーへ向かうパケットを通すようにします。
通過させるのは、TCPで、ポート番号は以下のIPsec用のポートと、サーバー管理マネージャの左下側にある「リスナーの一覧」にあるポート番号です。
★IPsec用ポート番号
500
4500
★SoftEther VPNの標準リスナーポート
443
992
1194
5555
ここでは、サンプルとしてNECのAterm WR8600Nでの設定を紹介します。この機種では「ポートマッピング」という機能を使って、VPNサーバーが動作しているマシン(のIPアドレス)に前記のポート番号へ到達するパケットを転送させます。なお、設定前にVPNサーバーが動作しているマシンのIPアドレスを調べておきます。
WR8600Nは、Webブラウザから設定が可能です。設定ページを開いたら、「詳細設定」 ⇒ 「ポートマッピング設定」を開きます。「追加」ボタンを使って、VPNサーバーのIPアドレスに対してTCPのポート番号を設定していきます(写真11)。WR8600では、1つの設定項目で不連続なポート番号を指定できないので、複数の項目として登録します(写真12)。
写真12: Atermのポートマッピング機能は非連続のポート番号は複数のエントリとして登録する必要があるため、このように必要なポートをすべて登録する。このリストは優先度の順に並び、優先度の高いものが先に適用される。ただし、登録時にすでに登録した優先度と同じ数字は使えないので注意すること |
あとは設定を保存して、ルーターの設定は終了です。他社のルーターでは名称や設定方法は違いますが、原理としては、指定したポート番号あてにTCPのパケットが来たら、VPNサーバーのマシンへパケットが転送されるようにします。一般に「ポートフォワード」や「ポートマッピング」などと呼ばれています。
ルーターの設定が終われば、VPNサーバーはインターネット側からアクセスが可能になります。テストを行うには、内側のLAN内からは試すことができないので、自宅のインターネット接続とは別のインターネット接続方法(たとえば携帯電話によるアクセス)が必要です。なお、テストは、PCなどアンドロイド以外の機器で行うことも可能なので、機器が利用可能ならVPNの接続テストを先に済ませておくことも可能です。VPNサーバーの動作を確認しておくと、アンドロイドを接続する場合のトラブル対策が簡単になります。なぜなら、VPNサーバーが動作していることがわかれば、まずはアンドロイド側をチェックすればいいからです。そういうわけで、次回は、アンドロイド側の設定と接続テストを解説する予定です。
本稿は、2014年5月26日にAndorid情報のWeb専門誌「AndroWire」に掲載した記事を再構成したものです。