さくらVPSにVPNゲートウェイ(OpenVPN)を作った その1

on
1 minute read

4月から引っ越す予定の新居ではグローバルIPアドレスがもらえず、鯖のコンテンツを公開することができなさそうです。 なので事前にVPSを借りてその上にVPNゲートウェイを構築し、そこから鯖にアクセスを回すことにしました。 今回はその忘備録ということでやったことをまとめておきます。 長いので幾つかに分割してまとめます。今回は鍵と証明書の生成まで。

環境など

  • VPS
    • さくらVPS 石狩リージョン 一番安いやつ
  • VPN
    • OpenVPN
  • VPS側OS
    • Ubuntu Server 14.04
  • クライアントOS
    • Windows 10 , OSX 10.11
      今回はWindows 10を使ってVPSに接続し設定を行います

参考にさせて頂いたサイト

さくらVPS(UBUNTU)にOPENVPNをインストール
http://www.eva-shin.com/openvpn_server/
Ubuntu Server 14.04をVPNサーバーにしてみた。
http://qiita.com/mcddx330/items/5814f5c9175fbd517be6
OpenVPN
https://help.ubuntu.com/14.04/serverguide/openvpn.html

手順

0.下準備
まずはUbuntu ServerをVPSにインストールしてSSH接続できるようにしときますがこの辺は書くとめんどくさいので割愛します。 TeraTermと公開鍵でVPSにSSHできるようにしといてください。 あとSSHのポート番号もデフォルトの22から別の番号に変えておくのもオススメします。

1.必要なパッケージのインストール 〜 各種鍵・証明書の生成
aptで必要なパッケージを入れます

sudo apt-get install openvpn easy-rsa


ここから先は各種鍵と証明書を作りますが、なぜこんなに鍵やら証明書を作らなきゃいけないかはこちらを参考にするとなんとなく分かると思います。
参考:SSL 認証 の仕組みと OpenVPN の認証の仕組み

認証局とその証明書を作ります。
パスワードを求められたらパスワード入力してエンターを押す

sudo su
mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/


証明書を作る時の変数の値を設定しておきます。好みの値で問題ないと思われます。

nano /etc/openvpn/easy-rsa/vars
export KEY_COUNTRY="JP"
export KEY_PROVINCE="XXXX"
export KEY_CITY="XXXXXXX"
export KEY_ORG="xxxxxxxx.com"
export KEY_EMAIL="xxxxxxxxxx@example.com"


認証局の証明書と鍵を作ります

cd /etc/openvpn/easy-rsa
source vars
./clean-all
./build-ca


サーバーの証明書と鍵も作ります

./build-key-server サーバーの名前


事前に変数の値を設定してあるのでエンター連打で構いませんが、
“Sign the certificate? [y/n]” “1 out of 1 certificate requests certified, commit? [y/n]”.
などと聞かれたときはyを入力します

続いて共有鍵を作ります

./build-dh


サーバーの証明書とか鍵を/etc/openvpn/にコピーしときます

cd keys
cp [サーバーの名前].crt [サーバーの名前].key ca.crt dh2048.pem /etc/openvpn/


クライアント用の証明書と鍵を作ります
あとからまた作ろうとするとすると面倒なので、N = 1,2,3...という具合で必要な分だけ事前に作っておきます。

cd /etc/openvpn/easy-rsa
source vars
./build-key clientN


最後にTLS認証用の鍵を作り、/etc/openvpn/にコピーします。

openvpn --genkey --secret ta.key
cp ta.key /etc/openvpn


とりあえず必要な鍵が一通りできたので今回はここまでということで
次回:サーバーのコンフィグの編集〜クライアントの接続(予定)