OpenVPN おーぷんぶいぴーえぬ
VPNSSL/TLSトンネリングオープンソースリモートアクセス暗号化
OpenVPNについて教えて
OpenVPN とは
OpenVPN は、オープンソースで開発されている VPN(仮想プライベートネットワーク)ソフトウェアです。2001年に James Yonan によって開発され、現在は OpenVPN Inc. が主導しながらもコミュニティと共に継続的に改良されています。ライセンスは GNU GPL であるため、誰でも無償で利用・改変・配布が可能です。
最大の特徴は、HTTPS(ウェブの暗号化通信)と同じ SSL/TLS プロトコル を使って VPN トンネルを構築する点です。多くのファイアウォールや NAT(ネットワークアドレス変換)環境では HTTPS ポート(443番)の通信が許可されているため、企業ネットワークや公衆 Wi-Fi 環境でも通信がブロックされにくいという大きなメリットがあります。
IPsec など従来の VPN プロトコルと比較して設定の柔軟性が高く、Windows・macOS・Linux・iOS・Android と幅広いプラットフォームで動作します。中小企業のリモートアクセス VPN から大規模な拠点間接続まで、さまざまな用途で世界中に普及しています。
OpenVPN の仕組みと構成
OpenVPN は クライアント/サーバー型 のアーキテクチャを採用しています。サーバー側でデーモン(常駐プログラム)を起動し、クライアントが証明書・設定ファイルを使って接続しに来る構成です。
| 構成要素 | 役割 |
|---|---|
| OpenVPN サーバー | VPN の入口。クライアントを認証しトンネルを確立する |
| OpenVPN クライアント | PC・スマートフォンなどに導入。サーバーに接続する |
| CA(認証局)証明書 | サーバー・クライアント双方の正当性を証明する |
| サーバー証明書/鍵 | サーバーの身元を証明する SSL/TLS 証明書 |
| クライアント証明書/鍵 | クライアントの身元を証明する(パスワード認証との併用も可) |
| 設定ファイル(.ovpn) | 接続先・ポート・暗号方式などをまとめた設定ファイル |
| tun / tap インターフェース | 仮想ネットワークインターフェース(L3=tun、L2=tap) |
tun モードと tap モードの違い
| モード | レイヤー | 主な用途 |
|---|---|---|
| tun(トンネル) | L3(ネットワーク層) | リモートアクセス VPN・インターネット経由の接続 |
| tap(ブリッジ) | L2(データリンク層) | 拠点間をイーサネットレベルでつなぐ場合 |
ほとんどのリモートアクセス用途では tun モード が使われます。
使用する主なポート
| プロトコル | ポート番号 | 特徴 |
|---|---|---|
| UDP | 1194(デフォルト) | 高速・低遅延。VoIP・ゲームなどに適する |
| TCP | 443 または任意 | ファイアウォールを通り抜けやすい。HTTPSと同ポートも可 |
歴史と背景
- 2001年 — James Yonan が OpenVPN 1.0 を公開。IPsec の設定複雑さへのアンチテーゼとして登場
- 2002年 以降 — オープンソースコミュニティで急速に普及。Linux ディストリビューションに標準収録される例も増える
- 2006年 — OpenVPN 2.0 リリース。マルチクライアント対応が強化され、企業利用が一気に拡大
- 2008年 — OpenVPN Technologies, Inc.(現 OpenVPN Inc.)設立。商用版サポートの提供開始
- 2010年代 — スマートフォンの普及に合わせて iOS・Android 向けクライアントアプリが登場
- 2017年 — WireGuard など次世代 VPN プロトコルが台頭し始め、OpenVPN は「枯れた安定技術」として位置づけられるように
- 現在 — Access Server(商用版)と Community Edition(無償版)の2本立てで提供。クラウド・オンプレ問わず広く使われ続けている
主要 VPN プロトコルとの比較
OpenVPN は多くの VPN プロトコルの中の1つです。用途や環境によって使い分けることが重要です。
OpenVPN の通信フロー(概略)
[クライアント PC]
↓ ① .ovpn 設定ファイルで接続要求
↓ ② TLS ハンドシェイク(証明書の相互認証)
↓ ③ 暗号化トンネル確立(AES-256 など)
↓ ④ 仮想 IP アドレスを割り当て(例: 10.8.0.2)
[OpenVPN サーバー]
↓ ⑤ 受信パケットを復号して社内ネットワークへ転送
[社内サーバー / クラウドリソース]
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 5246 | TLS 1.2 の仕様(OpenVPN が利用する暗号化基盤) |
| RFC 8446 | TLS 1.3 の仕様(OpenVPN 2.5 以降でサポート) |
| RFC 768 | UDP プロトコル仕様(OpenVPN のデフォルト転送プロトコル) |
| RFC 793 | TCP プロトコル仕様(OpenVPN の TCP モードで使用) |
| RFC 4301 | IPsec セキュリティアーキテクチャ(比較対象として重要) |