Linux における VPN 技術に関する考察

いろいろあります VPN


VPN とはなにか

 VPN とは Virtual Private Network の略語で、「仮想プライベートネットワーク」と呼ばれることもある、ネットワークにおけるひとつの技術を指します。プライベートなネットワークとは、いわゆる LAN(Local Area Network)を指している、と考えると理解しやすいと思います。プライベートネットワークを仮想的に構築したもの、これが VPN となります。

 自宅に LAN を構築している場合、外部から LAN 内部の PC にアクセスしたい、ということは、最近では決して珍しくないこととなっています。一部の DVD レコーダなどでは、Web サーバー機能をもち、ブラウザで各種設定を行えるようになっているものもあります。自宅の DVD レコーダに対する録画予約を、出先から行いたい、という要望は、必然的に発生してくるものと思います。あるいは、遠隔地に住む家族からの救援信号を受けて、リモート操作ツールなどを使って、サポートを行いたいという要求もありえます。さらには、友人とネットワーク対戦をしたい、という要求もあるかと思います。このようなときに VPN は非常に有効な手段となります。

 誤解を恐れずにいえば、Internet を自宅の LAN の一部として使用すること、これが VPN になります。普通の方法では、自宅の Hub に Ethernet ケーブルを装着しないと LAN には接続されないわけですが、VPN はこれを Internet 側から行うことを可能にするものです。

 このようなことを行うためには、かつては専用線と呼ばれる、特別なサービスを申し込む必要がありました。専用線は、通信速度によってことなりますが、ADSL レベルの速度でも、月額数万円が必要となり、実際には企業でないと利用できないものでした。しあkし、Internet が世界中を接続していることに着目して、これを利用して専用線に相当するサービスを可能にしたものが VPN なのです。

 Internet に情報を流すことがどれだけ恐ろしいことか、現在では知らない人はいないと思います。Internet に個人的な情報を流すとなれば、他人が入手しても、内容を解読されないようにする必要があります。このため、VPN には必ず暗号化の技術がセットで含まれています。

代表的な VPN 技術

 VPN には、いろいろな手法がありますが、有名どころとしては次のようなものがあります。

  1. PPTP(Point to Point Tunnel Protcol)
  2. IPsec
  3. ssh
  4. PacktiX

 PPTP は Microsoft が開発し Windows に搭載したプロトコルで、Windows 2000 Pro 以降であればすぐに利用可能となっています。暗号化方式に MPPE とよばれる専用の暗号化方式を用いています。暗号化強度が 40bit の MPPE40 と 128bit の MPPE128 がありますが、標準では MPPE128 が利用されます。

 IPSec は、プロトコルではなく、IP データグラムのレベルで暗号化をしてしまう、という技術で、次世代 IP 技術といわれている IPv6 にて、標準搭載されることとなっています。Windows XP から、利用可能となっていますが、現在主流の IPv4 では拡張機能にて対応されるため、まだ扱いにくいところがあります。

 ssh は、元々は telnet の代わりとして登場したもので、telnet がデータをやりとりする際に平文で行っているため、通信の傍受が可能となっていたという問題点を解決するため、データのやりとりを暗号化するようにしたものです。その後、暗号化するという機能から、経路を暗号化するという利用法に着目され、ssh にて経路を暗号化し、擬似的な VPN として使用されるようになりました。

 PacketiX は SoftEther 社によって開発された VPN ソフトで、商用販売されているものです。PacketiX のベースとなった SoftEther は、情報処理振興事業協会(IPA)が主催した「平成 15 年度未踏ソフトウェア創造事業・未踏ユース部門」により開発が始まったもので、1.0 はフリーウェアとして公開され、それまではルータの設定変更などが必要であった VPN が、非常に簡単に利用できるということで、急速に普及が進みました。しかしその一方では、簡単に使えることが、悪用された場合のセキュリティホールになるということで、一時的に公開中止となったこともありました。その後、SoftEther 社による SoftEther Alert および SoftEther Block の提供により、ネットワーク管理者による利用制限を可能にしたことで、運用としてのセキュリティホールの回避を可能にしたことで、再び公開可能となり、多くの方に利用されることとなりました。その後、機能の拡充を行われ、マルチプラットホーム対応版として提供されるときに、PacketiX という名前となりました。

デメリット

 それでは、それぞれの方式によるデメリットはどのようなものになるでしょうか?

PPTP

 PPTP は、MPPE128 がデメリットとなります。Windows 上では OS が標準対応しているので、ユーザーは特にソフトウェアの追加が不要となっていますが、Linux で利用する場合には、kernel パッチが必要、ということが大きな問題となってきます。パッチとは、プログラムの修正を行った際に、修正を行った部分だけを元のプログラムから抜き出したもので、同じ元プログラムに対してパッチを適用すれば、修正後のプログラムに代わる、というものです。kernel のソースは、非常に大きなもののため、修正した部分をパッチとして分離しておくことで、容量を節約できます。

 Linux では、ディストリビューションによって、オリジナルの kernel にいくつかのパッチを適用しているため、配布されている MPPE128 のパッチがそのままでは適用できません。このため、kernel のソースを読み、修正すべきところを見付けて、ソースを手動修正していくこととなります。このため、PPTP を Linux で使おうとする場合に、足かせとなります。

IPSec

IPSec については、環境の構築に手間が大きくかかることがデメリットになります。IPSec は送信側と受信側の両方の設定を必要とするため、設定がうまくいかない場合に、送信側と受信側のどちらで問題が生じているか、確認がしにいところでもあります。これは、LAN を導入した最初に、どちらのネットワーク設定が悪いのか判断が付かないことに良く似ています。

ssh

 ssh は、Linux でのサポートは高いのですが、Windows では追加ソフトウェアを必要とするため、扱いが若干面倒となっています。ssh による経路の暗号化は、ポートフォワードと呼ばれ、ソケット(IPアドレス+ポート)単位で設定する必要もあり、複数のポートを使う場合に、設定が煩雑化するという問題もあります。基本的に、プログラムがどのポートを使用しているかを把握しておく必要もあるため、ある程度の知識を必要となります。

PacketiX

 商用ソフトウェアのため、接続ライセンスを購入する必要があります。このコストがまず発生します。体験版がありますが、実使用においては、コスト負担が発生するため、必要量を見積もることが重要になります。

 PacketiX は、導入が非常に容易ですが、一歩誤ると重大なセキュリティホールとなりうる代物です。これはメリットであり、またデメリットでもあります。どのような設定を行うのか、どのように使うのか、をきちんとしたポリシーをもって設定することが、特に重要です。


Last Update is 2006/05/03. CopyRights Tazoe Kazuya 2005.