OpenVPN&セキュリティ情報
2014-01-23
easy-rsa 3 で認証局を構築する
現在ダウンロードできるOpenVPNでは、今まで認証局の構築で使用していたeasy-rsaが含まれなくなっています。OpenVPN.netのダウンロードページにもNote that easy-rsa is no longer bundled with OpenVPN source code archives. To get it, visit the easy-rsa page on GitHub, or download it from our Linux software repositories.と記載されており、別途入手する必要があります。今回はインストール手順と使用法についてご説明します。
以前のバージョンとの違い
以前のeasy-rsa(バージョン2)と大きく異なるのは以下の点です。- 実行コマンドは easyrsa のみとなり、続く引数で実行する処理を切り替えるようになりました。
- コマンド実行前に vars を呼び出す必要はなくなりました。easyrsaと同じディレクトリにvarsというファイルを配置し、その中で設定値を指定しておけば、自動的に読み込まれます(ただ、後述する「X509 DNモード」の新設により、以前とは異なりvarsファイルは作成しなくてもよいケースが多くなりました)。
- 秘密鍵や証明書を作成する際に含める情報を制御するための「X509 DNモード」と呼ばれるパラメータが追加されました。デフォルトは「cn_only」となっており、秘密鍵や証明書の作成にはCN(共通名)の情報だけが必要になりました(組織名や都道府県名などを設定する必要がなくなりました)。今まで同様にすべてのデータを含められるようにするには、このモードを「org」に変更します。
easy-rsaのダウンロード
easy-rsaの最新版はGitHubから入手できます。使用する環境に合わせたパッケージをダウンロードしてください。今回の例ではLinux環境への導入手順を説明します。ダウンロードしたファイルを展開しておきましょう。
[root@localhost ~]# tar xzf EasyRSA-3.0.0-rc1.tgz [root@localhost ~]# cd EasyRSA-3.0.0-rc1 [root@localhost EasyRSA-3.0.0-rc1]# ls COPYING ChangeLog Licensing README.quickstart.md doc easyrsa openssl-1.0.cnf vars.example x509-types
初期化
init-pkiコマンドで認証局を初期化します。[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa init-pki init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /root/EasyRSA-3.0.0-rc1/pkiこれは認証局設置時にのみ実行します。
このコマンドを実行すると、easyrsaと同じディレクトリにpkiディレクトリが生成されます。認証局によって生成されるデータはここに保存されます。
認証局の作成
build-caコマンドで認証局を作成します。[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa build-ca Generating a 2048 bit RSA private key .....................................................................+++ .....+++ writing new private key to '/root/EasyRSA-3.0.0-rc1/pki/private/ca.key' Enter PEM pass phrase: [パスフレーズを入力] Verifying - Enter PEM pass phrase: [パスフレーズを入力] ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [Easy-RSA CA]: CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /root/EasyRSA-3.0.0-rc1/pki/ca.crtデフォルトのX509 DNモードが「cn_only」のため、共通名(Common Name)のみが問い合わせられます。デフォルト値でよければそのまま[Enter]キーを押していただいてもかまいません。
DHパラメータの生成
gen-dhコマンドでDHパラメータを生成します。[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa gen-dh Generating DH parameters, 2048 bit long safe prime, generator 2 This is going to take a long time ............................................................... ......................................................+........ .........................................................+..... ............................................................... ............................................................... ............................................................... ....................................................+.......... ..........................................+.................... ..............+........+....................................... ............................................................... ............................................................... ............................................................... ..............................................++*++* DH parameters of size 2048 created at /root/EasyRSA-3.0.0-rc1/pki/dh.pem
サーバー用秘密鍵/証明書の作成
以前のバージョンのbuild-key-serverコマンドと同様に、秘密鍵の作成から証明書の署名までまとめて行うには、build-server-fullコマンドを使用します。デフォルトの動作では、パスフレーズの入力が求められ、そのパスフレーズによって秘密鍵が暗号化されます。パスフレーズを不要にしたい場合はnopassオプションを追加します。
[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa build-server-full server1 nopass Generating a 2048 bit RSA private key .....................................+++ .............+++ writing new private key to '/root/EasyRSA-3.0.0-rc1/pki/private/server1.key' ----- Using configuration from /root/EasyRSA-3.0.0-rc1/openssl-1.0.cnf Enter pass phrase for /root/EasyRSA-3.0.0-rc1/pki/private/ca.key: [CAの署名用パスフレーズを入力] Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :PRINTABLE:'server1' Certificate is to be certified until Jan 21 05:57:57 2024 GMT (3650 days) Write out database with 1 new entries Data Base Updated
クライアント用秘密鍵/証明書の作成
以前のバージョンのbuild-keyコマンドと同様に、秘密鍵の作成から証明書の署名までまとめて行うには、build-client-fullコマンドを使用します。サーバーの場合と同様、デフォルトの動作では、パスフレーズの入力が求められ、そのパスフレーズによって秘密鍵が暗号化されます。パスフレーズを不要にしたい場合はnopassオプションを追加します。
[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa build-client-full client1 nopass Generating a 2048 bit RSA private key ...............................+++ ............................................................... ............................................................... ..+++ writing new private key to '/root/EasyRSA-3.0.0-rc1/pki/private/client1.key' ----- Using configuration from /root/EasyRSA-3.0.0-rc1/openssl-1.0.cnf Enter pass phrase for /root/EasyRSA-3.0.0-rc1/pki/private/ca.key: [CAの署名用パスフレーズを入力] Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :PRINTABLE:'client1' Certificate is to be certified until Jan 21 06:04:42 2024 GMT (3650 days) Write out database with 1 new entries Data Base Updated各コマンドによって生成されたファイルは、pkiディレクトリ内の各サブディレクトリに格納されています。
- private : 秘密鍵
- reqs : 証明書要求
- issued : 証明書
この他に使用できるコマンドやオプションについては、Readmeファイルやヘルプを参照してください。
[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsaまたは
[root@localhost EasyRSA-3.0.0-rc1]# ./easyrsa help [コマンド名]でヘルプが参照できます。
秘密鍵/証明書作成時に共通名のみでOKになったので、今までより少し簡単になりましたね。
Image courtesy of Sharron Goodyear / FreeDigitalPhotos.net
登録:
コメントの投稿
(
Atom
)
Profile
- 山崎 太郎 (Taro Yamazaki)
- プラムシステムズ株式会社所属。 主にVPN(OpenVPN)やセキュリティ関連技術、Webアプリケーションを手がけています。
Page Views
Popular Posts
-
「VPNっていろいろあるけど、OpenVPNのメリットって何?」 という疑問は多くの方が持たれますよね。この点は公式サイトなどにもいろいろ書かれているのですが、実際に使ってきたユーザー側としてメリットと思う部分をまとめてみました。
-
現在ダウンロードできるOpenVPNでは、今まで認証局の構築で使用していたeasy-rsaが含まれなくなっています。 OpenVPN.netのダウンロードページ にも Note that easy-rsa is no longer bundled with OpenVPN...
-
Jan Just Keijser氏の記事「 Optimizing performance on gigabit networks 」については こちら でも概要を取り上げましたが、記事全体にいろいろなヒントが含まれていますので、全文の日本語訳を掲載しています。意訳している部分も...
-
OpenVPNでは、接続してきたクライアントのVPNアドレスは動的に割り振られます(その際に割り振られる際のアドレス範囲はOpenVPNサーバー側設定ファイルに基づきます)。特定のVPNクライアントに特定のVPNアドレスを割り振りたい場合、OpenVPNでは以下の2つの方法で設定...
-
では、いよいよiPhone構成ユーティリティでVoDの設定をしてみましょう。あ、 前の記事 での準備はきちんとやっておいてくださいね!
-
前回 は2つのワンタイムパスワードの生成方法について取り上げました。今回はいよいよ実際の生成アルゴリズムを取り上げましょう。TOTPをベースに説明します(ただ、前回も解説したように、基本的なロジックはTOTPとHOTPで同じです)。 参考としてpythonのコードも併記してみま...
-
現時点においてはマニュアルやHowToにも記載されていない(ChangeLogにちょっとだけ出てきます)あまり知られていない機能なのですが、「設定ファイルで鍵ファイルや証明書ファイルのパスを記載する」という通常の方法とは別に、「鍵ファイルや証明書ファイル内のデータをそのまま設定フ...
-
OpenVPNはLinuxをはじめとした幅広いプラットフォームで動作実績があるのが特徴の一つです。 今回は、最近の電子工作ブームでも話題のシングルボードPC 3機種をOpenVPNサーバーとしてセットアップし、OpenVPNのVPNパフォーマンスを測定してみましょう。 ...
-
前回 はワンタイムパスワードの基本的な仕組みについて説明しました。サーバー側とクライアント側で、それぞれ共通のルールに基づいてパスワードを生成させる必要があることを取り上げましたが、今回は OATH が規定しているその生成ルールについて具体的に説明します。 ワンタ...
-
OpenVPNを使用している方ならよくご存知だと思いますが、通常OpenVPNでは証明書認証を使用します。証明書認証はID/パスワード認証に比較すると安全性が高いとされます(もちろん、秘密鍵の管理方法に大きく依存します)が、証明書認証の概念を理解しにくいユーザーが秘密鍵や証明...
© yamata::memo 2013 . Powered by Bootstrap , WebLyb
0 件のコメント :
コメントを投稿