2012-01-17

[OpenVPN TIPS] 鍵や証明書のデータを設定ファイルに埋め込むには

By Taro Yamazaki  |  23:00 No comments

現時点においてはマニュアルやHowToにも記載されていない(ChangeLogにちょっとだけ出てきます)あまり知られていない機能なのですが、「設定ファイルで鍵ファイルや証明書ファイルのパスを記載する」という通常の方法とは別に、「鍵ファイルや証明書ファイル内のデータをそのまま設定ファイルに埋め込んでしまう」という方法もあります。この機能はOpenVPN 2.1-beta7以降に組み込まれています。


たとえば、caディレクティブ(CA証明書の指定)の場合には、通常は次のように書きます。
ca "D:\\openvpn\\ca.crt"
これを次のように書くこともできます。
ca [INLINE]

<ca>
-----BEGIN CERTIFICATE-----
MIID0TCCAzqgAwIBAgIJAPqGBlghO9ltMA0GCSqGSIb3DQEBBQUAMIGiMQswCQYD
HYhsg2k288s7s6TTSgkSGGKSuaAGlajsbPOisulASuhsla382lLASI8sSSyqMBMG
...(snip)...
VQQDEwhjaGFuZ2VtZTERMA8GAREwDwYDVQQLEwhjaGFuZ2VtZTERMA8GA1UEAxMI
YkkWu76TYGhSGhOg7ATRSGMVwlHO
-----END CERTIFICATE-----
</ca>
このように、各ディレクティブでパスを指定する部分に [INLINE] というキーワードをセットしておき、設定ファイル内の別の部分でXMLのような書き方で鍵や証明書のデータ(ファイルの内容)をそのまま記述します。
この方法が使用できるディレクティブはcakeycerttls-authです(サーバーの場合はさらにdhもこの方法で指定できます)。

これで鍵や証明書の各ファイルがどこにあるのかを気にせずに使えますね。

ただ、この方法にはご注意いただきたい点も。認証の際に重要な鍵や証明書のファイルはきちんと管理すべきもので、安全性の観点からすればバラバラに保管しておくべきものです。VPNには鍵や証明書などのすべてのファイルが揃わなければ接続できないので、ファイルを分散させておくことにより、いずれかのファイルが盗まれても接続される可能性を低く抑えられるためです。しかし、今回ご紹介した方法で鍵や証明書のデータを設定ファイルに埋め込んでしまうと、この設定ファイル1つだけでVPNに接続できてしまうことになります。これはセキュリティの面からすればあまりお勧めできるものではありません。

ID/パスワード認証との併用や、パスワード付き秘密鍵の使用など、第三者による接続を防ぐための方策とセットでご活用ください。


Author: Taro Yamazaki

0 コメント:

© 2015 yamata::memo | Distributed By My Blogger Themes | Created By BloggerTheme9
TOP