アンドロイドがもつネットワーク機能の1つにVPNがあります。VPNとは「Virtual Private Network」の略で、簡単にいうとインターネットを使って「専用線」のように、他人に盗聴されない経路を作ることです。これを使うことで、インターネット接続でも、会社や自宅などのネットワークに直接接続することが可能になります。

ただし、この機能は、「VPNサーバー」と対になって使う機能なので、利用するためには、接続先のネットワークでVPNサーバーを動作させなければなりません。VPNには、いくつかの方式があり、VPNサーバーによって利用可能な方式や暗号化方式などに違いがあり、アンドロイド側の設定は、これに合わせる必要があります。自宅用は、自分でサーバーを立てれば、OKですが、会社などでは、すでにあるVPNサーバーに接続する必要があるでしょう。このとき、会社のVPNサーバーのVPN方式とアンドロイド側の設定を同じものにする必要があります。

また、自宅などでは、一般的にブロードバンドルーターなどを使っているため、そのままでは、インターネット側からVPNサーバーへパケットが転送されません。このためには、ルーターで「ポートマッピング」や「ポートフォワード」と呼ばれる機能を使って、パケットをVPNサーバー(が動作しているマシン)へ転送する必要があります。

なお、アンドロイドの場合、VPNを利用し、自宅や会社などのネットワークを利用するためには、なんらかのアプリが別途必要になります。自宅や会社に設置したHTTPサーバー(いわゆるWebサーバー)を利用するだけなら、ChromeなどのWebブラウザでもかまいませんが、WindowsのネットワークやFTPサーバーへアクセスするためには、なんらかのアプリを用意します。Windowsなどでは、ネットワーククライアントが標準で装備されているため、すぐに自宅や会社のファイルサーバーなどにアクセスが可能ですが、アンドロイドではそうではないので注意してください。

VPNのもう1つの使い方として、VPNを介して、自宅や会社に接続し、そこからインターネット利用を行うこともあります。たとえば、国外のインターネットサービスが制限されているような国(少なくとも日本は違います)や地域でインターネットを利用するような場合に、VPNを介して一旦、国外のサイトとなる自宅や会社に接続、そこからインターネットアクセスを行うこともできます。アンドロイドでは、こうしたVPNの利用方法も可能です。

これにより、制限されている国外のインターネットサイトへのアクセスが可能になりますが、国や地域によっては、非合法あるいは違法な利用となる可能性もあり、さらに接続先が自宅や会社だとすると、身元も分かってしまうため、「リスク」のある行為なので、注意が必要です。

VPNサーバーの方式

このようにちょっと複雑なVPN接続ですが、今回は、まず、基本的なところから解説することにします。とはいっても、これはアンドロイドの話ではないので、簡単に済ませておきます。

自宅のマシンは、Windowsであることを仮定します。Linuxを使っているなら、VPNサーバーを動かすことは難しくないし、おそらくその程度の技術はお持ちだと思われるので、今回は説明を割愛します。

アンドロイドのVPNは、以下の方式が利用可能です。逆にいうと、これ以外のVPN方式では、アンドロイドのVPNは設定できません。

  • PPTP
  • L2TP/IPsec PSK
  • L2TP/IPsec RSA
  • IPsec Xauth PSK
  • IPsec Xauth RSA
  • IPsec Hybrid RSA

似たような単語がならんでいます。それぞれ、以下のような意味があります。

PPTP マイクロソフトのトンネリングプロトコル(複数の暗号化方式あり)
L2TP シスコ社のL2FとPPTPを組み合わせたトンネリングプロトコル(暗号化なし)
IPsec 暗号化IP通信(L2TPと組み合わせて利用)
PSK Pre Share Key(事前共有鍵)
RSA RAS電子証明書を使う公開鍵暗号方式
Xauth IPsecと組み合わせるユーザー認証方式
Hybrid IPsecと組み合わせる認証方式

トンネリングプロトコルとは、パケットを別のプロトコルのパケットに入れて、転送する方式です。つまり、パケットをパケットの中にいれて、特定のアドレスへ転送し、宛先アドレス側で、これを解いて元のパケットを取り出します。このようにすることで、転送元で動作しているアプリケーションなどが送るパケットを転送することができます。VPNとよくにた仕組みですが、一般に「トンネリングプロトコル」と呼ぶ場合には、暗号化などが行われておらず、他の暗号化プロトコルなどと組み合わせることを前提としているからです。L2TPの場合には、IPsecとの組み合わせを想定しています。なお、PPTPは、マイクロソフト独自の暗号化方式を持っています(暗号化なしも設定可能)。

XauthとHybridは、IPsecと組み合わせる「認証」方式です。IPsecはパケットを暗号化することができますが、接続先でのユーザー認証などの機能をプロトコルとしては持っていません。このため、他の認証プロトコルと組み合わせる必要があります。それらがXauthやHybridです。

PSKとRSAは、認証に使うもので、PSKは、転送元と転送先で同じキー(文字列)を設定するもの、RSAは、RAS社の証明書などを使う方式です。

RAS方式では、証明書の発行にコストがかかるため、一般には企業向けとなります。個人で利用する場合には、PSKを使います。

VPNは「設定」 ⇒ 「無線とネットワーク」 ⇒ 「その他」 ⇒ 「VPN」でプロファイルを登録して接続を行う。プロファイルには、VPNの接続先などのパラメーターが保存されていて複数作成可能

Android 4.4.2がサポートしているVPNの接続方式は、この6種類。VPNサーバーはこのどれか1つに対応していないとアンドロイドからVPN接続を行うことができない

ルーターの設定が必要な場合も

もう1つ、インターネット側から自宅や会社のネットワークにアクセスするためには、インターネット接続を行っているルーターで、ポートフォワード(ポートマッピングなどともいう)の設定やパケットフィルタの設定が必要になります。つまり、ルーターの設定で、VPNサーバーが待ち受けているポートへの接続を許可します。この機能は、「ポートフォワーディング」あるいは「ポートマッピング」などと呼ばれ、ルーターのメーカーや機種によって呼び名や設定方法は違いますが、原理としては同一で特定のポート番号へ来た特定の種類のパケットをローカルネットワーク内の特定のIPアドレスへ転送する機能です。このため、一般的には、「宛先IPアドレス」、「プロトコル(番号)」、「ポート番号」を設定します。機種によっては、同一IPアドレスならば複数の連続しないポートに設定が可能だったり、同一の宛先でも、ポート番号別に1つ1つ設定する必要があるなどの違いはありますが、上記の3つの情報を最低でも設定します。このあたりについては、取説を見るか、どうしてもわからない場合には、メーカーのサポートに電話して聞かねばなりません。場合によっては、簡易設定ではなく、エキスパートモードや詳細設定といった設定方法に切り替える必要があるかもしれません。

VPNサーバーを選択するには、アンドロイドのこのVPN方式のどれかに対応するものを選択しなければなりません。企業向けには、いくも製品があるし、こうした機能を持つルーターや専用ハードウェアもあります。また、Windows Serverなどのマイクロソフトのサーバー製品を使うことで、VPNサーバーを構築することもできます。

個人の場合、Windows Serverを買うのも高いので、フリーのVPNサーバーを使うしかありません。そういうわけで、次回は、Windowsクライアントマシンに簡単に設置できるフリーのVPNサーバーについて解説する予定です。

本稿は、2014年5月16日にAndorid情報のWeb専門誌「AndroWire」に掲載した記事を再構成したものです。