Pocket

このページはOpenVPN公式サイトのコンテンツ(“Static Key Mini-Howto”)の翻訳ですが、完全な翻訳であることを保証するものではありません。正確な情報については公式サイトの情報も併せてご確認ください。

概要

静的鍵での設定はセットアップが容易で、point-to-pointでのVPNでの利用や、テストやデモなどの用途に適しています。

静的鍵を利用する場合の利点

  • セットアップが簡単
  • X509 PKIの保守が不要

静的鍵を利用する場合の欠点

  • 拡張性が低い - 1台のクライアントと1台のサーバーの組み合わせのみ
  • PFS(Perfect Forward Secrecy)の欠如 — 鍵が漏洩した場合、以前のセッションについてもデータが明らかになってしまう
  • VPNのペアごとに秘密鍵をプレーンテキストファイルとして保持しなければならない
  • 秘密鍵を交換するのに、安全な方法(フロッピーディスクなどの物理媒体、暗号化されたネットワーク経由など)を使わなければならない

シンプルな例

この例では、最も単純で基本的なpoint-to-pointでのOpenVPN構成を説明します。

10.8.0.1のサーバーと10.8.0.2のクライアント間でVPNトンネルを構成し、OpenVPNのデフォルトであるUDPのポート1194を使って接続します。

まず、静的鍵を生成します。

openvpn --genkey --secret static.key

生成された静的鍵をサーバーとクライアントの両方にコピーします。この際、安全な方法でコピーするように注意してください。

サーバー設定ファイル

dev tun
ifconfig 10.8.0.1 10.8.0.2
secret static.key

クライアント設定ファイル

remote myremote.mydomain
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key

ファイアーウォール設定

下記のように設定されていることを確認してください。

  • サーバーのUDPポート1194がオープンされていること
  • OpenVPNが使用している仮想TUNインターフェイス(サーバーとクライアントの両方)がブロックされていないこと(TUNインターフェイス には、Linuxではtun0というような名前が、Windowsでは(変更していなければ)ローカルエリア接続nというような名前が付けられています)

OpenVPNの初心者が直面するネットワーク接続上の問題の多くは、このファイアーウォールが原因になっているようです。

VPNのテスト

サーバーとクライアントに上記の設定ファイルを配置し、OpenVPNを実行します。クライアント設定ファイルの中にあるmyremote.mydomainを、接続するOpenVPNサーバーのIPアドレスやFQDNに書き換えてください。

VPNの動作を確認するには、サーバーから10.8.0.2に、クライアントから10.8.0.1に対してそれぞれPINGを実行します。

シンプルな例から拡張する

VPNリンクでの圧縮の使用

クライアント設定ファイルとサーバー設定ファイルの両方に下記の記述を追加します。

comp-lzo

不安定な接続に対する対策の強化

具体的な対策として次のような方法があります。

  • NATルータやファイアーウォールでの接続を維持する
  • サーバーのIPアドレスが変わった場合にDNS名を追跡する

下記の設定をクライアントとサーバーの設定ファイルに追加します。

keepalive 10 60
ping-timer-rem
persist-tun
persist-key

OpenVPNをデーモンとして実行する(Linux/BSD/Solaris/MacOSXのみ)

OpenVPNをデーモンとして実行し、権限をuser/group nobodyにドロップするには、設定ファイルに下記の記述を追加します。

User nobody
group nobody
daemon

クライアントがサーバー側サブネット全体にアクセスできるようにする

OpenVPNサーバーがサブネット192.168.4.0/24にあると仮定します。クライアント設定ファイルに下記の記述を追加します。

route 192.168.4.0 255.255.255.0

サーバー側では、10.8.0.2へのルートをOpenVPNサーバーにルーティングするようサーバー側LANゲートウェイのルートを設定します(これはOpenVPNサーバーとサーバー側LANゲートウェイが別PCの場合に必要な作業です)。

また、OpenVPNサーバーPCでIPフォワードが有効になっていることを確認してください。