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が起動することになります。