印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
Windows Windows Vista で OpenVPN GUI

Windows Vista に OpenVPN GUI をインストールして使う。設定ファイルがどこに格納されているのかは謎。

■ ■ ■

昨年の今日,Windows XP に OpenVPN GUI をインストールして使う記事を書いた (nlog(n): Windows XP に OpenVPN GUI をインストール)。OpenVPN サーバには Vine Linux 4.2, OpenVPN 2.0.9 をインストールしている (nlog(n): Vine Linux 4.2 に OpenVPN サーバをインストール)。

Windows Vista でも同じように OpenVPN GUI が動くのだが,少し工夫が必要である。

クライアントの動作環境は,Windows Vista Business SP1 32bit, OpenVPN GUI v1.0.3 である。ネットワークは,サーバのネットワークが 192.168.0.0/24,クライアントのネットワークが 10.10.10.0/24 なので,OpenVPN のネットワークには 176.16.0.0/24 を使っている (nlog(n): Linux サーバと Windows クライアントで OpenVPN)。

以下は OpenVPN 証明書を使う方法。共通鍵を使う方法もある (OpenVPN-2.0.5 証明書を使う [FC4]OpenVPN-2.0.5 共通鍵を使う [FC4])。

OpenVPN クライアント

OpenVPN GUI のインストール

OpenVPN GUI for Windows から,パッケージをダウンロードする。Windows Vista 対応の OpenVPN 2.1 以降をダウンロードすること。現時点での最新版は openvpn-2.1_rc16-install.exe である。バージョン 2.1 から GUI が同梱された。

実行してインストールする。

管理者として実行する権限の付与

管理者でない,一般の権限で実行すると「Connecting to client has failed.」というメッセージウィンドウが表示され,接続できない。「クライアントへの接続に失敗」という意味なので,恐らく「OpenVPN GUI」→「OpenVPN.exe (Client)」の接続に失敗しているという意味なのだろう。

これを回避するには,実行する際に右クリックで「管理者として実行(A)...」を選ぶか,あらかじめプロパティにこれを設定してしまうことである。設定方法は,「OpenVPN GUI」の実行ファイルを右クリックしプロパティを選択,「互換性」タブの下の方にある「管理者としてこのプログラムを実行する」にチェックを入れる (わがまま大王@みらにすた - CentOS 5.2 に OpenVPN を突っ込むテスト[3])。

管理者特権を与えるのは「openvpn-gui.exe」である。「openvpn.exe」には管理者特権を与えなくてもよい。

設定ファイルの謎

クライアントの設定ファイルは,デフォルトで C:\Program Files\OpenVPN\config フォルダに保存するようになっている。サンプルは C:\Program Files\OpenVPN\sample-config にある。拡張子を .opvn にすればプログラムが読んでくれる。

しかし,ここで大きな謎に直面した。タスクトレイにある OpenVPN GUI を右クリックして「Edit Config」を選択すると出てくる設定ファイル client.opvn と,C:\Program Files\OpenVPN\config フォルダに置いた client.opvn の内容が違うのだ。「Edit Config」するとメモ帳で開くのだが,どこにあるファイルなのか分からない。試しに「ファイル」→「名前をつけて保存」を選択してみると「C:\Program Files\OpenVPN\config」というパスに「client.opvn」という名前で保存しようとする。これは先のフォルダと同じだ。しかし内容が違うのだ。

今のところ謎は謎のまま放置する。私が現在使っている,「Edit Config」で表示されるclient.opvn は次の通り。

client
dev tun
proto udp
remote nlogn.ath.cx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 3
pull
float
route-method exe

強調部分はサーバやクライアントによって異なる。ここでのポイントは,「route-method exe」という行が必要だということである (Using OpenVPN on Windows Vista)。「route-delay 2」は追加しなくても動作はする。

サーバで作った証明書のインストール

サーバで ca.crt, client.crt, client.key の3つのファイルを作って,設定ファイルのフォルダ C:\Program Files\OpenVPN\config に保存する。

OpenVPN GUI の実行

OpenVPN GUI はスタートアップに登録される。しかし,管理者特権を与えてあるため,実行はされず保留となる。実行するには,タスクトレイの「ブロックされたプログラム」を右クリックし,「ブロックされたプログラムの実行」→「openvpn-gui.exe」の順で選択する。Windows Vista は確認を求めてくるので,許可をクリックすればよい。

OpenVPN GUI はスタートアップに登録されるが,「スタート」→「スタートアップ」内には出てこない。「コントロールパネル」→「スタートアップ」→「既定のプログラム」→「スタートアップ時に実行するプログラムの停止」で確認することができる。

OpenVPN サーバ

サーバのインストール

サーバのインストールは nlog(n): Vine Linux 4.2 に OpenVPN サーバをインストール の通り。

設定ファイル

/etc/openvpn/server.conf の内容は以下の通り。dev はクライアントと合わせておく。

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
dh /etc/openvpn/dh1024.pem
server 172.16.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"
client-to-client
keepalive 10 120
comp-lzo
max-clients 10
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
verb 3

サーバセグメントにある他の機器にルーティングが行われるようにするため,iptables で仮想セグメントを NAT として追加する (ゼロ円でできるインターネットVPN(4/4))。

# iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -o eth0 -j MASQUERADE

通信ができることを確認したら,設定を保存して再起動しても適用されるようにしておく (iptables・設定・ファイアウォール・セキュリティ)。

# /etc/init.d/iptables save
現在のルールを/etc/sysconfig/iptablesに保存中:             [  OK  ]

おわりに

Windows Vista でも OpenVPN ができて,自宅外からでも自宅内のプライベートネットワークにファイルが保存できるようになった。Fire File Copy を使えば,ファイルやフォルダのタイムスタンプも変わらずにそのまま保存できる。

これで PortForwarder はもう要らないかと思ったが,自宅内の ADSL モデムは http アクセスなので,捨てるわけにはいかないのだった。

それにしても,client.ovpn はどこに保存されているのだろうか…。謎である (追記: C:\Users\(ユーザ名)\AppData\Local\VirtualStore\Program Files\OpenVPN\config にありました)。

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

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


(必須, 表示されます)


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


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


Confirmation Code (必須)


Remember info (R)?