OpenVPN

開発元|  James Yonan
最新版|  2.6.13  \- 2025年1月15日 (3か月前) (2025-01-15)[1] [±]
最新評価版|  2.x (Git HEAD)  \- Every Sunday 05:00 UTC Main Mirror [±]
リポジトリ|

* github.com/OpenVPN

プラットフォーム|  クロスプラットフォーム
種別|  VPN
ライセンス|  GPL
公式サイト|  openvpn.net
テンプレートを表示
インターネットセキュリティ
プロトコル

キーマネジメント

* Kerberos
* RPKI（英語版）
* PKIX
* Web of trust
* X.509
* XKMS（英語版）

アプリケーション層

* DKIM
* DMARC
* HTTPS
* PGP
* Sender ID
* SPF
* S/MIME
* SSH
* TLS/SSL

DNS

* DANE
* DNSSEC
* DNS over HTTPS
* DNS over TLS
* CAA
* DNSCrypt

インターネット層

* IKE
* IPsec
* L2TP
* OpenVPN
* PPTP
* WireGuard

* 表
* 話
* 編
* 歴

OpenVPNは、サーバ間に暗号化されたトンネルを作成するためのオープンソースのVirtual Private Network（VPN）ソフトウェアである。James Yonanが開発し、GNU General Public Licenseでリリースされている。

## 概要

[編集]

OpenVPNは、事前に共有しておいた秘密鍵、公開鍵証明書、ユーザ名/パスワードを使ってPeer to Peerの相互の認証を行う。OpenSSLやSSLv3/TLSv1プロトコルを利用する。Solaris、Linux、OpenBSD、FreeBSD、NetBSD、macOS、Windowsなどで動作する。様々なセキュリティ機能や制御機能を持つ。他のVPNシステムとの接続には対応しない。クライアント側もサーバ側も1個のバイナリとオプションの設定ファイルから構成され、使用する認証方式によって、いくつかの鍵ファイルが必要となる。

## 暗号

[編集]

OpenVPNはOpenSSLライブラリを使って、データチャンネルと制御チャンネルの両方の暗号化を行う。暗号化と認証処理はOpenSSLに任されており、OpenSSLパッケージに含まれる任意の暗号方式を使うことができる。HMACパケット認証機能を付加的に使用して、コネクション時のセキュリティを強化することもできる（開発者はこれをHMAC Firewallと称している）。さらに、暗号化をハードウェアによって行い、性能を強化することもできる。

## 認証

[編集]

相互の認証は、いくつかの方法がある。OpenVPNが推奨している方法は、事前共有した秘密鍵、公開鍵証明書、ユーザ名/パスワードを使った認証である。事前共有した秘密鍵が最も簡単であり、公開鍵証明書が最も頑健で機能が豊富である。ユーザ名/パスワードを使った方法は新しい機能（バージョン 2.0）であり、クライアント側の認証を不要とすることもできる（サーバ側は必須）。ソースのtarballには、Perlスクリプトによるユーザ名/パスワード検証（PAM）とC言語によるPAMの例が含まれている。

## ネットワーク

[編集]

OpenVPNは全ての通信を1つのIPポートに多重化する。UDP（デフォルト、推奨）でもTCPでも利用可能である。ほとんどのプロキシサーバを経由しても大丈夫で、ネットワークアドレス変換経由でもファイアウォール経由でも通信可能である。サーバ側からクライアント側に特定のネットワーク設定を送信することもできる（IPアドレス、ルーティングコマンド、その他コネクションオプション）。OpenVPNは、TUN/TAPドライバ経由のネットワーキング方法を2種類提供する。ネットワーク層でのIPトンネルまたはデータリンク層でのイーサネットTAPのどちらかを使うことができ、後者では任意の種類のイーサネットのトラフィックをやりとりできる。また、オプションでLZOデータ圧縮ライブラリで転送データを圧縮することもできる。IANAは、ポート 1194を公式にOpenVPNに割り当てている。新しいバージョンではデフォルトでそのポートを使用するようになっている。バージョン 2.0では、1つのプロセスで複数のトンネルを同時に管理できる。従来は、トンネルごとにプロセスが必要だった。

