気の向くままに ~備忘録@wiki~
FreeBSD - OpenVPN
最終更新:
shirayuu
-
view
OpenVPN
OpenVPN は、フリーのVPN。
OpenVPN How To - 日本語
OpenVPN How To - 日本語
目次
OpenVPN のインストール
いつも通りの手順でmake
# cd /usr/ports/security/openvpn # make # make install
OpenVPN の認証設定
OpenVPN 認証の設定を行う。
OpenVPN は、 SSL を使って鍵認証を行っている。
OpenVPN は、 SSL を使って鍵認証を行っている。
前準備
まずは、そこら辺のサンプルを適当な場所に移す。(サンプルには手をつけない)
# mkdir -p /usr/local/path/openvpn/ # cp -vr /usr/local/share/doc/openvpn/easy-rsa/* /usr/local/path/openvpn/
彫り込むディレクトリは適当で良い。
認証局と秘密鍵の作成
実際に編集していく
# cd /usr/local/path/openvpn/
まずは、vars を 編集する。
vars の下の方にある
vars の下の方にある
export KEY_COUNTRY=JP # 国名 export KEY_PROVINCE=TOKYO # たとえば、都道府県 export KEY_CITY=TOKYO # たとえば、市町村 export KEY_ORG="foobar" # これはよくわからん export KEY_EMAIL="me@myhost.mydomain" # 連絡先
これらを適当なものに編集。
これらの設定が今後の認証局作成、鍵作成に使われる基本的な値となる。
# . ./vars # ./clean-all # ./build-ca ~ 途中略 ~ Country Name (2 letter code) [JP]: State or Province Name (full name) [TOKYO]: Locality Name (eg, city) [TOKYO]: Organization Name (eg, company) [foobar]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:OpenVPN Test Email Address [me@myhost.mydomain]:
注意するべき点は、Common Name にユニークな名前を入れる必要があること。
すると、keys (/usr/local/path/openvpn/keys) に認証鍵がいくつか作成される。
ちなみに、ファイル名と用途の関係はこんな感じ。(OpenVPN 2.0 に記述されている。)
すると、keys (/usr/local/path/openvpn/keys) に認証鍵がいくつか作成される。
ちなみに、ファイル名と用途の関係はこんな感じ。(OpenVPN 2.0 に記述されている。)
ファイル名 | 用途 |
ca.crt | 認証局 証明書 |
ca.key | 認証局 秘密鍵 |
index.txt | 証明書リスト |
serial | シリアル記録用ファイル |
この中で流出してはならないのは、ca.key。 秘密鍵なので厳重に保管しましょう。
サーバの認証局と鍵の作成
サーバ鍵を作成するには、
# ./build-key-server server Country Name (2 letter code) [JP]: State or Province Name (full name) [TOKYO]: Locality Name (eg, city) [TOKYO]: Organization Name (eg, company) [foobar]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []: server Email Address [me@myhost.mydomain]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
Sign the certificate? と '''1 out of 1 certificate requests certified, commit?''' で確認と署名するか聞いてくるのでy。
ここで注意すべき点も、Common Name はユニークな名前であること。
build-key-server の引数と同じで良いと思います。
build-key-server の引数と同じで良いと思います。
これで、サーバ関連の認証局と鍵ができあがる。
keys に、server.crt,server.csr,server.key などが作成されているか確認する。
keys に、server.crt,server.csr,server.key などが作成されているか確認する。
クライアント用の認証局と鍵の作成
クライアント用の認証と鍵作るときは、
# ./build-key client1 # ./build-key-server server Country Name (2 letter code) [JP]: State or Province Name (full name) [TOKYO]: Locality Name (eg, city) [TOKYO]: Organization Name (eg, company) [foobar]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []: client1 Email Address [me@myhost.mydomain]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
サーバ用の認証局を作ったときと同じ。
Common Name の名前は、ユニークなものでなければならない。
Common Name の名前は、ユニークなものでなければならない。
クライアント用の認証局と鍵は、クライアント分作る必要がある。
同じ鍵を渡してもよいが同時に利用できない。
同じ鍵を渡してもよいが同時に利用できない。
DH パラメータ
最後に DH パラメータを作る
# ./build-dh
結構時間かかります。まあ、適当に暇つぶしてください。
これで、認証局、鍵の作成は終了あとは、ブリッジとかの設定。
ブリッジとか仮想NICとかの作成
OpenVPN は、ブリッジモードかルーティングモードかを選択できる。
今回は、同じネットワーク内に入りたいのでブリッジモードにする。
今回は、同じネットワーク内に入りたいのでブリッジモードにする。
tap と bridge のロードと作成
tap と bridge のロード
OpenVPN のブリッジモードを使うためには、if_tap0 とif_bridge をロードする必要がある。
VPN に接続するためにtap を使い、tap を使うためにif_tap0 をロードする。
ブリッジするために、if_bridge を使う。 (bridge をロードしてもできるが、if_bridge の方が新しいらしい)
VPN に接続するためにtap を使い、tap を使うためにif_tap0 をロードする。
ブリッジするために、if_bridge を使う。 (bridge をロードしてもできるが、if_bridge の方が新しいらしい)
# kldload if_tap # kldload if_bridge
tap0 と bridge0 の作成
これまでの手順の流れで/dev/tap0 があればを行えばよいが、ないと思うので
# openvpn openvpn --dev tap0
で、<Control> + c で強制終了させ、tap0 を作る。
bridge0 は、
# sudo ifconfig bridge0 create
で作る。