OpenVPNの設定(その1:認証用ファイルの生成)

PPTPサーバーの立て方でも残しとこうと思ったのだが、2012年の中頃にPPTPが破られた(と言うよりMS-CHAPv2認証プロトコルの臨終に引きずられた)というニュースが入ってきた。
本来ならここでIPsecへ乗り換え~と言うのが一般的と思うが、NATとの相性があったり面倒くさそうということで、OpenVPNを使ってみようということになった(なんじゃそりゃ・・・)。

まずは環境。OSはCentOS6.3でOpenVPNのバージョンは2.3を使用することにする。
(OSはminimumに追加して、ベース、開発ツールを入れただけ)

どうやら以下のリポジトリは無くなったようです。
EPELリポジトリからインストールできます。(2014/9更新)
yumでサクッと入れたいのでOpenVPN用のリポジトリを追加。

[root@centos63 ~]# cd /etc/yum.repos.d
[root@centos63 yum.repos.d]# wget http://repos.openvpn.net/repos/yum/conf/repos.openvpn.net-CentOS6-snapshots.repo
[root@centos63 yum.repos.d]# cd

OpenVPNのインストールに必要なパッケージをインストール(rpmforgeから)。

[root@centos63 ~]# yum --enablerepo=rpmforge install pkcs11-helper lzo

OpenVPNをインストール
[root@centos63 ~]# yum --enablerepo=epel install openvpn

OpenVPN 2.3からeasy-rsaが同梱されていないので別途ダウンロード。

[root@centos63 ~]# wget http://build.openvpn.net/downloads/releases/easy-rsa-2.2.0_master.tar.gz
[root@centos63 ~]# tar zxvf ./easy-rsa-2.2.0_master.tar.gz

解凍したeasy-rsaの証明書/鍵作成用ディレクトリをopenvpnのディレクトリ配下へコピー
[root@centos63 ~]# cp -r ./easy-rsa-2.2.0_master/easy-rsa/2.0/ /etc/openvpn/easy-rsa

各処理スクリプトに実行権を付与。
[root@centos63 ~]# cd /etc/openvpn/easy-rsa/
[root@centos63 easy-rsa]# chmod +x *

ここからCA証明書を作成。

証明書/鍵作成用環境変数設定ファイル編集
[root@centos63 easy-rsa]# vi vars

RSAキー強度を変更。値を大きくすると以下の影響がある。
各種鍵作成時間の増加。
1時間に1回のSSL/TLSの再ネゴシエーションの時間の増加。
#export KEY_SIZE=1024
export KEY_SIZE=2048

所在地情報の編集
#export KEY_COUNTRY=”US”
#export KEY_PROVINCE=”CA”
#export KEY_CITY=”SanFrancisco”
#export KEY_ORG=”Fort-Funston”
#export KEY_EMAIL=”me@myhost.mydomain”

export KEY_COUNTRY=”JP”
export KEY_PROVINCE=”TOKYO”
export KEY_CITY=”Shinagawa”
export KEY_ORG=”centos63.local”
export KEY_EMAIL=”root@centos63.local”

編集した環境変数をシステムに反映
[root@centos63 easy-rsa]# source vars

証明書/鍵作成先ディレクトリ初期化※OpenVPNインストール後最初の1回のみ
[root@centos63 easy-rsa]# ./clean-all

CA証明書・秘密鍵作成(いろいろ出てくるけど全てEnterで抜ける)
[root@centos63 easy-rsa]# ./build-ca

CA証明書をOpenVPN設定ファイル格納ディレクトリへコピー
[root@centos63 easy-rsa]# cp keys/ca.crt /etc/openvpn/

サーバー証明書作成

[root@centos63 easy-rsa]# ./build-key-server server

いろいろ出てくるけどとりあえずEnterで抜けていき、以下の2つにはy応答
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y

サーバー証明書と秘密鍵をOpenVPN設定ファイル格納ディレクトリへコピー
[root@centos63 easy-rsa]# cp -pr keys/server.crt keys/server.key /etc/openvpn/

DHパラメータ作成

[root@centos63 easy-rsa]# ./build-dh

DHパラメータをOpenVPN設定ファイル格納ディレクトリへコピー(ファイル名はCA証明書作成時に指定したキー強度になっている)
[root@centos63 easy-rsa]# cp keys/dh2048.pem /etc/openvpn/
[root@centos63 easy-rsa]# cd

TLS認証鍵をOpenVPN設定ファイル格納ディレクトリへ作成

[root@centos63 ~]# openvpn --genkey --secret /etc/openvpn/ta.key

証明書廃止リスト作成

[root@centos63 ~]# cd /etc/openvpn/easy-rsa/

ダミーのクライアント証明書作成
[root@centos63 easy-rsa]# ./build-key dust

いろいろ出てくるけどとりあえずEnterで抜けていき、以下の2つにはy応答
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y

pkcs11は使用していないので、設定ファイルのpkcs11セクションをコメントアウト
クライアント証明書廃止時のエラーメッセージ出力への対処
[root@centos63 easy-rsa]# vi openssl-1.0.0.cnf
#[ pkcs11_section ]
#engine_id = pkcs11
#dynamic_path = /usr/lib/engines/engine_pkcs11.so
#MODULE_PATH = $ENV::PKCS11_MODULE_PATH
#PIN = $ENV::PKCS11_PIN
#init = 0

ダミーのクライアント証明書廃止
[root@centos63 easy-rsa]# ./revoke-full dust

証明書廃止リストをOpenVPN設定ファイル格納ディレクトリへコピー
[root@centos63 easy-rsa]# cp keys/crl.pem /etc/openvpn/
[root@centos63 easy-rsa]# cd

クライアント証明書作成

[root@centos63 ~]# cd /etc/openvpn/easy-rsa/
[root@centos63 ~]# source vars
[root@centos63 easy-rsa]# ./build-key user1

いろいろ出てくるけどとりあえずEnterで抜けていき、以下の2つにはy応答
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
[root@centos63 easy-rsa]# cd

とりあえずルートにでもkey格納ディレクトリを作成
[root@centos63 ~]# mkdir keys

諸々をコピー(クライアントに必要なファイル)
[root@centos63 ~]# cp /etc/openvpn/ca.crt /root/keys/
[root@centos63 ~]# cp /etc/openvpn/easy-rsa/keys/user1.crt /root/keys/
[root@centos63 ~]# cp /etc/openvpn/easy-rsa/keys/user1.key /root/keys/
[root@centos63 ~]# cp /etc/openvpn/ta.key /root/keys/

最後に作成したフォルダ内のファイルをクライアントへ送る(安全な方法で)

これで一通り、証明書関係のファイルの作成が完了。

広告

OpenVPNの設定(その1:認証用ファイルの生成)」への1件のフィードバック

  1. ピンバック: Piskesoft » Blog Archive » OpenVPN ゲートウェイの構築

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中