OpenVPN/チェックリストガイド
この記事では、OpenVPN に必要なインストール手順をまとめています。チュートリアルについては、OpenVPN を参照してください。
インストール
openvpn と easy-rsa パッケージをインストールします。
データの準備
/etc/easy-rsa
を/etc/openvpn/easy-rsa
にコピーし、そこに移動します(cd)- ご希望の情報を入力して
vars
ファイルを編集します。詳細は easy-rsa スクリプトを使用して公開キー基盤を作成する を参照してください。 - 以前のキーをクリーンアップします:
# easyrsa clean-all
証明書の生成
- CA 作成のためのシードを作成します
# dd if=/dev/urandom of=pki/.rnd bs=256 count=1
- 「証明機関 (certificate authority)」のキーを作成します
# easyrsa build-ca nopass
- サーバー用の証明書と秘密キーを作成します
# easyrsa build-server-full <server-name> nopass
- サーバー用の Diffie-Hellman pem ファイルを作成します。
# easyrsa gen-dh
- 各クライアント用の証明書を作成します。
# easyrsa build-client-full <client-name> nopass
すべての証明書は pki
ディレクトリに格納されます。間違えた場合は、easyrsa clean-all
を実行して最初からやり直すことができます。
各クライアントには ca.crt
とそのクライアント固有の crt と key ファイルをコピーします。
Setting up the server
- Create
/etc/openvpn/server/myvpnserver.conf
with a content like this:
/etc/openvpn/server/myvpnserver.conf
port <port> proto tcp dev tun0 ca /etc/openvpn/easy-rsa/pki/ca.crt cert /etc/openvpn/easy-rsa/pki/issued/<server-name>.crt key /etc/openvpn/easy-rsa/pki/private/<server-name>.key dh /etc/openvpn/easy-rsa/pki/<your pem file> server <desired base ip> 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 comp-lzo user nobody group nobody persist-key persist-tun status /var/log/openvpn-status.log verb 3 log-append /var/log/openvpn status /tmp/vpn.status 10
- Start and, optionally, enable for autostart on boot, the daemon. (In this example, is
openvpn-server@myvpnserver.service
)
Read Daemon for more information.
Setting up the clients
- Create a .conf file for each client like this:
/etc/openvpn/client/a-client-conf-file.conf
client remote <server> <port> dev tun0 proto tcp resolv-retry infinite nobind persist-key persist-tun verb 2 ca ca.crt cert <client crt file with full path> key <client key file with full path> comp-lzo
- Start the connection with
# openvpn a-client-conf-file.conf &
Optionally, enable for autostart on boot the daemon. (In this example, is openvpn-client@a-client-conf-file.service
)
Read Daemon for more information.