SSL認証の作成

OPENVPNは、SSLを使って認証します。数kバイトのファイルですが、認証ファイルがないと、OPENVPNの接続が出来ません。重要なファイルですので、作成後はなくさないように(まあ、すぐに作成可能ですが)また、流出に気をつけてください。流出させてしまったときには、以前の認証ファイルは、破棄してください。・・・私もこれ以上の知識はありません。。。

 さて、SSL認証を作成してみましょう。OPENVPNは、C:\Program Files\OpenVPNにインストールされています。このフォルダーにeasy-rsaがありますので、これを開きます。

 コマンドラインのプロンプトを出し、

cd c:\program files\openvpn\easy-rsa

と入力しますと、下記の通りになります。

ここから、灰色のところのコマンドを入力していきます。

init-config

このコマンドで、同じディレクトリに vars.bat と openssl.cnf が作成されます。vars.batをNoEditorなどのエディタソフトで開きます。(メモ帳では、改行されませんので、事実上編集は不可能です。
 このファイルのうち、後ろ5行ほどを適当に設定します。

set KEY_COUNTRY=JP
set KEY_PROVINCE=KU
set KEY_CITY=Kumamoto
set KEY_ORG=OnoDekitaClinic
set KEY_EMAIL=mail@ocn.ne.jp

 空白でなければよいのですが、後ほど使用したときにこのパラメータが画面に毎回表示されますので、それなりに記入しておきましょう。

 このままだと、これら認証ファイルの有効期限は、365日になってしまいます(まあ、セキュリティ的にはこちらの方が望ましい)ので、openssl.cnfの55行目を

default_days=3650 # how long to certify for

のように10年期限としておきましょう(これ以上長い設定はできないようです)

vars
clean-all
build-ca

最後のbuild-caで次のようにcaの証明書が発行します。Common Nameは、適当に入れてください。

C:\Program Files\OpenVPN\easy-rsa\keysにca.crtが出来ています。クリックして、次のような証明書となっているのを確認しておきます。証明書が信頼されていませんが、自己の証明なので、このままで問題はありません。

次に、サーバーの証明書と鍵を作成します。

build-key-server server

同じように、keysの中に、server.key, server.crt, server.csrが作成されます。server.crtは、

検証できないと怒られますが、放っておきます。

次は、クライアントの証明書を作成します。たとえば、Dell, ASUS, Fujitsuの3つのクライアント証明書を作成するには、(もちろん、名前はどーでもいいわけですが)

build-key Dell
build-key ASUS
build-key Fujitsu

次にDiffie Hellmanパラメータ(すみません、何のことだか私わかりません)を作成します。

build-dh

take a long timeとありますが、私のパソコン(Core2 Duo E6300)では、1−2分程度でした。

以上をまとめると、次のようになります。

ファイル名 必要とするマシン 目的 秘密にする必要があるか
ca.crt サーバとクライアント CA証明書 いいえ
ca.key 鍵署名マシンだけ CA鍵 はい
dh{n}.pem サーバだけ DH (Diffie Hellman) パラメータ いいえ
server.crt サーバだけ サーバ証明書 いいえ
server.key サーバだけ サーバ鍵 はい
Dell.crt クライアント1だけ クライアント1証明書 いいえ
Dell.key クライアント1だけ クライアント1鍵 はい
ASUS.crt クライアント2だけ クライアント2証明書 いいえ
ASUS.key クライアント2だけ クライアント2鍵 はい
Fujitsu.crt クライアント3だけ クライアント3証明書 いいえ
Fujitsu.key クライアント3だけ クライアント3鍵 はい

Serverの設定ファイルは、次の通りにしています。
C:\program files\openvpn\ca(caは新しく作ったディレクトリ)に

のようにファイルを入れておきます。
C:\Program Files\Openvpn\config に次の内容のopenvpn設定ファイルを作成します。

ファイル名は何でもよいですが、たとえばserver.ovpnとしましょう。

;mode server

port 1194

proto udp

dev tap

cd "..\\ca"
ca ca.crt
cert server.crt
key server.key # Keep in secret this file

dh dh1024.pem

server-bridge 192.168.24.101 255.255.255.0 192.168.24.30 192.168.24.39
# Serverのアドレスは 192.168.24.101 OPENVPN Serverに接続されるパソコンは、192.168.24.30-39のアドレスを配布される

client-to-client #他の院内LANにも接続できるように

keepalive 10 120

comp-lzo

persist-key
persist-tun

verb 3

できたアイコンが、次のようになっていることを確認してください。

このアイコンを右クリックすると下のように
Start OpenVPN on thies config file
が出てきますので、これを選べば、

このようにInitialization Sequence Completedが出てくれば、サーバーはうまく動作しています。

同様にクライアントの設定は、Dell.ovpn(このファイルは、サーバーのファイルとは違うディレクトリにおいた方が無難です)

client

proto udp

# タップ(L2)使用
dev tap

nobind
# VPNサーバのアドレス

remote iin.dip.jp 1194 #Dynamic DNSのアドレス portを設定

# 証明書設定
cd "ca"
ca ca.crt
cert dell.crt
key dell.key

# キープアライブのping送信間隔(Sec)
keepalive 10 120

# enable LZO compression
comp-lzo

# moderate verbosity
verb 4
mute 10

pull
float

サーバーの時と同じように動作させると

のようにサーバーに接続されます。

ping 192.168.24.1

と、サーバー側とコンタクトができていることを確認してください。

ここまで、うまくいけば、OPENVPNサーバーをOSのサービスに登録します。

コントロールパネル->管理ツール

から、サービスを選択OPENVPNを選択

のように設定します。こうすることで、OPENVPNサーバを起動したときから、サービスとしてOPENVPNが起動することになります。