Hatena::ブログ(Diary)

わすれないうちにメモしよう

2012-12-03

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 1280 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 1280 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


・起動
# 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

・設定による速度の比較
tcp (tcp-nodelay 有) ≒ udp > tcptcp-nodelay 無)
tun と tap による速度の違いはほとんど無し。
client間の通信は環境によっては速度が極度に落ちるため、
ルーティングするか物理セグメントとブリッジする方が無難。

トラックバック - http://d.hatena.ne.jp/kt_hiro/20121203/1354517981
リンク元