OpenVPN
From Wikipedia, the free encyclopedia
OpenVPNは、サーバ間に暗号化されたトンネルを作成するためのオープンソースのVirtual Private Network(VPN)ソフトウェアである。James Yonanが開発し、GNU General Public Licenseでリリースされている。
概要
暗号
認証
ネットワーク
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認証処理が開始されなくなる。