注意事項
証明書
最初に証明書を作ったca.keyは機密にし、かつ、ちゃんと保存されていなければならない
クライアントの証明書は、同じ鍵で認証されている必要があり、サーバとクライアントは同じ証明局の署名(ca.crt)を共有している必要がある
よって、ca.keyがコピーされてしまうと、誰でもVPNに入れるようになってしまうし、ca.keyをなくしてしまうと新しい証明書を作れなくなってしまう
ブリッジング
dev tap
での利用はブリッジングが前提だが、macosxでは現時点でブリッジングがサポートされていない模様
dev tun
での利用の方が、ルーティングの設定などが楽である
いずれにせよ、サーバ側とクライアント側で同一にすること
ルータの設定
(比較的見落としやすいので注意)
- 外からOpenVPNポートへの接続をサーバのポートへ転送すること
- 仮想ネットへのゲートウェイとしてVPNサーバを指定する(静的ルーティングテーブルに書き込む)こと
- 仮想ネットの向こう側にVPN越しに繋ぎたいサブネットがある場合はそれも同様に静的ルーティングテーブルに書き込むこと
が必要である
設定ファイル
最後にサンプルの設定ファイルを載せておく
サーバ側設定ファイル
# # server.conf # mode server port 1194 dev tun proto tcp-server server 10.8.0.0 255.255.255.0 # cd "c:\\Program Files\\OpenVPN" cd /etc/openvpn ca ca.crt cert server.crt key server.key dh dh1024.pem writepid openvpn.pid ifconfig-pool-persist ipp.txt status openvpn-status.log client-to-client client-config-dir ccd push "route 172.16.131.0 255.255.255.0" push "route 172.16.133.0 255.255.255.0" route 172.16.131.0 255.255.255.0 route 172.16.133.0 255.255.255.0 tls-server comp-lzo cipher AES-128-CBC keepalive 10 120 inactive 600 # comment out us if it is windows user nobody group nobody # persist-key persist-tun verb 4 mute 10
クライアント側設定ファイル
# # client.conf # port 1194 dev tun proto tcp-client remote ip.of.2f.gw tls-client client # cd "c:\\Program Files\\OpenVPN" cd /etc/openvpn # ca ca.crt cert client1.crt key client1.key comp-lzo cipher AES-128-CBC keepalive 10 120 inactive 600 float persist-key persist-tun # comment out us if it is windows user nobody group nobody # verb 4 mute 10