ゲストメニュー
検索
ログイン
ユーザID または e-mail:

パスワード:

IDとパスワードを記憶

パスワード紛失

新規登録

2006/01/08
OpenVPN on Windows (1)
カテゴリ : インターネット
執筆者: f-miyaji ()
ちょっとした出先から、自宅にあるWindowsマシンを遠隔利用したくなることはよくあります。
LinuxマシンならOpenSSHを利用してリモートログインすれば済むのですが
Windowsマシンでは難しいので、これまでは
SoftEtherでトンネルを掘って、リモートデスクトップやUltr@VNCを利用していました。

最近、SoftEtherがPacketiXという名前に変わった際に、ライセンスも変更されて
Free Editionであっても60 日ごとにライセンスの更新が要求されるようになってしまいました…

いちいちライセンスを更新するのは不便なので、代わりのソフトウェアを探しているとOpenVPNというソフトウェアを見つけました。
これはレイヤ2トンネリングが可能で、Linux、Solaris、*BSD、Mac OS X、Windows(2000以降) など多くの環境で動作し、
かつオープンソースなので、この際、乗り換えることにしました。

ちょっとググると、OpenVPN 2.0 HOWTO 日本語訳を発見したので、これを参考にして
WindowsマシンにOpenVPNをインストールした場合の手順を
メモ代わりに書いておきます。



ソフトウェアの入手

まず、ソフトウェアを入手するのですが、OpenVPNにはGUIが付属したバージョンとそうでないバージョンが存在します。
サーバにするマシンにはGUIは必要ないので
http://openvpn.net/download.html#stable から
安定版のパッケージopenvpn-2.0.5-install.exeを入手し、インストールします。
クライアントマシンにはGUI版の配布サイト http://openvpn.se/download.html からopenvpn-2.0.5-gui-1.0.3-install.exeを入手し、インストールします。

インストール中に仮想イーサネットデバイスのTAP-Win32 Adapterが作成されるので、マイネットワークのプロパティからアダプタ名を日本語を含んだ名前から、4文字以上の英数字の名前に変更しておくといいでしょう。【参考】
ここで設定した名前は後で利用します。
今回はサーバ・クライアント共に「tap-1」という名前に変更しました。




パーソナルファイアウォールによるブロック

また、WindowsXP SP2やパーソナルファイアウォールを利用している場合は
OpenVPNのプログラムがブロックされてしまうので、
サーバの場合はC:\Program Files\OpenVPN\bin\openvpnserv.exe
クライアントの場合はC:\Program Files\OpenVPN\bin\openvpn.exe
をブロックの対象から解除してください。
Windowsファイアウォールの場合、例外タブにプログラムを追加するとOKです。

証明書の作成準備

今度は接続に必要な証明書と鍵を作成します。
自己発行の証明書になるので信頼性が低くなることは理解しておいてください。

サーバマシンにログインして
コマンドプロンプトを起動し、cd "C:\Program Files\OpenVPN\easy-rsa"
と入力し、実行します。

次にinit-configと入力すると、vars.batとopenssl.cnfファイルが作成されます。
これで証明書を発行する準備が整いました。

最初にCA証明書を作成します。
vars
clean-all
をコマンドプロンプトで実行し、CA証明書を初期化します。
build-caを実行すると、
いくつか質問が行われますので、適当な内容を入力してください。
エンターキーを押してスキップするとデフォルト値になります。

Country Name (2 letter code) [US]:
State or Province Name (full name) [CA]:
Locality Name (eg, city) [SanFrancisco]:
Organization Name (eg, company) [FortFunston]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address [mail@host.domain]:

Common Nameの欄には、DDNSなどで取得したサーバマシンのホスト名などユニークな名前を入力する必要があります。
また、今後発行する証明書ではCountry Name, State or Province Name, Organization Nameの内容は一致する必要があります。
実行後、ca.crtとca.keyがkeysフォルダの下に作成されます。
鍵の作成が終了したら、署名用のca.keyはネットワークから接続できないマシンやディスクに保管しておくと良いでしょう。

サーバ証明書の作成

続けて、サーバ証明書を作成します。
同じコマンドプロンプトで
build-key-server serverと入力します。
いくつかの質問があるので先ほどと同じように適当な内容を入力してください。
Common Nameの欄にはserverと入力します。
実行後、
server.crt, server.key, server.csrがkeysフォルダの下に作成されます。

クライアント証明書の作成

接続したいクライアントごとに証明書を作成します。
同じコマンドプロンプトで
build-key クライアント名と入力します。
クライアント名は適当につけてかまいませんが、Common Nameの欄と一致する必要があります。
いくつかの質問があるので先ほどと同じように適当な内容を入力してください。

実行後、
クライアント名.crt, クライアント名.key, クライアント名.csr がkeysフォルダの下に作成されます。
クライアント証明書はクライアントで作成することもでき、その際にはCSRファイルが必要ですが、ここでは触れません。

Diffie-Hellman鍵交換用ファイルの作成

DH鍵交換方法のためのファイルを作成します。

同じコマンドプロンプトで
build-dhと入力、実行します。
結構時間がかかった後、dh1024.pemファイルがkeysフォルダの下に作成されます。

TLS認証用ファイルの作成

TLSのためのファイルを作成します。

同じコマンドプロンプトで
openvpn --genkey --secret ta.keyと入力、実行します。
実行後 ta.keyファイルがkeysフォルダの下に作成されます。

以上で接続に必要な証明書と鍵の作成が終了しました。
設定ファイルの記述についてはまた後日ということで。
f-miyajiさんのブログを読む | コメント (0) | トラックバック数 (6) | 閲覧数 (24706)
トラックバックURL
このエントリが受けたトラックバック
SoftEther→他のVPNシステム 乗り換えスレ http://pc8.2ch.net/test/read.cgi/network/1136813055/...more
1147856560
SSL-VPN 自宅(鶴見)の方で設定してみる。でクライアントは実家でアクセスしてみる。それが出来れば、 お勉強になる。 データは家においておけばいい。 でも電源付けっぱなしか。外から出来ればいいのに。それはいやか?恐るべき家電モード。 ▲ ▼MYDNS.jpにしよう ......more
1143531077
特に忘れそうなことを書いておくだけ。 ▲ ▼SSL-VPN 自宅(鶴見)の方で設定してみる。でクライアントは実家でアクセスしてみる。それが出来れば、 お勉強になる データは家においておけばいい。 でも電源付けっぱなしか。外から出来ればいいのに。それはいやか?恐......more
1143531069
OpenVPN 設定方法のメモ OpenVPN on Windows (1) http://www-shikida.jaist.ac.jp/modules/weblog/details.php?blog_id=59 OpenVPN on Windows (2) http://www-shikida.jaist.ac.jp/modules/weblog/details.php?blog_id=60 client name: moyamada mxp01 galant g......more
1142912738
ごきげんよう 使えない SoftEther こと PacketiX を捨てて 会......more
1140442203
投稿された内容の著作権はコメントの投稿者に帰属します。
投稿する
お名前
コメント url email imgsrc image code quote
サンプル
bold italic underline linethrough   


 [もっと...]
 
最近のweBLogのコメント
*印のエントリは閲覧不可
なにかと便利
-- 
(2006/04/06)
Re: 無題
-- 
(2005/12/15)
無題
-- 
(2005/12/08)