ゼロ円でできるインターネットVPN
OpenVPNで手軽にVPN構築
オープンソースのソフトウェア「OpenVPN」を利用すれば、手軽にSSL-VPNによるインターネットVPN環境を構築することができます。そのインストール・設定方法を紹介しましょう。(編集局)
Shin.鶴長
2008/5/2
元祖仮想化はネットワーク?
高速なCPUの普及を背景に、XenやVMwareのような仮想化技術が注目されていますが、ネットワークにおいても、ブロードバンドのような高速インターネット回線の普及を背景に、インターネットVPNが利用されるようになっています。
VPNはインターネット上に仮想的な専用線を構築し、離れた拠点間を直接つなぐことができます。VPNはNATルータやファイアウォールを越えた接続も可能なため、外部のインターネットからはアクセスできない社内ツールに、自宅に居ながらアクセスすることができます。通信データは暗号化されているため、インターネットのような公衆回線を経由したとしても改ざんや盗聴の脅威から通信データを守ることができます。
以前はIPsecやPPTPをサポートした高価なルータやPacketiX(旧SoftEther)のような有償ソフトウェアを購入する必要がありましたが、最近ではOpenVPNのようなオープンソースソフトウェアで手軽にインターネットVPNを利用することができます。今回はOpenVPNの導入や設定方法を解説します。
関連記事: | |
5分で絶対に分かるVPN(@IT Security&Trust) http://www.atmarkit.co.jp/fsecurity/special/22fivemin/fivemin00.html |
|
@IT キーワードINDEX VPN(Virtual Private Network) http://www.atmarkit.co.jp/channel/vpn/vpn.html |
さまざまな種類のVPN
VPNを可能にするサービスや製品は表1のように数多く、それを可能にしているテクノロジも多様です。表1に挙げたもの以外に、L2TPやPPTPなどを利用したVPNもありますが、現在主流なVPNは大別して2通り。ISPなどの通信事業者が提供する「IP-VPN」と、VPN網をインターネット上に自前で構築する「インターネットVPN」です。
|
IP-VPNは、MPLS(Multi-Protocol Label Switching)と呼ばれるパケット転送技術で構築されたVPN網を使って提供されるサービスです。
通常、IPパケットはIPアドレスを基に経路選択が行われますが、MPLSではIPパケットに付加したラベルを基に経路が決定されます。そのため、ユーザーのIPアドレスが重複したとしても、衝突や誤配送が発生しないため、複数のユーザーでネットワークを共有することができます。
ネットワークを共有化することで、専用線に比べコストを安価に設定することができます。またユーザー単位で適切にラベルを設定することで、パケットの盗聴や改ざんなどを防止し、セキュリティを確保することができます。
もともとMPLSはIPパケットの高速転送を目的としていましたが、ラベル技術を用いることで、こうしたVPNへの応用や帯域保証などのQoSを可能にしています。ただし、IP-VPN網はインターネットのような公衆ネットワークとは独立した閉域網であるため、自宅や公衆無線LANポイントのような不特定の場所から気軽に接続することはできません。そうした用途ではインターネットVPNを利用することになります。
インターネットVPNでは、自前のADSLや光回線といったプロバイダが提供する公衆サービスの上で、IPsecやSSLといった技術を駆使することで、独自のVPN網を構築することができます。IP-VPNのように閉域網への接続を必要としないため、通信コストを最小限に抑えられます。インターネットVPNで使用される方式で現在最も広く使用されているのが「IPsec-VPN」と「SSL-VPN」です。
IPsec(Security Architecture for Internet Protocol)は、インターネットに通信の安全性が叫ばれるようになったころから開発が進められてきた、比較的初期から利用されている暗号通信のためのプロトコル群です。
IPsecには、IPパケットのデータ部のみを暗号化するトランスポートモードと、ヘッダ情報を含めたパケット全体を暗号化するトンネルモードがあります。トンネルモードではヘッダ情報込みの暗号化データに新たなIPヘッダを付加することでルーティングを可能にしています。VPNとしてIPsecを利用する場合は、後者のトンネルモードを使用します。
図1 IPsecのトランスポートモード |
図2 IPsecのトンネルモード |
長期にわたる開発の結果、IPsecは、現在では多くの機能を備えた重厚なプロトコルに成長しています。その半面、高機能故の複雑さのため、場合によってはOSに手を加える必要があるなど、導入や設定の敷居が高くなっており、利用に際してベンダの支援が必要になることもしばしばです。
一方、HTTPSのようにWebサービスで使用されるSSL(Secure Socket Layer)は、比較的簡潔な仕組みと手順で暗号化と認証機能を可能にしています。今回取り上げるOpenVPNもその1つです。SSL-VPNでは、SSLを利用することで通信の秘匿性と介入防止の認証機能を可能にしています。
IPsecではネットワーク層(OSI参照モデル レイヤ3)でIPパケットを暗号化するため、OSへの依存度が高く、設定が複雑化する傾向がありました。これに対しSSL-VPNはセッション層(OSI参照モデル レイヤ5)で動作するため、SSL-VPNのサーバ(ゲートウェイ)側とクライアント側との間でIP到達性が確保されていれば、比較的簡単な操作で利用できます。そのためApache HTTPのようなアプリケーションをインストールするように、SSL-VPNをアプリケーションとしてインストールすることもできます。
また、市販のブロードバンドルータのようなNAT機能が使用されたネットワーク下であっても、SSL-VPNはNATを抜けて利用できます。サーバ側がNAT内にあったとしても、DMZやNATのポートフォワーディングの設定知識さえあれば、NAT越しの利用が可能です。
SSL-VPNは、さらに、無線LANアクセスポイントのような不特定かつ盗聴の危険性がいっそう高い公衆インターネット環境下でも利用できるなど、ポータビリティの点でもたけています。ただし設定の容易さのため、実際の利用でセキュリティに対する考慮がおろそかになりがちです。せっかくのVPN導入でかえって他者の侵入を許してしまうことのないよう、安全のための設定を怠らないようにしましょう。
1/4 |
|
||||||||
|
Linux Squareフォーラム 仮想化技術関連記事 |
連載:実践! Xenで実現するサーバ統合 有力な仮想化技術として注目を集めるようになった「Xen」。このXenを活用してサーバ統合を実践していく手順を具体的に紹介します |
|
特集:サーバの仮想化技術とビジネス展開の可能性 jailからUML/VMwareまで 1台のマシンで複数のサーバを動かす「仮想化技術」。VMwareやUMLの登場により、WebサイトだけでなくOS自体を仮想化できるようになった |
|
特集:仮想化技術のアプローチと実装 VMwareから要注目技術Xenまで 1台のサーバで複数の仮想マシンを実行する仮想化技術は、空間コストを引き下げる可能性を持つ。最新の仮想化技術を概観してみよう |
|
特集:仮想OS「User Mode Linux」活用法 技術解説からカーネルカスタマイズまで Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
特集:仮想化技術の大本命「Xen」を使ってみよう インストール & Debian環境構築編 高いパフォーマンスで本命の1つとなった仮想マシンモニタ「Xen」。日本語による情報が少ないXenを、実際に動かしてみよう |
|
特集:仮想化技術の大本命「Xen」を使ってみよう Xen対応カスタムカーネル構築編 Xen環境およびその上で動作する仮想マシン用カーネルを自分で構築しよう。これにより、自由にカスタマイズしたカーネルを利用できる |
|
特集:IPv6、UML、セキュリティ機能の統合 全貌を現したLinuxカーネル2.6[第4章] 今回は、これまでに紹介し切れなかった機能を一気に紹介する。これを読めば、カーネル2.6の正式リリースが楽しみになるだろう |
|
Linux Squareプロダクトレビュー VMware Workstation 4 PC/AT互換機エミュレータとして不動の地位を築いたVMware。その新バージョンがリリースされた。新機能を早速試してみよう |
|
古くて新しい「サーバ仮想化技術」の行方 サーバ仮想化を実現するための技術がソフトウェア、ハードウェアの両面で出そろってきた。ハイパーバイザーのさらなる高速化に向けた動きを紹介する |
|
Linux Squareフォーラム全記事インデックス |
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|