Ubuntu12.04に OpenVPNをその1

OpenVPNの構築を以前何故か失敗したので、今回時間もあるのでキッチリがっつりやろうと思います。
ではスタート。

●必要なパッケージのインストール

# sudo aptitude update
# sudo aptitude install openvpn libssl-dev openssl

●/etc/sysctl.confを編集し、IPv4 のパケット転送を許可

# vim /etc/sysctl.conf
net.ipv4.ip_forward=1 #を外す
# sysctl -p で反映

●iptablesの設定

openvpnをインストールしたサーバーをopenvpnクライアントのデフォルトゲートウェイとした場合、VPN接続したクライアントが外部ネットワークと接続するには、openvpnサーバー側でパケットをインターネット側に転送して上げる必要あり。必要の無い場合はこちらはスルー。

# iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.0.0 -o eth0 -j MASQUERADE
openvpnで使用するネットワークのレンジに合わせる。
# /sbin/iptables-save -c > /etc/iptables.rules
現在のiptablesの状態を設定ファイルに保存する。

サーバ起動時に設定ファイルを読み込んでiptablesに適用するには、iptables-restoreが自動的に実行される様に「/etc/network/if-pre-up.d/」ディレクトリの下にスクリプト「iptables_start」を用意すると良いかも。

「/etc/network/if-pre-up.d/iptables_start」

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.rules
exit 0

作成したスクリプト「/etc/network/if-pre-up.d/iptables_start」に実行権限の追加。

# chmod +x /etc/network/if-pre-up.d/iptables_start

●OpenVPN サーバ証明書の作成 CA証明書と秘密鍵の作成

サンプルファイルがあるのでそれをコピー。
mkdir /etc/openvpn/easy-rsa/
cp -p /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
cd /etc/openvpn/easy-rsa/

# vim vars
環境にあわせて変更..自分はKEY_CN以下をコメントアウト
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.domain"
export KEY_EMAIL=mail@host.domain
#export KEY_CN=changeme
#export KEY_NAME=changeme
#export KEY_OU=changeme
#export PKCS11_MODULE_PATH=changeme
#export PKCS11_PIN=1234

# source ./vars
# ./clean-all
# ./build-dh
# ./build-ca
# ./pkitool –server server
●TLSキーの作成
# cd keys
# openvpn --genkey --secret ta.key

作った証明書とキーをopenvpnにて使用ディレクトリへコピー

cp -p server.crt server.key ca.crt dh1024.pem ta.key /etc/openvpn/

長いので次へ