まえがきでは、特に暗号化されていない公衆無線LANを安全に利用する技術として、VPN (Virtual Private Network, 仮想私設網)が有効であることを説明しました。本記事からは、FreeBSD上にOpenVPNを用いたVPNサーバを構築し、VPNクライアントとの間で安全な通信を行なえるようになるまでを説明します。

この目的を達成するためには、おおまかにいって以下の手順が必要になります。

  1. VPNのネットワーク設計
  2. OpenVPNサーバのインストール・設定
  3. OpenVPNクライアントのインストール・設定
  4. OpenVPNクライアントとサーバ間での導通確認
  5. OpenVPNサーバのファイアウォール・NATルータの設定

本記事では、一つ目のパートであるネットワーク設計について説明します。「設計」といっても大げさなものではなく、VPNサーバを構築しようとしているFreeBSDマシン(以降、サーバ機器といいます)に現在割り当てられているIPアドレスなどを確認し、VPN内で使用するIPアドレスを決定する、というのが主な内容です。

注: 本記事では、サーバ機器に固定のIPv4およびIPv6アドレスが、それぞれ1つずつ割り当てられているという前提で説明を進めていきます。IPv4アドレスが動的に割り当てられる環境でもVPNサーバを構築することは可能ですが、ドメイン名解決のためにダイナミックDNSの併用が必要です。

注2: 本記事で用いるIPアドレスはVPN内で用いるものを除き、説明用のIPv4およびIPv6アドレスです。このアドレスをそのまま用いても動作しませんので、必ずお使いの環境に合わせてアドレスの読み替えをお願いします。

では、まずサーバ機器に割り当てられているドメイン名およびIPアドレスを確認しましょう。

次に、VPN内で使用するIPアドレスを決定します。

先に述べたとおり、サーバ機器に割り当てられているアドレスはIPv4, IPv6とも1つだけなので、VPN内でグローバルアドレスを用いることはできません。そこで、IPv4についてはプライベートアドレス、IPv6についてはユニークローカルアドレス(IPv4のプライベートアドレスに相当するもの)を使うことにします。この制約のなかであれば、アドレスは自由に決定してかまいません。本記事では、以下のように決めることにします。

VPNサーバおよびVPNクライアントには以下のようにアドレスを割り当てることにしましょう。また、VPNクライアントには、VPN内で用いるドメイン名を割り当てます。本ドメイン名は、クライアント証明書を発行する際のコモンネーム(Common Name, CN)として使います。

ネットワーク設計の結果をまとめると、以下のブロック図のようになります。

VPNサーバのネットワーク構成図

次回はネットワーク設計の結果を用いて、OpenVPNサーバのインストールおよび設定を行ないます。

参考文献

  1. OpenVPN, https://openvpn.net/
  2. RFC 5737, IPv4 Address Blocks Reserved for Documentation, https://tools.ietf.org/html/rfc5737
  3. RFC 3849, IPv6 Address Prefix Reserved for Documentation, https://tools.ietf.org/html/rfc3849
  4. RFC 1918, Address Allocation for Private Internets, https://tools.ietf.org/html/rfc1918
  5. RFC 4193, Unique Local IPv6 Unicast Addresses, https://tools.ietf.org/html/rfc4193