====== Vyatta OpenVPN Server/Client ======
===== 環境 =====
|Global側|eth0|10.10.100.1|
|Local側|eth1|192.168.1.1|
|仮想LAN|vtun0|172.16.100.1|
+----------+ +----------+
| | | |
| |eth1 eth0| |eth1
+ Client +------------- INTERNET ------------+ vyatta-A +-----
| | | |
| | | |
+----+-----+ +----+-----+
====== Vyatta OpenVPN Server ======
===== CA証明書・秘密鍵作成 =====
# sudo su -
# cd /usr/share/doc/openvpn/examples/easy-rsa/
# cp -r 2.0 /etc/openvpn/easy-rsa/
# cd /etc/openvpn/easy-rsa/
# vi vars
---- 以下修正 ----
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
# source vars
# ./clean-all
# ./build-ca
全部空エンターで
CA証明書をコピーしておく
# cp keys/ca.crt /config/auth/
===== サーバー証明書・秘密鍵作成 =====
# ./build-key-server server
全部空エンターで
・
・
・
Sign the certificate? [y/n]:y ← y応答
1 out of 1 certificate requests certified, commit? [y/n]y ← y応答
Write out database with 1 new entries
Data Base Updated
サーバー証明書・秘密鍵作成をコピーしておく
# cp keys/server.crt /config/auth/
# cp keys/server.key /config/auth/
===== DH(Diffie Hellman)パラメータ作成 =====
# ./build-dh
# cp keys/dh1024.pem /config/auth/
===== TLS認証鍵を作成 =====
# openvpn --genkey --secret /config/auth/ta.key
===== コマンド =====
# set interfaces openvpn vtun0 encryption 'aes128'
# set interfaces openvpn vtun0 mode 'server'
# set interfaces openvpn vtun0 openvpn-option '--tls-auth /etc/openvpn/ta.key 0'
# set interfaces openvpn vtun0 protocol 'udp'
# set interfaces openvpn vtun0 server name-server '8.8.8.8'
# set interfaces openvpn vtun0 server push-route '192.168.1.0/24'
# set interfaces openvpn vtun0 server subnet '172.16.100.0/24'
# set interfaces openvpn vtun0 server topology 'subnet'
# set interfaces openvpn vtun0 tls ca-cert-file '/config/auth/ca.crt'
# set interfaces openvpn vtun0 tls cert-file '/config/auth/server.crt'
# set interfaces openvpn vtun0 tls dh-file '/config/auth/dh1024.pem'
# set interfaces openvpn vtun0 tls key-file '/config/auth/server.key'
「--tls-auth /etc/openvpn/ta.key 0」オプションの最後の"0"は、サーバ側であることを示す。
===== クライアント証明書・秘密鍵作成 =====
クライアントの証明書と鍵を作成しておく\\
※クライアント証明書は、クライアント毎に作成する必要があります。
# cd /etc/openvpn/easy-rsa/
# source vars
# ./build-key-pass client1
private keyのパスワード以外、全エンターで
private keyのパスワードをなしにする。
# cd /etc/openvpn/easy-rsa/keys/
# openssl rsa -in client1.key -out client1.key
====== Vyatta OpenVPN Client ======
サーバー側から下記の4つをコピーしてくる。\\
「/config/auth/」以下に保存する。
CA証明書(/config/auth/ca.crt)
クライアント証明書(/etc/openvpn/easy-rsa/keys/client1.crt)
クライアント秘密鍵(/etc/openvpn/easy-rsa/keys/client1.key)
TLS認証鍵(/config/auth//ta.key)
===== コマンド =====
# set interfaces openvpn vtun0 encryption 'aes128'
# set interfaces openvpn vtun0 mode 'client'
# set interfaces openvpn vtun0 openvpn-option '--tls-auth /config/auth/ta.key 1'
# set interfaces openvpn vtun0 protocol 'udp'
# set interfaces openvpn vtun0 remote-host '10.10.100.1'
# set interfaces openvpn vtun0 tls ca-cert-file '/config/auth/ca.crt'
# set interfaces openvpn vtun0 tls cert-file '/config/auth/client2.crt'
# set interfaces openvpn vtun0 tls key-file '/config/auth/client2.key'
「–tls-auth /etc/openvpn/ta.key 1」オプションの最後の”0”は、クライアント側であることを示す。
====== 接続の確認 ======
===== Server側 =====
サーバ側から、クライアント側の仮想IP 172.16.100.2 にPingが飛ぶ事を確認
$ sh openvpn server status
OpenVPN server status on vtun0 []
Client CN Remote IP Tunnel IP TX byte RX byte Connected Since
--------------- --------------- --------------- ------- ------- ------------------------
client1 10.10.100.2 172.16.100.2 13.0K 11.7K Mon Dec 17 23:27:26 2012
===== Client側 =====
クライアント側から、サーバ側の仮想IP 172.16.100.1 と Local側IP 192.168.1.1 にPingが飛ぶ事を確認
$ sh openvpn client status
OpenVPN client status on vtun0 []
Server CN Remote IP Tunnel IP TX byte RX byte Connected Since
--------------- --------------- --------------- ------- ------- ------------------------
N/A 10.10.100.1 N/A 14.3K 15.7K N/A