OpenVPNのインストール

2015年4月20日

OpenVPNで構築するバーチャル・プライベート・ネットワーク(VPN)

VPNとは仮想の専用線を用いた通信網です。接続する場所や回線に依存せず、専用線で一つのネットワークに参加しているような状態を作り上げる事が出来ます。

詳しくは公式サイトのHOWTOOpenVPN.JPのHOWTOを見てもらうとして、ここでは小難しい事は後で覚えるから、まず環境を整えてしまいたいという人向けに、実例を踏まえて解説していきます。

前提となるネットワーク環境は以下の通り、

[tvoncmeta {animated: “fast"} ]

    • WAN
      • Internet Rooter(PR-S300NE 自宅) (192.168.1.1)
        • LAN(192.168.1.0/24)
          • DNS+OpenVPN+Samba Server(Fedora x64)
          • tvrec pc(WindowsXP x64 ATOMD525)
          • workpc(Windows7 x64)
          • other pc…
      • Internet Rooter(FA11-W3 遠隔地)
        • LAN(192.168.0.0/24)
          • workpc(Windows7 x64)
          • other pc…

[/tvoncmeta]

今のところの目的

  • 遠隔地の家族、身内、知人のPCをセキュアに接続。
  • tunデバイスを使用したVPN専用のネットワークと、tapデバイスを使用したクライアントを既存のローカルネットワークへ収容する物の2つを稼働させる。
  • セキュアな遠隔操作によるレスキュー。
  • データの共有。(サーバー、クライアントの名前解決はしない。smb:\\10.8.0.1\等でアクセスは可能とする。)
  • 家の電話を外出先から受け取れるようにする。

IPのコンフリクトを防ぐためにOpenVPN専用のアドレス空間を用意し、OpenVPNサーバーに10.8.0.0/24の範囲でIPを配ってもらいます。
また、既存のローカルネットワークへ収容するに当たり、各々のクライアントのネットワーク網とのIPのコンフリクトを避けるため、ローカルネットワークのIPの範囲を10.12.59.0/24の範囲へと変更する。

[tvoncmeta {animated: “fast"} ]

    • WAN
      • Internet Rooter(PR-S300NE) (10.12.59.1)
        • LAN(10.12.59.0/24)
          • DNS+OpenVPN+Samba Server(Fedora x64)
            10.8.0.1 (OpenVPN Server)
          • tvrec pc(WindowsXP x64 ATOMD525)
            10.8.0.10 (OpenVPN Client Auto Connect)
          • workpc(Windows7 x64)
            10.8.0.6 (OpenVPN Client Self Connect)
          • other pc…
      • Internet Rooter(FA11-W3)
        • LAN(192.168.0.0/24)
          • workpc(Windows7 x64)
            10.8.0.11 (OpenVPN Client Auto Connect)
          • other pc…

[/tvoncmeta]

ローカルPC、外部PCともに、必要に応じてOpenVPNサーバーに接続する事によって参照する事が出来る。サーバー側で内向きDNSを構築しているため、WinsやDNSの参照はさせず、いい方法が思い浮かぶまではIPを使ってアクセスする事とする。

tap接続(構成は非bridge)であれば、ネットワーク内のコンピューター名の参照は解決するものの、サーバー側のローカルグループ内のコンピューター名がOpenVPNのクライアントで無くても流れてしまう。※1
接続状態を安易に見られたくない人もいるという事もあり、tap化は保留。
tun接続であればAndroidアプリからVPNに入れるという利点もある。(現行、tapで接続できるアプリを知らない。)

※1:本来望ましい形ではないが、tap+serverで接続させるとこのような動作になる。サーバー側ローカルIPをルーティングしないため、ローカルIPではアクセス不可能だが、VPNのDHCPが割り振るIPでは無論、アクセスは可能となる。nbtstat(offical doc / IT Pro)でキャッシュを確認するとローカルIPとVPNのIPが

サーバーとして使っているディストリビューションがFedoraという事もあり、fedraproject.org Wikiを参考にして進めていきます。

# yum install openvpn.$HOSTTYPE

導入の記事で、これを見て$HOSTTYPEなんて定義があったのをはじめて知ったなんて落ちがあったものの、インストールはこれだけで済む。イーサーポートが一つの場合は自前でブリッジ構成にする必要があるものの、tunとtapデバイスは初期状態で、開始すれば作成され、終了すれば消滅するように構成されているため、雑多な作業をする必要はない。

これを書いている段階で、OpenVPNのバージョンは2.3.1です。
yumでopenvpnをインストールした状態では、/etc/openvpnのディレクトリの中身は空なのでサンプルディレクトリからserver.confをコピーして、コメントを見て修正して行きましょう。

# cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/

 /usr/share/doc/openvpn-2.3.1ディレクトリの中にドキュメントと各種設定ファイルのサンプルが存在します。ただし、ドキュメントは非常に薄く、使用に当たってはman openvpnでマニュアルを参照した方が有益な情報が得られます。

OpenVPNはPKI(公開鍵基盤)の証明書を管理するのにeasy-rsaを導入する訳ですが、openvpn-2.3.1にはeasy-rsaのセットが含まれていません。fedraproject.org Wikiを読み進めていくとbugzillaを参照の事とあります。

FYI, this is out of date, as easy-rsa is not included as of openvpn 2.3.x. easy-rsa is ready for a reviewer: https://bugzilla.redhat.com/show_bug.cgi?id=966139

specとsrpmを用意したので自前でビルドしてくれとのことですが、rpmbuildに関してここで記述するとグダグダになるのでビルド済みのパッケージを置いておきます。

easy-rsa-2.2.0-1.fc18.noarch.rpm
(ファイル名から_.gzを削って使用してください)

以下のコマンドでインストールします。

# yum install easy-rsa-2.2.0-1.fc18.noarch.rpm

インストール後は以下の場所にファイルが展開されます。

[tvoncmeta {animated: “fast"} ]

    • usr
      • share
        • doc
          • easy-rsa-2.2.0
      • easy-rsa
        • 2.0 

[/tvoncmeta]
必要なのは赤くマークした 2.0ディレクトリなので、以下のコマンドで証明書の作業ディレクトリとしてコピーします。

# cp -ai /usr/share/easy-rsa/2.0 /etc/openvpn/easy-rsa

 次回、証明書の作成と管理へと続きます。