## セキュリティ

[編集]

OpenVPNはいくつかのセキュリティ機能も内蔵している。完全にユーザ空間で動作するため、カーネルでのIPスタック操作が不要である。OpenVPNは、root特権の禁止機能、mlockallによる重要データのスワップアウト禁止機能、初期化後にchrootによってルートとされたディレクトリ以外にアクセスできなくする機能などがある。

OpenVPNは、PKCSベースの暗号トークンによるICカードサポートも行う。

VPN認証のために送受信するパケットに対して、オプションとして予めサーバとクライアントの間で別途共有した鍵を用いて計算したHMAC値を追加することができる。[2]この機能を用いると、VPN認証用HMACの鍵を知らない第三者は正しいHMAC値が計算できず、そのようなパケットは受信すると破棄するためVPN認証処理が開始されなくなる。

## 脚注

[編集]

[脚注の使い方]

1. ^ “Community Downloads”. 2025年2月7日閲覧。
2. ^ “Guide To Set Up & Configure OpenVPN Client/Server VPN”. OpenVPN. 2025年1月18日閲覧。

## 関連項目

[編集]

* OpenSSH \- ネットワーク層/データリンク層のトンネルベースのVPNを実装している。
* stunnel \- SSL上の任意のTCPコネクションの暗号化を行う。
* UDPホールパンチング \- ファイアウォールやNATを経由してUDP「コネクション」を確立する技法。

## 外部リンク

[編集]

ポータル FOSS

ウィキメディア・コモンズには、OpenVPNに関連するメディアがあります。

* OpenVPN project 公式サイト（英語）

* 表
* 話
* 編
* 歴

Virtual private network

通信プロトコル|

* SSTP（英語版）
* IPsec
* L2TP
* L2TPv3（英語版）
* PPTP
* Split tunneling（英語版）
* DTLS
* SSL/TLS
* tcpcrypt（英語版）

ベンダー主導|

* L2F
* DirectAccess（英語版）

実装|

| 自由ソフトウェア|

* FreeLAN（英語版）
* FreeS/WAN
* Libreswan（英語版）
* n2n（英語版）
* OpenConnect（英語版）
* OpenIKED（英語版）
* Openswan
* OpenVPN
* SoftEther VPN
* strongSwan
* tcpcrypt（英語版）
* Tinc（英語版）
* VTun（英語版）
* WireGuard
* Shadowsocks

|

プロプライエタリ|

* Avast SecureLine VPN（英語版）
* Check Point VPN-1
* Cisco Systems VPN Client（英語版）
* CyberGhost VPN
* ExpressVPN
* HideMyAss!（英語版）
* Hola（英語版）
* LogMeIn Hamachi
* Microsoft Forefront Unified Access Gateway（英語版）
* NordVPN
* Private Internet Access（英語版）
* Proton VPN
* PureVPN（英語版）
* SaferVPN（英語版）
* TunnelBear（英語版）
* VPN.ht

リスク|

* コンテンツフィルタリング
* ディープ・コンテンツ・インスペクション（英語版）
* ディープ・パケット・インスペクション
* IPアドレスブロッキング（英語版）
* ネットワーク・エニュメレーション（英語版）
* ステートフル・ファイアウォール（英語版）
* TCPリセット攻撃（英語版）
* VPNブロッキング（英語版）

* 表
* 話
* 編
* 歴

暗号化ソフトウェア

OpenPGP・S/MIME|

* メールサーバーの比較（英語版）
* 電子メールクライアントの比較（英語版）
* GnuPG (Gpg4win・GPGTools)
* PGP
* Enigmail
* Thunderbird
* Outlook
* Apple Mail
* Claws Mail
* Autocrypt（英語版）
* Kontact
* pretty Easy privacy（英語版）
* Sylpheed

セキュア通信|

