2006/05/18

openVPN まとめ

OpenVPN
http://openvpn.net/
日本語での説明
http://degas.is.utsunomiya-u.ac.jp/member/zhao/freesw/ovpn2_howto_ja.html

手順 上記の説明の通りにやっていけば大丈夫ですが、とりあえずメモだけ。

------------------------------------------------
基礎知識:公開暗号鍵方式とは?

公開鍵→暗号化するための鍵(金庫)
秘密鍵→復号化するための鍵(鍵)

ヒミツな通信方法
Aが暗号化していない通信で公開鍵αをBに渡す
(Aが大量の金庫αをBさんに渡す。「この中に文章入れて返してね」)

Bが暗号化していない通信で(?)公開鍵βをAに渡す
(Bが大量の金庫βをAさんに渡す。「この中に文章入れて返してね」)

これでこの後の通信はお互いに相手だけが復号化の鍵を持っている暗号を使って通信できる
(AはBだけが鍵を持っている金庫βに物を入れて送る。閉めた金庫を開けられるのは互いに相手のみ)

と言う方法らしい。

PKI(公開鍵基盤)はさらに、
この金庫は C 社製で、C社が鍵を管理しているから安心ですよ、というのを確認する手順が入る
-------------------------------------
んで、openVPNではまずPKIを構築することから始めます。

変数とかの設定初期化
init-config

vars.batを編集する。設定する必要があるのは「Common Name」ぐらい?
変数を設定する
vars
以前の設定の消去
clean-all
マスタCA証明書と鍵を生成
build-ca
以後の証明書は全てこのマスタCA証明書で署名する


サーバ証明書と鍵を生成する
build-key-server hogeserver

クライアントの証明書と鍵を生成する
build-key hogeclient

DH (Diffie Hellman) パラメータを生成する
build-dh
安全でない通信経路を使って秘密鍵を安全に送受信するための鍵交換方式のパラメータを生成
-------------------------------------
とりあえず、以上で暗号化の基盤は整いました。
後はopenVPNの設定をするだけですが、これは自分のネットワークに合わせてやるのがよいです。

以下、参考までに僕の設定です。
------------------------------------------
server
------------------------------------------
local ?.?.?.?
port ????
proto udp

dev tun
server ?.?.?.? ?.?.?.?
ifconfig-pool-persist ipp.txt

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

keepalive 10 120

tls-auth ta.key 0
cipher BF-CBC

comp-lzo
persist-key
persist-tun
status openvpn-status.log

verb 3
------------------------------------------

------------------------------------------
client
------------------------------------------
client
proto udp
remote ?.?.?.? ?
nobind

dev tun

resolv-retry infinite

persist-key
persist-tun

ca ca.crt
cert p4c800ed.crt
key p4c800ed.key

tls-auth ta.key 1
cipher BF-CBC # Blowfish (default)

comp-lzo
verb 3
------------------------------------------

0 件のコメント:

コメントを投稿