OpenVPN@Ubuntu10.04

Ubuntu10.04時に入れてたのをメモ

インスト

$ sudo apt-get install openvpn

認証局(CA)作成

$ cd /usr/share/doc/openvpn/examples/easy-rsa/2.0
$ vi vars

export KEY_COUNTRY="JP"
export KEY_PROVINCE="<県>"
export KEY_CITY="<市>"
export KEY_ORG="<組織名>"
export KEY_EMAIL="<メアド>"

$ sudo su - (以降rootで作業する
# . ./vars (何か怒られる場合はshで作業すること
# ./clean-all
# ./build-ca (CommonNameにはIPアドレス

サーバ証明書と鍵作成

# ./build-key-server server

クライアント証明書と鍵作成

# ./build-key client1 (client2やらclient3もクライアント数分作っとく

DiffieHellmanとやらを作成(鍵交換を安全にするもの

# ./build-dh

OpenVPNサーバの設定

# cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/
# cp ca.crt dh1024.pem server.crt server.key /etc/openvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
# cd /etc/openvpn
# gunzip server.conf.gz
# vi /etc/openvpn/server.conf (クライアント同士繋げるならclient-to-clientのコメント解除

OpenVPNサーバの起動

$ sudo /etc/init.d/openvpn start

フォワードの設定

$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward

iptables
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT

OpenVPNクライアント側

  • OpenVPN GUIをインスト
  • configフォルダにca.crt, server.crt, client1.crt, client1.key, client.ovpn(sample-configからコピー
  • client.ovpnを編集して接続

Win7とかだと管理者としてアプリを実行しないと使えないかも

クライアント側からVPNサーバにpingが届かない場合

おそらくクライアント側にルーティング情報が登録されてないので,
VPNサーバ側で
$ sudo vi /etc/openvpn/server.conf

...
push "route 10.8.0.0 255.255.255.0"
...

的なことを追加してVPNサーバ再起動

これでルーティング情報がクライアント側にpushされる