注意事項

証明書

最初に証明書を作ったca.keyは機密にし、かつ、ちゃんと保存されていなければならない
クライアントの証明書は、同じ鍵で認証されている必要があり、サーバとクライアントは同じ証明局の署名(ca.crt)を共有している必要がある
よって、ca.keyがコピーされてしまうと、誰でもVPNに入れるようになってしまうし、ca.keyをなくしてしまうと新しい証明書を作れなくなってしまう

ブリッジング

dev tap
での利用はブリッジングが前提だが、macosxでは現時点でブリッジングがサポートされていない模様

dev tun
での利用の方が、ルーティングの設定などが楽である
いずれにせよ、サーバ側とクライアント側で同一にすること

ルータの設定

(比較的見落としやすいので注意)

  1. 外からOpenVPNポートへの接続をサーバのポートへ転送すること
  2. 仮想ネットへのゲートウェイとしてVPNサーバを指定する(静的ルーティングテーブルに書き込む)こと
  3. 仮想ネットの向こう側に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