印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
LinuxWindows Windows XP に OpenVPN GUI をインストール

Windows XP に OpenVPN GUI をインストールし,VPN クライアントとしてサーバに接続する。

■ ■ ■

はじめに

Linux と Windows での OpenVPN の最終回 (nlog(n): Linux サーバと Windows クライアントで OpenVPN)。ここでは,Windows XP に OpenVPN GUI をインストールする (OpenVPN GUI for Windows)。私は英語版をインストールしたが,日本語版でもよさそうだ (OpenVPN GUI for Windows 日本語版 - OpenVPN 日本語情報サイト 《プラムシステムズ株式会社》)。

条件としては,すでに OpenVPN サーバが起動していること (nlog(n): Vine Linux 4.2 に OpenVPN サーバをインストール),サーバ上のプライベートCAで,クライアント用の秘密鍵を作成してあることである。秘密鍵の作成方法は ゼロ円でできるインターネットVPN(3/4) で解説されている。

インストールと設定

OpenVPN GUI for Windows パッケージをダウンロードし (OpenVPN GUI for Windows 日本語版),インストールする。

サーバで生成した証明書と鍵 (ca.crt, client.crt, client.key) を OpenVPN GUI for Windows のコンフィグレーションファイルディレクトリにコピーする。ディレクトリは「スタート」→「プログラム」→「OpenVPN」→「OpenVPN configuration file directory」で開くことができる。ディレクトリパスは,デフォルトで C:\Program Files\OpenVPN\config となっている。

設定ファイルのサンプル OpenVPN\sample-config\client.ovpn を OpenVPN\config\client.ovpn にコピーする。コピーした設定ファイルを編集し,サーバ証明書とクライアント鍵の名前を,ダウンロードしたファイル名に変更する。ファイルの最後に次の行を追加する。

pull
float

サーバへの接続

パスワードの問い合わせ
パスワードの問い合わせ


タスクトレイの OpenVPN GUI アイコンを右クリックし「Connect」を選択する。コンフィグレーションファイルディレクトリに複数の *.ovpn 設定ファイルがある場合は,「Connect」から選択肢が表示される。「Enter Password」と表示されるので,クライアント鍵生成時に設定したパスワードを入力する。タスクトレイにポップアップで「client is now connected.」と表示されれば成功である。

接続に失敗する場合

クライアント鍵に問題があり,サーバに接続できない場合を紹介する。接続に失敗したクライアントには次のメッセージが表示された。

Tue May 27 01:29:54 2008 OpenVPN 2.0.9 Win32-MinGW [SSL] [LZO] built on Oct  1 2006
Tue May 27 01:29:54 2008 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA.  OpenVPN 2.0-beta16 and earlier used 5000 as the default port.
Tue May 27 01:29:54 2008 WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Tue May 27 01:29:54 2008 LZO compression initialized
Tue May 27 01:29:54 2008 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Tue May 27 01:29:54 2008 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Tue May 27 01:29:54 2008 Local Options hash (VER=V4): '41690919'
Tue May 27 01:29:54 2008 Expected Remote Options hash (VER=V4): '530fdded'
Tue May 27 01:29:54 2008 UDPv4 link local: [undef]
Tue May 27 01:29:54 2008 UDPv4 link remote: 192.168.0.198:1194
Tue May 27 01:29:54 2008 TLS: Initial packet from 192.168.0.198:1194, sid=7859ba00 d8820ff5
Tue May 27 01:29:54 2008 VERIFY OK: depth=1, /C=JP/ST=someState/L=someLocality/O=someOganization_/CN=someOrganization__CA/emailAddress=user@domain
Tue May 27 01:29:54 2008 VERIFY OK: depth=0, /C=JP/ST=someState/L=someLocality/O=someOganization_/CN=server/emailAddress=user@domain

最後に「VERIFY OK」となっているが,接続できていない。それよりも最初の「WARNING: No server certificate verification method has been enabled.」の方が重要である。

サーバのログ openvpn.log には,次のように記録されていた。

Tue May 27 01:32:21 2008 MULTI: multi_create_instance called
Tue May 27 01:32:21 2008 192.168.0.101:3511 Re-using SSL/TLS context
Tue May 27 01:32:21 2008 192.168.0.101:3511 LZO compression initialized
Tue May 27 01:32:21 2008 192.168.0.101:3511 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Tue May 27 01:32:21 2008 192.168.0.101:3511 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Tue May 27 01:32:21 2008 192.168.0.101:3511 Local Options hash (VER=V4): '530fdded'
Tue May 27 01:32:21 2008 192.168.0.101:3511 Expected Remote Options hash (VER=V4): '41690919'
Tue May 27 01:32:21 2008 192.168.0.101:3511 TLS: Initial packet from 192.168.0.101:3511, sid=17fd1649 30371579
Tue May 27 01:32:21 2008 192.168.0.101:3511 VERIFY ERROR: depth=0, error=unsupported certificate purpose: /C=JP/ST=someState/L=someLocality/O=someOrganization_/CN=client01/emailAddress=user@domain
Tue May 27 01:32:21 2008 192.168.0.101:3511 TLS_ERROR: BIO read tls_read_plaintext error: error:140890B2:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned
Tue May 27 01:32:21 2008 192.168.0.101:3511 TLS Error: TLS object -> incoming plaintext read error
Tue May 27 01:32:21 2008 192.168.0.101:3511 TLS Error: TLS handshake failed
Tue May 27 01:32:21 2008 192.168.0.101:3511 SIGUSR1[soft,tls-error] received, client-instance restarting

こちらは「VERIFY ERROR」である。

原因は,クライアント鍵の生成の方法を間違っていたからだった。「build-key-pass」とすべきところを「build-key-server」で生成していたのだ。

# ./build-key-server client01    ←間違い
# ./build-key-pass client01    ←正しい

「build-key-server」はサーバ鍵の生成に使うスクリプトである。

2009年5月27日追記:
Windows Vista に OpenVPN クライアントを導入する場合について書きました (nlog(n): Windows Vista で OpenVPN GUI)。

Posted by n at 2008-05-27 02:01 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?