OpenVPN導入1@Ubuntu 9.10
出先や実家から自宅のネットワークにアクセスするためにVPNを導入しています
PPTPは論外として,自宅鯖移行のついでにiPhone/iPod TouchがサポートしているL2TP over IPsecも考えたのですが,プロトコルの仕様が少し曖昧なせいかプラットフォームによっては安定しないそうなので(実際安定しなかった),OpenVPNにしました
以下,作業ログです
インストール
% sudo aptitude install openvpn
サーバとクライアントの確認に証明書を使いますが,貧乏なのでオレオレ証明書です
OpenVPNには認証局や証明書を作成するためのeasy-rsaという便利なスクリプトがついています
% cd /usr/share/doc/openvpn/examples/easy-rsa/2.0
まず,オレオレ認証局 (CA) を作ります
sourceコマンドを使用する箇所があるので,rootでシェルを起動しましょう
% sudo -s
varsを適宜書き換えます
KEY_SIZEは2048bit以上にすることを強くオススメします
オレオレなので他は何でもOKです
# vi vars export KEY_SIZE=2048 export KEY_COUNTRY="国" export KEY_PROVINCE="州" export KEY_CITY="都市" export KEY_ORG="組織" export KEY_EMAIL="メアド"
作業に必要な環境変数を設定して,スクリプトを実行します
# . ./vars # ./clean-all # ./build-ca
いくつか質問されるので答えましょう
基本Enter連打でOKです
続いて,サーバの秘密鍵と証明書を作ります
# ./build-key-server サーバ名
いくつか質問されるので答えましょう
基本Enter連打でOKですが,チャレンジパスワードを聞かれます
さらに,クライアントの秘密鍵と証明書を作ります
一般的には,クライアントが自分で鍵と証明書要求CSRを作って,認証局が署名して返します
具体的には,クライアントがbuild-reqやbuild-req-passスクリプト(パスフレーズで保護された証明書を作成)で生成したCSRに,CAがsign-reqスクリプトで署名します
今回は自分以外に使用者がいないので,認証局上で直接クライアントの鍵を作ってしまいます
# ./build-key クライアント名
いくつか質問されるので答えましょう
基本Enter連打でOKですが,チャレンジパスワードを聞かれます
最後に,DiffieHellmanパラメータを生成します
# ./build-dh
秘密鍵とDHパラメータは管理者以外が読めないようにしておきましょう
# chmod 600 keys/*.key # chmod 600 keys/dh2048.pem
直接生成したファイルを参照しても構いませんが,「/etc/openvpn」以下に必要なファイルを置きましょう
自分はkeysというディレクトリを作成して,その中にまとめてあります
# mkdir /etc/openvpn/keys # cp keys/CA証明書 /etc/openvpn/keys/ # cp keys/サーバ証明書 /etc/openvpn/keys/ # cp keys/サーバ秘密鍵 /etc/openvpn/keys/ # cp keys/DHパラメータ /etc/openvpn/keys/
クライアントにCAの証明書と秘密鍵を渡します
秘密鍵の受け渡しは安全な方法で
TLS-AUTHの共通鍵も生成しておきます
念のためアクセス権が600になっているか確認しましょう
# openvpn --genkey --secret /etc/openvpn/keys/ta.key
次回につづく
コメントはまだありません »
RSS feed for comments on this post. TrackBack URL
