OpenVPN設定メモ
以下、思いついたことを羅列していきます。


参考にしたサイト
http://openvpn.sourceforge.net/
ここがOpenVPNの本家だ。どこよりも丁寧にわかりやすく書いてある。ただし全部英語。

Linux/BSD/Solaris/Macの場合は、
For step-by-step installation instructions with real-world
examples see: (http://openvpn.sourceforge.net/man.html#lbAR)
のところの"TUN/TAP DRIVER SETUP"のセクションから読んでいって順番にやって実行していけば何とかOpenVPNは動くので、日本語の設定例の書かれたサイトを見てやってもうまくいかない場合は、面倒くさがらずに英文を読んでみると良いです。


Windowsの場合は、
OpenVPN on Windows notes
(http://openvpn.sourceforge.net/INSTALL-win32.html)の"How to Install"から順番にやっていけば何とかなると思う。


細かい設定についてはGoogleで検索すると日本語のサイトで親切に書いているところがある。
OpenVPNを使ったVPNの構築 http://www.komoto.org/vpn/openvpn.html
↑小本 真広さんのサイトはとても参考になった。ありがとうございました。

LZO圧縮を使わないので、configureオプションに
./configure --disable-lzo を付ける。Vineのデフォルトではこのオプションをつけないとインストール出来ないはず。

なんと、OpenVPN 2.0から一つのサーバーで単一ポートで複数ユーザーが接続することが出来る。ver1.xまでは基本的にP2P接続のみサポートしていたが、ver2からは数千台のクライアントが同時接続できるようにするつもりのようである(と公式サイトのどこかに書いてあった)

やっぱり、Pre-shared(事前鍵)より、TLSベースのより安全なセキュリティを実装したい。
Vine Linuxに標準でOpenSSLがインストールされているのでこれを使うことにする。OpenVPNのソースの中にeasy-rsaというディレクトリがあり、その中に鍵を楽に作るためのスクリプトが入っている。各スクリプトの使い方は、A Simple Guide to RSA Key Management(http://openvpn.sourceforge.net/easyrsa.html)に書いてあるので順にやっていくとなんとかなるはずだ。ただし全部英語。

Windows版の方は、OpenVPN2.0をインストールすると、openssl.exeがbinの中にインストールされるのでこれを使って鍵を作成することが出来ると思う。

OpenVPNはConfigファイルを起動時に読み込んで初期化するやり方と、コマンドのオプションに各パラメータ類をセットして初期化&起動するやり方の2種類の起動方法がある。どちらでもOpenVPNは全く同じように動くのだが、コマンドにオプションのやり方だとコマンドが300文字くらいになって読みにくいことこの上ないのだ。設定を試行錯誤しながらコロコロ変えていく段階ではConfigファイル方式よりコマンド方式のほうが手軽だ。しかし、ある程度動作確認できたら、コンフィグファイルを作って起動時に読み込ませて使ったほうがよい。将来的に複数のWindowsクライアントに設定ファイルを配布するかもしれないし。


暗号の長さは1024ビットで十分らしい。2048ビットにするとかなり遅くなる。


IPはダイナミックにサーバーが複数クライアントにバーチャルなIPを振っていくことが出来る。
また、クライアント側の実IPも固定である必要はなく、ダイナミックなIPで大丈夫。つまり、自宅のダイナミックIP契約のADSLや公共施設の無線LANからもOpenVPNサーバーにアクセスしてバーチャルのIPをダイナミックに割り振ってもらえるということである。(ダイナミック言い過ぎ)

というか、クライアント側を固定IPの設定にして接続を試みたがうまくいかなかった。ちなみに、
サーバー:VineLinux2.6RC4+openvpn-2.0_beta7
クライアント:WindowsXP+openvpn-2.0_beta7