HOMERSSサイトマッププロフィールお問い合せ

2006年9月12日

(復興作業)OpenVPN のインストール(1)

*** 本文は、キャッシュに残っていた OpenVPN のインストール手順を再現したもので、少し手を入れて分かりやすくしたものです。***

仕事柄、会社から家のサーバーに接続する必要に迫られることが多く、少しでも安全にということから VPN(バーチャル・プライベート・ネットワーク)を利用している。(会社では実際テストすることがセキュリティ上困難な場合が多く、家のサーバーをモルモットにしている)

当初、かの有名な SoftEther を使って VPNを張っていたのだが、新しいバージョン PacketiX になってからライセンスが複雑なものとなり、というよりは Free License が殆ど使用できないような状況になったこと。また、我が家のサーバーも Windows から Linux に交替することもあり、この際フリーな OpenVPN に切り替えることにした。

PacketiX についても60日ライセンスを取得して Linux 上にインストールして数週間使ってみたがなななか安定動作をしていた。インストールについては SoftEther社のWebサイトのマニュアルに加え、JINOの憂鬱というサイトを参考にコマンドモードでインストールおよび設定をしたが、難なく出来た。

さて、OpenVPN のインストールだが、OpenVPN 2.0 HOWTO 日本語訳 を宇都宮大学工学部の学生さん(それとも先生?)が出していたので参考にさせてもらいながら手本どおりにインストールした。

インストールのあらましは次のとおり・・・

1). OpenVPN のダウンロード(openvpn-2.0.5.tar.gz) → openvpn-2.0.7.tar.gz にバージョンが上がっていた。

2). バイナリーRPMパッケージのビルド(openssl,lzo,pamなどの依存パッケージが必要)

    依存パッケージをインストール
    # apt-get install openssl-devel
    # apt-get install pam-devel

    lzo-devel も必要なのだが apt-get では見つからなかったので探す。
    Vine Linux では lzo パッケージは extras にあるようなので、ソースリスト ( /etc/apt/sources.list ) に exreas を追加して
    # apt-get update
    # apt-get install lzo-devel

    次に、rpm ファイルをビルドする。
    $ rpmbuild -tb openvpn-2.0.7.tar.gz
3). インストール
    ホームから・・・
    # rpm -ivh rpm/RPMS/i386/openvpn-2.0.7-1.i386.rpm

4). マスタCA証明書と鍵を生成

    先ず、/usr/share/doc/openvpn-2.0.7/easy-rsa/vars ファイルの次の箇所を編集する。
    export KEY_COUNTRY=JP
    export KEY_PROVINCE=Shiga
    export KEY_CITY=Konan
    export KEY_ORG="Bit-Consul-NET"
    export KEY_EMAIL="xxxxxxxx@bit-consul.net"

    次に、PKI を初期化し、認証局(CA)の証明書と鍵を生成する。
    # cd /usr/shara/doc/openvpn-2.0.7/easy-rsa
    # . ./vars
    # ./clean-all
    # ./build-ca

    (手動での設定例)
    Common Name (eg, your name or your server's hostname) []:OpenVPN-CA

5). サーバー証明書と鍵を生成

    # ./build-key-server server

    (手動での設定例)
    Common Name (eg, your name or your server's hostname) []:server
    Sign the certificate? [y/n]:y
    1 out of 1 certificate requests certified, commit? [y/n]y

6). クライアントの証明書と鍵を生成(コマンド './build-key client1')

    client1,client2,client3 の3つのキーを作成
    # ./build-key client1
    # ./build-key client2
    # ./build-key client3

    (手動での設定例)
    Common Name (eg, your name or your server's hostname) []:client1

7). DH(Diffie Hellman)パラメータを生成
    OpenVPNサーバーにはこれが必要らしい。
    # ./build-dh

8). サーバー設定ファイルの編集と準備
    a) keys サブディレクトリに新規に作成した鍵と証明書のうち、サーバーに必要なもの( ca.crt, dh1024.pem, server.crt, server.key ) を /etc/openvpn にコピー

    b) /usr/shara/doc/openvpn-2.0.5/sample-config-files/server.conf を /etc/openvpn にコピーして編集する。
    デフォルトからの変更箇所

    proto tcp → 以前もそうだったように udp から tcp 利用に変更
    ca /etc/openvpn/ca.crt
    cert /etc/openvpn/server.crt
    key /etc/openvpn/server.key
    dh /etc/openvpn/dh1024.pem

9). サーバーの起動確認
    # openvpn /etc/openvpn/server.conf

    出力が、Initialization Sequence Completed で終われば正常。
    (注) RPMパッケージでインストールする場合、インストーラーが initscript を設定するようで、ランレベル3,4,5 でサービス起動できる。

10). Windows クライアントを作成
    a) OpenVPN の公式サイトから Windows版のインストーラーをダウンロードする。

      なんと、作業をしている最中に新しいバージョンがリリースされていた( openvpn-2.0.8-install.exe )が、今回はWindowsクライアントは壊れてはいないので、旧バージョンのまま(var 2.0.5)使用することにした。

    以前の設定では、、、
    b) インストールされたクライアントの設定ファイル "C:\Program Files\OpenVPN\sample-config\client.ovpn" 適当な場所にコピーして、編集

      設定されている項目のリスト
      client
      dev tun
      proto tcp
      remote robibuta.com 1194 → 旧のドメインで、このHPはもう復興できない・・・
      resolv-retry infinite
      nobind
      persist-key
      persist-tun
      ca ca.crt
      cert client2.crt
      key client2.key
      comp-lzo
      verb 3

    c) 同じ場所に、作成した鍵と証明書のうち、クライアントに必要なもの( ca.crt, client2.crt, client2.key ) をコピー

    d) 接続を確認

      client.ovpn を右クリックし、Start OpenVPN on this config file をクリックして接続する。サーバーと同じように出力が、Initialization Sequence Completed で終われば正常。

      プロキシサーバーを使っているのであればプロキシ経由の接続確認も・・・


    e) VPNアクセスをテストしてみよう
      C:\ ping 10.8.0.1 → サーバーのVPNアドレス

      ping が成功すればOK!

11). サーバー側 LAN にアクセスするために、/etc/openvpn/server.conf に追加設定
    push "route 192.168.1.0 255.255.255.0"

・・・というところで、サーバーの実アドレスへの ping が成功した。しかし、サーバー側の LAN に ping を飛ばしたところことごとく失敗した。
そこで、フォワーディング機能の確認とか、ゲートウェイの設定とか、、、いろいろやったのだがうまくいかず、ルーティングVPNの方が設定が楽なはずだが、これ以上時間を失いたくないので、ブリッジVPNに設定変更することにした。

それにしても、、、崩壊前のサーバーではルンルン気分でルーティングVPNが動いていたのにどうなっているのだろう???・・・ひょっとすると、前は PacketiX(SoftEther) をガチャガチャとインストールした後に OpenVPN を入れたので気がつかないうちに何らかの設定をしていたのかも知れない。

記録も記憶も失われたので・・・なんともできない。 次に行こう・・・

投稿者: 管理者 日時: 2006年9月12日 20:04 | パーマリンク |TOPページへ   ▲画面上へ

トラックバック

このエントリーのトラックバックURL:
http://www.bit-consul.net/cgi-bin/MT/mt-tb.cgi/17

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)