PacketiX VPN
PacketiX VPN
PacketiX VPN(パケティックス ブイピーエヌ)はソフトイーサによって開発される、VPNソフトウェアである。
本項では、派生ソフトウェアである UT-VPN や SoftEther VPN と共通する仕様部分も併せて説明する。
PacketiX VPN は仮想LANカードおよび仮想ハブによりイーサネットを仮想化することで、レイヤ2 VPNを構築できる。また、レイヤ3スイッチを仮想化することにより、レイヤ3 VPNを構築できる。
初版である PacketiX VPN 2.0 は、開発中に SoftEther VPN 2.0 と呼ばれていた。PacketiX 2.0 は、SoftEther 1.0 の後継版として 2005年12月 に発表され、SoftEther 1.0 の開発者である登大遊が設立したソフトイーサ社によって、製品の開発および販売が行われた。
本ソフトウェアの派生として、PacketiX VPN 3.0 の機能制限・オープンソース版に当たるUT-VPNと、同じく PacketiX VPN 4.0 の機能制限・無償版またはオープンソース版に当たる SoftEther VPN がある。
PacketiX VPN 3.0 以上の版を含めて、これらは PacketiX VPN 2.0 Build 5280 以降のバージョンと相互に接続が可能である。
SoftEther VPN 2.0 (2.0x)
2004年12月17日 - 2.0 Beta 1 Ver 2.00.2668
2004年12月24日 - User-mode Router 2.0 Beta 1 <筑波ACルータ> Ver 2.00.2668
2005年2月24日 - Beta 2 Ver 2.01.3600
2005年5月17日 - Beta 3 Ver 2.03.4200
2005年7月4日 - Beta 3.2 Ver 2.03.4340
2005年9月7日 - Beta 4 Ver 2.04.4600
2005年9月30日 - RC1 Ver 2.05.4800
2005年11月7日 - RC2 Ver 2.06.5000
PacketiX VPN 2.0 RTM (2.10)
2005年12月3日 - RTM Ver 2.20 Build 5060 提供開始。
2005年12月6日 - RTM Ver 2.20 Build 5070 提供開始。
2005年12月25日 - RTM Ver 2.20 Build 5080 提供開始。
2006年2月22日 - RTM Ver 2.20 Build 5090 提供開始。
PacketiX VPN 2.0 Option Pack (2.20)
2006年8月7日 - Ver 2.20 Build 5210 提供開始。
2006年8月27日 - Ver 2.20 Build 5211 提供開始。
2006年9月11日 - Ver 2.20 Build 5220 提供開始。
2006年12月1日 - Ver 2.20 Build 5280 提供開始。
PacketiX VPN 3.0
2010年3月15日 - Ver 3.00 Build 6890 提供開始。
2010年10月10日 - Ver 3.01 Build 7177 提供開始。
2011年2月28日 - Ver 3.02 Build 7392 提供開始。
PacketiX VPN 4.0
PacketiX VPN は以下のようなソフトウェアによって構成されている。
VPN Server (PacketiX VPN / UT-VPN / SoftEther VPN に共通)
VPN Client や VPN Bridge からの接続を受け付けるVPNサーバソフトウェア。VPN Server には複数個の仮想ハブを作成することができ、仮想ハブ内でイーサネットフレームを交換することができる。また、VPN Server 内の複数の仮想ハブ間でIPパケットの交換を行うために仮想レイヤ3スイッチを複数個作成することもできる。
VPN Client (PacketiX VPN / UT-VPN / SoftEther VPN に共通)
仮想LANカードとしての機能を持ったVPNクライアントソフトウェア。VPN Client をコンピュータにインストールすることで、VPN Server が接続されているLANなどに、インターネット経由でリモートアクセスすることができる。VPN Client を使用する場合は、仮想LANカードを作成し、その仮想LANカードを VPN Server 上で動作している仮想ハブに接続する形式で通信を行う。
VPN Bridge (PacketiX VPN / SoftEther VPN のみ)
VPN Server の仮想ハブにカスケード接続する為のVPN接続ソフトウェア。VPN Bridge を動作させているコンピュータ上の物理的なLANカードとの間でローカルブリッジを構成することにより、遠隔地のLAN同士を VPN 接続することが可能である。なお、VPN Bridge の機能は全て VPN Server に内包される。
サーバ管理マネージャ (PacketiX VPN / UT-VPN / SoftEther VPN に共通)
VPN Server および VPN Bridge に管理モードで接続して管理を行うためのGUI管理ツールである。サーバ管理マネージャは VPN Server や VPN Bridge が動作しているサーバコンピュータ上に必ずしもインストールする必要はなく、別の管理用端末 (ノートパソコンなど) にインストールして使用することもできる。この場合は TCP/IP によって管理用のセッションが確立され遠隔管理が行われる。
コマンドライン管理ユーティリティ (PacketiX VPN / UT-VPN / SoftEther VPN に共通)
vpncmd の名称で提供されるCUIの管理ユーティリティ。原則としてGUIのサーバ管理マネージャで設定可能なすべての項目をコマンドラインから設定できる。コマンドラインによる通常の管理作業のほか、自動生成したスクリプトを読み込ませることによって各種の管理操作を自動化することが可能である。また結果をファイルに書き出すこともできる。
PacketiX VPN Server は製品版として提供されており、PacketiX VPN 3.0 以降において下記のエディションが用意されている。なお、エディションによっては法人向けの一部機能(RASIUD/NTドメイン認証、syslog 転送機能、パケットログ保存機能、クラスタリング機能)が利用できず、利用可能な機能やセッション数も異なる。
Standard Edition
クライアント同時接続数: 30 同時接続
拠点間接続: 2 拠点
法人向けの一部機能が利用できない。
Professional Edition
クライアント同時接続数: 100 同時接続
拠点間接続: 4 拠点
Enterprise Edition
クライアント同時接続数: 300 同時接続
拠点間接続: 10 拠点
Ultimate Edition
クライアント同時接続数: 無制限
拠点間接続: 無制限
HOME Edition
クライアント同時接続数: 2 同時接続
法人向けの一部機能、拠点間接続が利用できない
Small Business Edition
クライアント同時接続数: 5 同時接続
拠点間接続: 2 拠点
法人向けの一部機能が利用できない。
PacketiX VPN Server を動作させるためには、ソフトイーサ等より提供されるライセンスキーが必要である。PacketiX VPN Server には前述のように多数のエディションがあるが、シングルバイナリによって提供されており、入力するライセンスキーの種類によって動作の内容が異なる。
PacketiX VPN 2.0 には、かつて一般向けの Free Edition や、学術研究者向けに無償でライセンスされた Academic Edition が提供されていた。
PacketiX VPN 3.0 以降は、製品版に対する実質的な機能制限版である UT-VPN や、SoftEther VPN などが、関連プロジェクトより提供されている。これらのソフトウェアでは、組み込まれているソースコードの権利等の問題から、PacketiX VPN において法人向けと位置付けられている一部の機能等が利用できない。但し、これらのソフトウェアにクライアント接続数や拠点接続数の制限はない。
UT-VPN
ソフトイーサ株式会社と筑波大学との共同研究によって運営されるプロジェクトとして、2010年に発表され、GPL ライセンスで配布されているオープンソースの L2-VPN ソフトウェア。
SoftEther VPN
筑波大学の研究プロジェクトとして開発され、ソフトイーサの主力製品であるPacketiX VPN 4.0をベースに一部機能を制限し、2013年7月にフリーウェアとして公開された。UT-VPNの後継プロジェクトに位置付けられており、現在はオープンソースで公開されている。
PacketiX VPN Client および VPN Bridge は無償提供されており、PacketiX および派生ソフトウェアを含めて VPN Client および VPN Bridge の利用にライセンスキーは不要である。
PacketiX VPN 4.0 は、以下のようなオペレーティングシステムおよびCPUの組み合わせで動作する。
Windows
サポート対象は、下記のうちサポートライフサイクル範囲内のバージョンのみ。
Windows 98 / 98 SE / ME
Windows NT 4.0 SP6a
Windows 2000 SP4
Windows XP SP2, SP3
Windows Server 2003 Standard Edition SP2
Windows Vista SP1, SP2
Windows Server 2008 SP1, SP2
Hyper-V Server 2008
Windows 7 SP1
Windows Server 2008 R2 SP1
Hyper-V Server 2008 R2 SP1
Windows 8
Windows Server 2012
Hyper-V Server 2012
CPU アーキテクチャ
Intel x86 (32bit)
Intel x64 (64bit)
Linux
サポート対象は、商用サポート期間中の Red Hat Enterprise Linux と、その同等OS(CentOS)のみ。
Linux Kernel 2.4
Linux Kernel 2.6
Linux Kernel 3.x
CPU アーキテクチャ
Intel x86 (32bit)
Intel x64 (64bit)
PowerPC (32bit)
MIPS Little-Endian (32bit)
ARM EABI (32bit)
ARM legacy ABI (32bit)
SH4 (32bit)
macOS
Mac OS X 10.4 Tiger
Mac OS X 10.5 Leopard
Mac OS X 10.6 Snow Leopard
Mac OS X 10.7 Lion
Mac OS X 10.8 Mountain Lion
CPU アーキテクチャ
Intel x86 (32bit)
Intel x64 (64bit)
PowerPC (32bit)
PowerPC G5 (64bit)
FreeBSD
FreeBSD 5
FreeBSD 6
FreeBSD 7
FreeBSD 8
FreeBSD 9
CPU アーキテクチャ
Intel x86 (32bit)
Intel x64 (64bit)
Solaris
Solaris 8
Solaris 9
Solaris 10
Solaris 11
CPU アーキテクチャ
Intel x86 (32bit)
Intel x64 (64bit)
SPARC (32bit)
SPARC (64bit)
一部OSを除いて32ビット版と64ビット版が用意されており、64ビット版ではより多くの仮想 HUB および同時接続 VPN セッションを1台の VPN Server に収納することができる。
PacketiX VPN でのVPN通信に使用されているプロトコルは以下のような仕様となっている。
SSLバージョン3.0およびTCP/IPが使用されている。
SSL / HTTP over SSL (HTTPS)拡張プロトコル準拠。
任意。デフォルトでTCPポート443、992、8888(派生ソフトウェアの一部は5555)が利用可能となっている。
暗号化・電子署名アルゴリズム
RC4-MD5 / RC4-SHA / AES128-SHA / AES256-SHA / DES-CBC-SHA / DES-CBC3-SHA
物理的な1本〜32本のTCPコネクションによる効率的負荷分散およびタイミング制御。
直接TCP/IP接続
ユーザー認証(クライアント認証)方式
NTドメインコントローラまたはActive Directoryを使用した認証
X.509証明書とRSAを使用したPKI認証
PacketiX VPN でのVPN通信では、標準的なイーサネットフレーム(MACフレーム、イーサネットパケット)であればどのようなものでも通信を行うことが可能である。したがって、IPv4、IPv6、TCP、UDPなどの現在インターネットやLANなどで使用されている一般的なプロトコルのほか、NetBEUIやIPX/SPXなどのプロトコルもVPNを通すことができる。
2007年11月、ソフトイーサは PacketiX VPN 2.0 の英語版をリリースした。日本語版と英語版は、ユーザーインターフェイスやオンラインマニュアルなどの言語が異なるのみであり、機能は同等である。異なる言語のVPNソフトウェア同士でVPN接続を行うこともできる。
2010年3月に発表された PacketiX VPN 3.0 では、中国語簡体字に対応している
PacketiX VPN の VPN 機能の動作はIPsecやPPTPなどの従来のVPNと比較して異なる点がある。
PacketiX VPN における仮想ハブは、既存の一般的なスイッチングHUBと同等の機能をソフトウェアで実現したものである。仮想ハブはMACアドレス学習機能や学習に基づくフレームの交換機能を持つ。従来のスイッチングHUBはハードウェアとしてこの処理を行っていたが、PacketiX VPN ではソフトウェアとして同様の処理を行う。VPN Server には複数の仮想ハブを作成できる。それぞれの仮想ハブがVPN経由で流れてきたイーサネットフレームを処理することで、仮想的なレイヤ2のイーサネットセグメントを実現している。
VPN Server 内に複数台の仮想ハブを作成するとき、通常はそれらの仮想ハブは独立して動作し、お互いに干渉せず、別々の仮想ハブ間で通信は行われない。また、各仮想ハブの管理権限を別々の管理者に委譲することが可能である。この場合、特定の仮想ハブの管理者は、自分が委任されている仮想ハブのみ管理でき、それ以外の仮想ハブにはアクセスできない。
物理的なLANカード (NIC) をソフトウェアによって仮想化することにより仮想LANカードが実現される。仮想LANカードはVPNプロトコルを用いて、物理的な TCP/IP ネットワークを経由し、遠隔地にある VPN Server 内の仮想ハブに VPN 接続することができる。VPN Client を用いると、仮想LANカードをクライアントコンピュータのOS内にいくつでも作成することが可能である。仮想LANカードは OS から物理的な LAN カードと同様に認識されるため、原則としてイーサネットでの通信に対応したほぼすべてのプロトコルやアプリケーションが、特に手を加えることなく利用可能である。
仮想レイヤ3スイッチ は、IPルーティングを行うレイヤ3スイッチをソフトウェア的に仮想化したものである。仮想レイヤ3スイッチにより、別々のIPネットワーク間で、イーサネットのセグメントを分離したまま、ルーティングによりネットワーク同士を接続することが可能である。
仮想ハブと同様に、VPN Server 内には仮想レイヤ3スイッチを複数作成できる。複数の仮想ハブ間でIPルーティングを行うことにより、仮想ハブ間通信を実現することができる。これを応用すると、遠隔地にある複数のイーサネットセグメント間のレイヤ3でのルーティングが実現される。
1台の仮想ハブに複数台のコンピュータの仮想LANカードが接続すると、それぞれのコンピュータ間は自由にイーサネットフレームを送受信することができるようになる。これにより VPN 接続が実現される。
仮想ハブ間のカスケード接続を行うことにより、通常の物理的なスイッチングHUB間をクロスケーブルなどでカスケード接続した場合と同じ効果が得られる。すなわち、もともと分離されていた2個のイーサネットセグメントを1つにすることができる。仮想ハブ間のカスケード接続は、同一の VPN Server 内の仮想ハブ同士だけでなく、物理的に別の VPN Server 内の仮想ハブ同士でも、VPNセッションを確立することによって可能である。これにより、遠隔地にある複数のイーサネットセグメント間のレイヤ2でのブリッジ接続が実現される。
上記で述べたような仮想ハブや仮想レイヤ3スイッチはあくまでもソフトウェアによってエミュレーションされたネットワーク機器であり、そのままでは仮想的に流れるイーサネットフレームは物理的なネットワーク上に出ることはない。VPN Server および VPN Bridge では、仮想ハブと既存の物理的なイーサネットのセグメントとを、物理的なLANカードを指定することによってブリッジ接続することができる。これをローカルブリッジと呼ぶ。
ローカルブリッジを用いることにより、複数の拠点で、仮想ハブと物理的な既存のLANとの間を接続し、さらに仮想ハブ同士を前述したカスケード接続によって VPN 接続することによって、インターネット経由で複数のイーサネットセグメント間のレイヤ2でのブリッジ接続が実現される。
以下、PacketiX VPN に搭載されている VPN 通信機能および特徴について述べる。
IPsecやPPTPなどの従来のレイヤ3をトンネリング対象としていたVPNプロトコルと異なり、PacketiX VPN ではレイヤ2のイーサネットフレームをVPN通信におけるトンネリング対象とし、トンネルを通してイーサネットフレームを流すことができる。レイヤ2での拠点間接続が可能な為、専用線的サービスにおける広域イーサネットと同様の接続方法を実現できる。これにより、レイヤ3のプロトコルの種類にかかわらず、イーサネット上で利用可能なプロトコルをVPN通信上に流すことができる。
PacketiX VPN は、物理的な通信のためのプロトコルとして、GREなどの特別なプロトコルではなく、標準的なTCP規格を採用している。これにより、すべてのVPN通信をTCP上で実現するため、ほとんどのNAT、プロキシ、ファイアウォールの通過することが可能である。また、デフォルトでTCP443番というHTTPS通信で一般的に利用されるポートと同一のTCPポートを使用することが可能となっているため、基本的にWebサイトが閲覧できるようなネットワーク環境では PacketiX VPN を用いてVPN通信を行うことが可能である。
従来のVPNプロトコルのうち、セキュリティの確保のみに注力しているものについては、VPN処理がボトルネックとなり、実際にVPN通信を行った際のスループットが低くなることがある。PacketiX VPN 2.0は各種の通信回線に合わせて最適化を行う為、通常のPCサーバを用いて約3.1Gbps程度の高速なVPN通信を行うことができるとしている。
PacketiX VPN は様々なOSやCPU上で動作するように移植性の高いプログラミングによって開発されており、通常のエディションにおいて、前述のように多くの種類のOSやCPUに対応する。
PacketiX VPN は以下のようなセキュリティ機能を搭載している。
許可されていない第三者による不正なVPN接続を禁止するため、以下のようなユーザー認証が可能である。
匿名認証 - : 実質的に認証を必要としないVPN (誰でも接続可能なVPNサーバ) を実現するために使用する認証方法である。サーバにおけるanonymousアカウントと同様である。
標準パスワード認証 - ユーザー名とパスワードによってユーザー認証を行う。ユーザーアカウントのデータベースは VPN Server が保有する。
Radiusサーバ認証 - ユーザー名とパスワードによってユーザー認証を行う。ユーザーアカウントのデータベースは、既存のRadiusサーバを利用する。
NTドメイン / ActiveDirectory 認証 - ユーザー名とパスワードによってユーザー認証を行う。ユーザーアカウントのデータベースは、既存のNTドメインコントローラまたはActive Directoryのサーバを利用する。
証明書認証 (PKI認証) - クライアント証明書 (X.509証明書) とRSAを使用したPKI認証。パスワードなどの固定文字列を用いないせず、よりセキュアなスマートカードやセキュリティトークンを用いた認証が可能。
盗聴者が存在する可能性のあるネットワークを経由してVPNを利用する際に、盗聴やデータの改ざんを防止するため、すべてのVPN通信パケットに対して、暗号化と電子署名を行うことが可能である。SSLのバージョン3で暗号化セッションが確立され、内部ではHTTP over SSL (HTTPS)拡張プロトコルが用いられる。
PacketiX VPN では、接続先のVPNサーバが提示するX.509証明書とSSLプロトコル内で行われる正当性検証手続きにより、接続先のVPNサーバが本物であるかどうかの検証が可能である。検証に失敗した場合はVPN接続を中止し、中間者攻撃を防止する。
VPN Client において、認証方法として証明書認証 (PKI認証) を使用する場合は、セキュアなハードウェアであるスマートカードやセキュリティトークンを用いた認証が可能である。一般的なPKCS#11規格に対応したデバイスに対応する。
VPN Server の仮想ハブには、以下の2種類のパケットフィルタリング機能が搭載されている。
アクセスリストとは、一般的なファイアウォール機器で実現されるような、IPパケットのヘッダ部をリアルタイムで検査し、あらかじめ設定したルールに基づいて通過/破棄を決定する仕組みである。
セキュリティポリシーとは、ダイナミックなパケットの流れを監視して通過/破棄を決定する仕組みである。セキュリティポリシーを適用するため、仮想ハブは流れるすべての仮想イーサネットフレームについてリアルタイムで高レイヤまでパケットの内容を解釈する。解釈結果を元にして、そのパケットがセキュリティポリシーに適合した通信内容であるかどうかを判別する。セキュリティポリシーに違反したパケットが流れた場合は監査記録を保存することも可能である。
VPN Server の管理者は、仮想ハブにモニタリングモードセッションという特別なセッションを作成することにより、その仮想ハブ内を流れるすべてのパケットを傍受したり、物理的なLANカードから出力して既存のIDS製品に入力したりすることができる。
仮想ハブ内を流れるすべてのパケットをログに保存することが可能である。これにより、管理者は事後にトラブルの追跡や不正アクセスの発見などを行うことができる。パケットログの対象となるパケットは仮想ハブの管理者が細かく設定することができる。この場合、パケットの内容すべてを保存するか、ヘッダ部分のみを保存するかを選択することができる。パケットログの取りこぼしを防ぐため、バッファの空き容量が少なくなると自動的に仮想ハブにおける通信速度を調節し、すべてのパケットログが確実にディスクに書き込まれるような仕組みになっている。
仮想ハブにはSecureNAT機能が搭載されており、仮想NATと仮想DHCPサーバの2つの機能が利用可能である。SecureNAT機能はすべての機能がユーザーモードで動作し、一般ユーザー権限で全機能が利用可能である。SecureNAT機能を利用することで、一般的なブロードバンドルータと同等程度の機能を、仮想ハブ内で利用することができる。
大量のVPNセッションを処理したり、極めて多数の仮想ハブを作成したりするために、クラスタリング機能が提供されている。クラスタリング機能により複数台の VPN Server をまとめて動作させることができ、仮想ハブや仮想ハブ内のユーザーデータベースやアクセスリストなどの設定が一元化される。また、ロードバランシングとフォールトトレランスが実現される。クラスタリングにより多数の VPN Server が動作している場合であっても、ユーザーや各仮想ハブの管理者から見ると、1つのVPN Serverのシステムとして認識される。したがって、ユーザーや各仮想ハブの管理者は、クラスタリング機能が動作していることに関して意識する必要がない。
PacketiX VPN を用いることにより構築することができるネットワークをおおまかに分類すると、以下のようになる。
最も単純なVPNの形態である。インターネット上のどこかに設置した仮想ハブに対して、その仮想ハブによって構成される仮想イーサネットセグメントに、複数台のコンピュータのVPN Clientから接続することにより、それらのコンピュータ間でVPN通信が可能になる。
コンピュータ間VPNではVPN通信を行いたいコンピュータすべてにVPN Clientをインストールする必要があり手間がかかる。また、既存の物理的なLANに対してVPNを用いてリモートアクセスすることができない。
そこで、仮想ハブと既存のLANとの間をローカルブリッジによって接続することにより、その仮想ハブにリモートアクセスしたVPN Clientは既存のLANに直接接続しているのと同様な状態になる。これがリモートアクセスVPNである。例えば、社内にリモートアクセスVPNのためのVPN Serverを設置しておけば、社外から社内LANに接続して作業を行うことができる。
離れた場所にある物理的なLAN同士を接続する方法である。従来の専用線やフレームリレー、広域イーサネットなどの代替手段として利用できる。
レイヤ2によってブリッジを行う接続方法と、レイヤ3によってルーティングを行う接続方法がある。ネットワークの規模や状況によっていずれか、または両者を組み合わせた方法で接続する。
ソフトイーサは学術研究目的でPacketiX VPN を用いた以下のサービスを実験的に無償で提供している。
(2006年10月から)
(2004年12月から)
http://www.mobilefree.jp/jp/ MobileFree.jp VPN 実験サービス] (2007年10月から)
(2006年4月から)
PacketiX VPN は以下のような賞を受賞している。
MM総研大賞2006「話題賞」 (MM総研、2006年)
ソフトウェア・プロダクト・オブ・ザ・イヤー2006「グランプリ」 (独立行政法人情報処理推進機構、2006年)
経済産業大臣表彰 (経済産業省、2007年)
ソフトイーサ PacketiX VPN入門 (大澤 文孝、工学社、2006年) ISBN 4-7775-1203-7
公式SoftEther活用ガイド (登大遊/村上和美/池嶋俊、アスキー、2004年) ISBN 4-7561-4483-7
魔法のトンネルSoftEther (ランディス、秀和システム、2004年) ISBN 4-7980-0809-5