OpenVPN 設定まとめ

Last-modified: 2009-12-16 (水) 00:16:02

以下のファイルを自分の環境にしたがって修正

/etc/openvpn/easy-rsa/2.0/vars

以下カレントディレクトリを/etc/openvpn/easy-rsa/2.0/とする
caファイル作成

source ./vars
./clean-all
./build-ca

サーバ証明書、サーバ鍵ペアの作成

source ./vars
./build-key-server anyname

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

source ./vars
./build-key-pass clientname #パスフレーズで保護する場合
./build-key clientname #パスフレーズで保護しない場合

DHファイル作成

./build-dh

VPNからのパケットをLANに流す

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

10.8.0.0/24あてのパケットをサーバに送信するようにしておく

以下設定ファイル

port 1194          ←サービスポートの指定
proto udp          ←使用プロトコルの指定
dev tun           ←ルーティング方式ではtunを選択
ca /etc/openvpn/ca.crt    ←CA証明書ファイルの指定
cert /etc/openvpn/server.crt ←サーバ証明書ファイルの指定
key /etc/openvpn/server.key ←サーバ秘密鍵ファイルの指定
dh /etc/openvpn/dh1024.pem  ←DHパラメータファイルの指定
server 10.8.0.0 255.255.255.0←VPNクライアントに割り振られるIPアドレス(10.8.0.1はサーバ自身のtanイ ンターフェイスに割り当てられる)
ifconfig-pool-persist ipp.txt←クライアントに割り振られたIPアドレスを管理するファイル
push "route 10.0.0.0 255.255.255.0" ←OpenVPNサーバ側のLANセグメントの経路情報をクライアントに伝達
client-to-client       ←OpenVPNクライアント同士の通信を許可
keepalive 10 120       ←サーバ・クライアント間の死活監視の設定
comp-lzo           ←LZO圧縮の利用
max-clients 10        ←最大同時接続クライアント数
user nobody         ←デーモンプロセスのユーザーを指定
group nobody         ←デーモンプロセスのグループを指定
persist-key         ←不意な切断が発生した後の再接続処理の設定
persist-tun         ←不意な切断が発生した後の再接続処理の設定
status /var/log/openvpn-status.log ←ステータスログの指定
log /var/log/openvpn.log   ←ログファイルの指定
verb 3            ←ログレベルの指定
daemon
port portnumber
proto udp
dev tun
ca ca.crt
cert serverkey.crt
key serverkey.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
#
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
verb 3

Vistaの場合以下の二行を追加

route-method exe
route-delay 2
client
dev tun
proto udp
remote hostname portnumber
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert clientkey.crt
key clientkey.key
comp-lzo
verb 3
pull
float