| OTR（英語版）|

* Adium
* BitlBee（英語版）
* Centericq（英語版）
* ChatSecure
* climm（英語版）
* Jitsi
* Kopete
* MCabber（英語版）
* Profanity（英語版）

|

SSH|

* SSHクライアントの比較（英語版）
* Dropbear
* lsh（英語版）
* OpenSSH
* PuTTY
* SecureCRT（英語版）
* WinSCP
* wolfSSH（英語版）
* RLogin
* Poderosa
* Tera Term

TLS/SSL|

* TLS実装の比較
* Bouncy Castle（英語版）
* BoringSSL
* Botan
* cryptlib
* GnuTLS
* JSSE（英語版）
* LibreSSL
* MatrixSSL（英語版）
* NSS
* OpenSSL
* mbed TLS（英語版）
* RSA BSAFE（英語版）
* SChannel
* SSLeay
* stunnel
* wolfSSL

VPN|

* Check Point VPN-1
* Hamachi
* Openswan
* OpenVPN
* SoftEther VPN
* strongSwan
* Tinc（英語版）
* WireGuard

ZRTP（英語版）|

* CSipSimple（英語版）
* Jitsi
* Linphone（英語版）
* Jami
* Zfone（英語版）

P2P|

* Bitmessage
* RetroShare（英語版）
* Tox
* ZeroNet

D R A（英語版）|

* Matrix
* OMEMO
* Conversations（英語版）
* Cryptocat（英語版）
* ChatSecure（英語版）
* Proteus
* Signalプロトコル
* Signal
* WhatsApp
* TextSecure（英語版）

匿名化|

* Cryptomator
* GNUnet
* Java Anon Proxy（英語版）
* I2P
* Tor
* Vidalia（英語版）
* RetroShare（英語版）
* Ricochet（英語版）
* Wickr（英語版）

ディスク暗号化（英語版）|

* ディスク暗号化ソフトウェアの比較（英語版）
* BitLocker
* FreeOTFE（英語版）
* TrueCrypt
* BestCrypt（英語版）
* CipherShed
* CrossCrypt（英語版）
* Cryptoloop（英語版）
* DiskCryptor（英語版）
* dm-crypt（英語版）
* LUKS
* DriveSentry（英語版）
* E4M（英語版）
* eCryptfs（英語版）
* FileVault
* GBDE（英語版）
* geli（英語版）
* PGPDisk（英語版）
* Private Disk（英語版）
* Scramdisk（英語版）
* Sentry 2020（英語版）
* VeraCrypt

ファイルシステム|

* 暗号化ファイルシステムの一覧
* EncFS
* EFS
* eCryptfs（英語版）
* LUKS
* PEFS（英語版）
* Rubberhose（英語版）
* StegFS（英語版）
* Tahoe-LAFS（英語版）

セキュアOS|

* Tails
* Whonix
* Qubes OS
* Alpine Linux
* Anonym.OS（英語版）
* Genode
* Fiasco.OC
* seL4

Service providers|

* Freenet
* Tresorit（英語版）
* Wuala

教育|

* CrypTool

暗号通貨|

* Bitcoin
* Monacoin
* Ripple
* Dash (X11)
* イーサリアム
* Monero
* NEM
* Symbol
* ニートコイン

Related topics|

* Outline of cryptography（英語版）
* Timeline of cryptography（英語版）
* ハッシュ関数
* 暗号学的ハッシュ関数
* List of hash functions（英語版）
* S/MIME

関連人物|

* エドワード・スノーデン
* ローラ・ポイトラス（ドキュメンタリー作家）
* グレン・グリーンウォルド（弁護士、当時ガーディアンに寄稿していたジャーナリスト）
* バートン・ゲルマン（英語版）（ジャーナリスト）

* カテゴリ
* コモンズ

*[表]: 参照先のページを表示します。
*[話]: 参照先のノートを表示します。
*[編]: 参照先のページを編集します。
*[歴]: 参照先のページの履歴を表示します。