OpenVPNの概要
最新情報は新サイトで更新されますので、OpenVPN.JP をご覧ください。
このページはOpenVPN公式サイトのコンテンツをもとに作成されていますが、意訳・要約されており、完全な翻訳ではありません。正確な情報については公式サイトの情報 も併せてご確認ください。 |
概要
OpenVPNは、リモートアクセス、サイト間VPN、Wi-Fiセキュリティ、さらには負荷分散やフェールオーバー、詳細なアクセス制御といった企業レベルのリモートアクセスソリューションにまで対応可能なSSL VPNソリューションです。
OpenVPNは標準規格であるSSL/TLSプロトコルを使ってOSIレイヤー2/3のセキュアネットワークを実現しています。クライアント認証にはさまざまな方法が利用可能で、証明書やスマートカードを利用した2ファクタ認証(2-factor authentication)も利用できますし、VPN仮想インターフェイスに対してファイアーウォールを適用することによってユーザーやグループ単位でのアクセス制御も可能です。OpenVPNはWebアプリケーションプロキシではないので、Webブラウザから操作するものではありません。
OpenVPNの概念を知るには、Linux Fest Northwest 2004でのJames Yonanの講演「Understanding the User-Space VPN : History, Conceptual Foundations, and Practical Usage
」や、Charlie Hosnerによる「OpenVPN and the SSL VPN Revolution
」などの資料も参考にしてください。
OpenVPNはオープンソースプロジェクトであり、GPLライセンスに従っています。また、OpenVPNをプロプライエタリなアプリケーションと組み合わせて再配布するための商用ライセンスも用意されています。商用ライセンスの詳細については info@openvpn.net にお問い合わせください。
OpenVPNが動作する環境
Linux、Windows 2000/XP以降、OpenBSD、FreeBSD、NetBSD、Mac OS X、Solaris。OpenVPN PocketPC版
も開発が進められています。
OpenVPNでできること
- UDP/TCPのいずれかによる、任意のサブネットまたは仮想Ethernetアダプタとのトンネル構築
- 複数台のサーバーによるスケーラブルな構成や負荷分散構成
- OpenSSL
ライブラリのすべての暗号化、認証、および証明機能を使用し、インターネット上でもプライベートなトラフィックを保護 - OpenSSLライブラリによってサポートされている任意の暗号方式、鍵サイズ、HMACダイジェスト(データグラム整合チェック用)の使用
- 静的鍵による従来の暗号化、または証明書による公開鍵暗号化
- 静的鍵の事前共有、またはTLSによる動的な鍵交換
- 帯域幅を管理するためのリアルタイム圧縮やトラフィックシェイピング
- 接続先がDHCPやダイアルアップなど動的アドレスが割り当てられる場合でもトンネル接続が可能
- コネクション型ファイアーウォールを経由したトンネルネットワークが、明示的なファイアーウォールルールを使用せずに利用可能
- NATを超えたトンネルネットワーク
- 仮想TAPデバイスを使ったセキュアEthernetブリッジの作成
- OpenVPNのGUI
でのコントロール(Windows/Mac OS X)
OpenVPNと他のVPNの違い
- OpenVPNの主な特長としては、数多くの環境で動作するクロスプラットフォームなアプリケーションであること、安定性の高さ、数百~数千という数多くのクライアントからの接続が可能なスケーラビリティ、インストールが容易なこと、また動的IPアドレスやNATにも対応可能であることが挙げられます。
- OpenVPNは利用者に応じて拡張できるVPNフレームワークを提供します。たとえば、クライアントに対してカスタマイズしたインストールパッケージを配布
したり、OpenVPNのプラグインモジュールインターフェイスを利用して他の認証方式をサポート(一例として、PAM認証を利用するためのopenvpn-auth-pamモジュールがあります。この認証方式はX509ベースの認証と排他的に利用することも、組み合わせて利用することもできます)したりすることができます。
- OpenVPNはOpenVPNデーモンをリモート管理したり、集中管理したりするための管理インターフェイスを提供します。この管理インターフェイスを使って、OpenVPNを管理するためのGUIやWebベースアプリケーションを開発することができます。
- Windows版OpenVPNでは、証明書や秘密鍵をWindows Crypto APIをサポートしたスマートカードから読み込むことができます。
- OpenVPNはパッシブ、アクティブいずれの攻撃からも保護するための非常に強力なセキュリティモデルを採用しています。このセキュリティモデルでは、セッション認証にはSSL/TLS、UDP上でのセキュアな通信にはIPSec ESPプロトコルをベースとして使用します。OpenVPNはセッション認証にX509 PKI(公開鍵基盤)、鍵交換にはTLSプロトコル、データの暗号化にはOpenSSL EVPインターフェイス、トンネルデータの認証にはHMAC-SHA1アルゴリズムをサポートしています。
- OpenVPNは移植性を重視しています。現時点において、OpenVPNはLinux、Solaris、OpenBSD、FreeBSD、NetBSD、Mac OS X、そしてWindows 2000/XPで利用できます。OpenVPNはカーネルモジュールやIPレイヤーへの複雑な変更ではなく、ユーザースペースデーモンとして開発されており、移植性が劇的に向上しています。
- OpenVPNは簡単に使用できます。通常はコマンド1つで(設定ファイルなしで)トンネルの作成や設定が可能です。OpenVPNにはわかりやすいドキュメントも付属しています。
- OpenVPNは不安定なネットワークでも確実に動作するように設計、テストされています。OpenVPNの主要な設計目標は、通常時やエラー回復時に、トンネルが使用しているIPレイヤーと同等の応答性を保つことです。たとえば、IPレイヤーが5分間ダウンして復旧した場合、このダウンの間に動的な鍵の交換が予定されていたとしても、トンネル上のトラフィックはすぐに元に戻ります。
- OpenVPNは強力にモジュール化されたデザインに沿って構築されています。すべての暗号化処理はOpenSSLライブラリによって処理され、すべてのIPトンネル化機能はTUN/TAP仮想ネットワークドライバによって提供されています。
- モジュール化のメリットの一例として、最新版のOpenSSLライブラリにリンクさせて最新の機能を利用できることが挙げられます。たとえば、最新版のOpenSSL(0.9.7)と組み合わせてOpenVPNをビルドすると、AES-256のような新たな暗号方式を利用でき、OpenSSLの暗号化エンジンのパフォーマンスや機能の向上を期待することもできます。
- OpenVPNはユーザースペースで動作するアプリケーションとして設計されているため、TUN/TAP仮想ネットワークドライバが提供されている任意のOSへの移植が容易です。
- OpenVPNは高速です。Pentium2 266MHzのサーバー上でRedhat 7.2を動作させ、TLSベースのセッション認証、Blowfish暗号化、トンネルデータの認証にSHA1を使用し、サイズの大きな圧縮済みファイルをFTPで送信した場合、1.455MB/s(CPUタイム(カーネルとユーザータイムの合計))の転送率を記録しています。
- OpenVPNではVPNトンネルのセキュリティを制御するためのさまざまなオプションが提供されています。また、OpenVPNサーバー自身を保護するためのオプションも用意されています。たとえばOpenVPNデーモンがアクセスするファイルを制限するための--chrootオプション、インストール後のデーモン権限を制限するための--userおよび--groupオプション、鍵のデータやトンネルデータをディスクにページングさせないようにするための--mlockオプションなどがあります。
FAQ
OpenVPNにおいて、認証や鍵交換プロトコルの基盤としてTLSが使用されているのはなぜですか?
TLSはNetscapeがWebブラウザのために開発したSSLプロトコルファミリーの最新版です。TLSとその前身であるSSLはWeb上で長年にわたり幅広く使用され、脆弱性についても広く研究されています。その研究の結果としてこのプロトコルは強化されてきており、現在ではSSL/TLSは最もセキュアで強力なプロトコルの1つと見なされています。このようなことから、VPN製品の認証/鍵交換に用いるプロトコルとしてTLSが最善であると考えています。
OpenVPNではIPSecやPPTPはサポートされていますか?
現在広く利用されているVPN実装としては、SSL、IPSec、PPTPの3つがあります。OpenVPNはSSL VPNの1つであり、IPSec、L2TP、PPTPとは互換性がありません。
IPSecプロトコルはカーネルスペースのIPスタック上に実装されることを想定されており、各OSごとに独自の実装が必要です。
それに対して、OpenVPNはユーザースペースでの実装が行われており、OSやプロセッサに依存しない高い移植性を保っています。また、ファイアーウォールやNATを使用した環境、動的アドレス環境ででも動作しますし、ブリッジ機能なども備えています。
この両者にはそれぞれメリットとデメリットがあります。OpenVPNの最大のメリットは移植性、設定が容易であること、NATや動的アドレス環境への対応性です。OpenVPNのインストールや使用の難易度は他のセキュリティ関連デーモン、SSHなどと同等です。
歴史的に、IPSecのメリットの1つはマルチベンダーによるサポートです。 ただ、さまざまなハードウェアデバイスでのOpenVPNサポートも始まっています。
PPTPプロトコルのメリットはWindowsではOSにクライアントがプリインストールされていることですが、専門家によって脆弱性が明らかになっています。
OpenVPNは標準に準拠していますか?
ユーザースペースVPNデーモンとして、OpenVPNはSSL/TLS、RSA証明書やX509 PKI、NAT、DHCP、TUN/TAP仮想デバイスに準拠しています。IPSec、IKE、PPTP、L2TPには準拠していません。
OpenVPNのトンネルはTCP接続上に作成できますか?
はい。バージョン1.5から可能になりました。
WebブラウザをOpenVPNクライアントとして使用できますか?
いいえ。OpenVPNはセキュリティを実現するためにSSL/TLSプロトコルを使用してはいますが、Webアプリケーションプロキシではありません。OpenVPNはOSIレイヤー2/3上のネットワーク間のトンネリングソリューションであり、クライアントとサーバーの両方にソフトウェアをインストールする必要があります。
OpenVPNのビルド
LinuxやBSDの場合、OpenVPNはソースから簡単にビルドできます。Windows版のビルドは少し複雑なため、OpenVPNダウンロードサイト
でビルド済みのインストーラが提供されています。
| Windows用GUIの日本語版をOpenVPN GUI for Windows 日本語版で公開しています。このインストール済みパッケージを利用すると、OpenVPN本体とGUIを同時にインストールできます。こちらもぜひご利用ください。 |
ビルド方法によって下記のような違いがあります。
- OpenSSL CryptoおよびSSLライブラリの両方(バージョン0.9.6以降が必要)と組み合わせてビルドした場合は、証明書ベースの認証、公開鍵による暗号化、およびTLSベースの動的鍵交換が利用できます。
- OpenSSL Cryptoライブラリのみと組み合わせてビルドした場合は、静的鍵による暗号化と認証が利用できます。
- 単体でビルドした場合は暗号化されていないUDPトンネルが利用可能です。
OpenVPNをLZOリアルタイム圧縮ライブラリ
とリンクさせることもできます。OpenVPNはトンネルデータストリームが圧縮可能な場合のみ圧縮する適応圧縮(Adaptive Compression)をサポートしています。
OpenVPNは完全にユーザースペース上で動作するアプリケーションであり、Windows、Linux、およびBSD用のTUN/TAP仮想ネットワークドライバ以外の特別なカーネルコンポーネントは必要としません。
OpenVPNプロジェクトに寄付する
OpenVPNプロジェクトへの寄付についてはこちら
にある情報をご確認ください。OpenVPNはGPL
に基づいてコミュニティによってサポートされるソフトウェアであり、皆さんの寄付はOpenVPNの開発、たとえばセキュリティ対策や入念なテスト、新機能の追加やドキュメントの拡充、テクニカルサポートの継続に大いに役立てられます。
Copyright © 2002-2006 by OpenVPN Solutions LLC. OpenVPN is a trademark of OpenVPN Solutions LLC. Translated By Plum Systems Inc.


