CentOS6 OpenVPN のインストール(tun L3接続)
・前準備
http://d.hatena.ne.jp/kt_hiro/20120821/1345555381
・インストール
# yum install openvpn
・OpenVPN 2.3からeasy-rsaが同梱されていないので git でダウンロード
# cd /usr/share/openvpn # git clone https://github.com/OpenVPN/easy-rsa/
・証明書と鍵の生成
# cd /usr/share/openvpn/easy-rsa/2.0 # vi vars (鍵を作る際のデフォルト値を設定する) # source vars # ./clean-all # ./build-ca # ./build-key-server server # ./build-key client1 (必要なだけ作る) # ./build-dh # cp -R keys /etc/openvpn/keys
・設定ファイルの作成(サーバ側)
# vi /etc/openvpn/server.conf dev tun ;dev tap ;proto tcp proto udp ;tcp-nodelay tun-mtu 1400 mssfix 1280 fragment 1280 comp-lzo server 192.168.100.0 255.255.255.0 port 5500 ;client-config-dir ccd ;ifconfig-pool-persist ipp.txt ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh2048.pem client-to-client keepalive 10 120 persist-key persist-tun log openvpn.log log-append openvpn.log verb 3
・設定ファイルの作成(クライアント側)
client dev tun ;dev tap ;proto tcp proto udp tun-mtu 1400 mssfix 1280 fragment 1280 comp-lzo remote 192.168.0.102 5500 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client3.crt key client3.key verb 3
・設定ファイルの作成(証明書を埋め込む場合)
ca ca.crt ← 削除 cert client3.crt ← 削除 key client3.key ← 削除 <ca> -----BEGIN CERTIFICATE----- ca.cart の内容を記載 -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- client3.crt の内容を記載 -----END CERTIFICATE----- </cert> <key> -----BEGIN PRIVATE KEY----- client3.key の内容を記載 -----END PRIVATE KEY----- </key>
・起動
# service openvpn start
・自動起動設定
# chkconfig openvpn on
・クライアントに固定IPをふる場合
tap の場合は「ifconfig-pool-persist ipp.txt」オプションを使うが、
tun の場合は「client-config-dir ccd」オプションを使い、下記のようなファイルを作る。
# vi ccd/client1 ifconfig-push 192.168.100.10 192.168.100.1 ※「クライアントIP」「サーバIP」の順番 ※client1 の部分には証明書のクライアント名を使う(この場合は client1.crt なので client1)
・VPNセグメントと物理セグメントをルーティングしたい場合
http://d.hatena.ne.jp/kt_hiro/20121203/1354517434
・設定による速度の比較
udp > tcp (tcp-nodelay 有) > tcp(tcp-nodelay 無)と一般的には言われているが、環境による。
client間の通信は環境によっては速度が極度に落ちるため、ルーティングするか物理セグメントとブリッジする方が無難。