1: 2010-03-07 (Sun) 23:36:48 maruo source 2: 2010-03-08 (Mon) 01:31:25 maruo source
Line 2: Line 2:
[[OpenVPN:http://www.openvpn.jp/]]は、インターネットやLAN上に仮想的なプライベートネットワーク(VPN)を構築するためのソフトウェアです。 [[OpenVPN:http://www.openvpn.jp/]]は、インターネットやLAN上に仮想的なプライベートネットワーク(VPN)を構築するためのソフトウェアです。
VPNを構築することにより、インターネット上であってもデータを安全にやり取りしたり、社外から社内のサーバーにアクセスできるようにすることもできます。オープンソースで、SSL/TLSをベースにした認証機構及び通信路暗号化を用いることで、セキュアに通信路を構築することが可能です。ん~、便利。 VPNを構築することにより、インターネット上であってもデータを安全にやり取りしたり、社外から社内のサーバーにアクセスできるようにすることもできます。オープンソースで、SSL/TLSをベースにした認証機構及び通信路暗号化を用いることで、セキュアに通信路を構築することが可能です。ん~、便利。
-ちなみに、OpenVPNでは、SSL/TLSトンネルをサーバ/クライアント間で接続して通信します。トンネルについての解説は、[[こちら>自宅鯖計画/トンネル接続って何だべ?]]を見てくださいね♪+ちなみに、OpenVPNでは、SSL/TLSトンネルをサーバ/クライアント間で接続して通信します。トンネルについての解説は、[[トンネル接続って何だべ?の記事>自宅鯖計画/トンネル接続って何だべ?]]を見てくださいね♪ 
 + 
 +*OpenVPNをインストールしてみよう [#rbce4c45] 
 +**サーバ側 [#yc5d946a] 
 +サーバ側には24時間稼働している、Linuxサーバ君にインストールします。 
 + # emerge -vuD openvpn 
 +おしまい。 
 +**クライアント側 [#v7b79b03] 
 +クライアントにLinuxを使用する場合は、サーバと一緒。今回は、Windowsを使用するので、[[OpenVPN GUI for Windows 日本語版:http://www.openvpn.jp/bridging/5.html]]を使用します。インストール手順は[[こちら:http://www.openvpn.jp/guiuse.html]]でね。 
 + 
 +*OpenVPNを設定してみよう [#gcb1e883] 
 +**サーバ側 [#aa7ab458] 
 +/usr/share/doc/openvpn-XXX/examples/sample-config-files/ディレクトリに、設定ファイルのサンプルがあります。こちらを利用しましょう。 
 +サーバ側ですので、この下にあるserver.conf.bz2を、/etc/openvpn配下に、openvpn.confという名称で、解凍&コピーします。この中で、特に必要な項目を… 
 +:port|openvpnで通信するポートを指定します(クライアント側と合わせる) 
 +:proto|tcpか、udpかを指定します。(クライアント側と合わせる) 
 +:dev|tapかtunか。tapはブリッジモードかつL2レベルインタフェース(ARPが動くってことかな…)、tunはルーティングモードかつL3モード(ARPは解決しないモードかな)です。私はtunで。(クライアント側と合わせる) 
 +:ca|[[ここの暗号鍵作成>Gentoo Linuxな生活/OpenVPNで悩む#y9606253]]で作成する、ca.crtを指定します。フルパスで書くのが安心。 
 +:cert|[[ここの暗号鍵作成>Gentoo Linuxな生活/OpenVPNで悩む#y9606253]]で作成する、server.crtを指定します。フルパスで書くのが安心。 
 +:key|[[ここの暗号鍵作成>Gentoo Linuxな生活/OpenVPNで悩む#y9606253]]で作成する、server.keyを設定します。フルパスで書くのが安心。 
 +:dh|[[ここの暗号鍵作成>Gentoo Linuxな生活/OpenVPNで悩む#y9606253]]で作成する、dh1024.pemを設定します。 
 +:server|サーバモードで設定する、openvpn空間でのネットワークアドレスを指定します。通信先ネットワーク内で使用しているIPとは、かぶらないIPアドレスにする。例えば、通信先のNW空間が、仮に172.21.0.0/16ならば、openvpn空間のNWは、172.22.0.0/16とかね。 
 +:push|接続してきたクライアントに自動設定するパラメータを指定する。例えばルーティングテーブル。接続してできたデバイスに対して、通信先NWのルーティング(上の例なら172.21.0.0/16向けのルーティング)を設定するとか、クライアントに参照させたいDNSサーバのアドレスとか。 
 +:tls-auth,cipher|TLSによる暗号化をプラスする場合、使用する。暗号強度が上がる。 
 +:user,group|Windowsではない場合、openvpnが動作するユーザ、グループ権限が指定できる。root以外にすれば、セキュリティは向上するよね。 
 +**クライアント側 [#l2cb0b98] 
 +Windowsだと、c:\Program Files(64ビット版の場合は、c:\Program Files (x86))\OpenVPN\sample-configに、サンプル設定ファイルがあります。この中のclient.ovpnをコピーして、c:\Program Files(64ビット版の場合は、c:\Program Files (x86))\OpenVPN\configに置きます。そしてこのファイルを編集しますが…注意!Windows7や、Windows Vistaは、管理者モードでないと変更セーブされませんので…気をつけてね。私は、個人のフォルダにコピーして、変更してからconfigフォルダに管理者モードでコピーしました。 
 +:proto|tcpか、udpかを指定します。(サーバ側と合わせる) 
 +:dev|tapかtunか。tapはブリッジモードかつL2レベルインタフェース(ARPが動くってことかな…)、tunはルーティングモードかつL3モード(ARPは解決しないモードかな)です。私はtunで。(サーバ側と合わせる) 
 +:remote|接続先のサーバ名と、ポート(サーバ側のport項で指定した値)を指定する。 
 +:ca|[[ここの暗号鍵作成>Gentoo Linuxな生活/OpenVPNで悩む#y9606253]]で作成する、ca.crtを指定します。フルパスで書くのが安心。Windowsは、ファイルパスに\を使用しますが、OpenVPNは、\の指定は\\ですので、注意。 
 +:cert|[[ここの暗号鍵作成>Gentoo Linuxな生活/OpenVPNで悩む#y9606253]]で作成する、クライアント名.crtを指定します。フルパスで書くのが安心。Windowsは、ファイルパスに\を使用しますが、OpenVPNは、\の指定は\\ですので、注意。 
 +:key|[[ここの暗号鍵作成>Gentoo Linuxな生活/OpenVPNで悩む#y9606253]]で作成する、クライアント名.keyを設定します。フルパスで書くのが安心。 
 +Windowsは、ファイルパスに\を使用しますが、OpenVPNは、\の指定は\\ですので、注意。 
 +:tls-auth,cipher|TLSによる暗号化をプラスする場合、使用する。暗号強度が上がる。 
 +*暗号鍵を作成 [#y9606253] 
 +OpenVPNインストール時、大体/usr/share/openvpn等のどこかに、easy-rsaというフォルダがあります。この中に、暗号鍵作成ツールが入っております。そのフォルダ内で、ツールを実行! 
 +**CA局を作成 [#naf18717] 
 + # source ./vars 
 + # clean-all 
 + # build-ca 
 + Generating a 1024 bit RSA private key 
 + ............++++++ 
 + ...........++++++ 
 + writing new private key to 'ca.key' 
 + ----- 
 + 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. 
 + ----- 
 + Country Name (2 letter code) [KG]: 
 + State or Province Name (full name) [NA]: 
 + Locality Name (eg, city) [BISHKEK]: 
 + Organization Name (eg, company) [OpenVPN-TEST]: 
 + Organizational Unit Name (eg, section) []: 
 + Common Name (eg, your name or your server's hostname) []:OpenVPN-CA 
 + Email Address [me@myhost.mydomain]: 
 +なんでも、好きなもの、識別できるものを入れておくとよいでしょう~ 
 +**サーバ暗号鍵の作成 [#t6a2d753] 
 +続いて、サーバ暗号鍵を作成します。 
 + # build-key-server server 
 +CA局と同じように聞かれていきますが、識別可能な奴を入れていってくださいね。んで、「Sign the certificate?(証明書に署名しますか?) [y/n]」と「1 out of 1 certificate requests certified, commit?(1つの証明書要求がありますが、コミットしますか?) [y/n]」という2つの質問が出ますが、両方にYesと答えてやって。 
 +**クライアント暗号鍵の作成 [#vd6c624e] 
 +クライアント鍵の作成は、 
 + # build-key クライアント名 
 +暗号鍵をパスワード保護したい場合は、 
 + # build-key-pass クライアント名 
 +同じようにいろいろ聞かれますが、同じように識別可能な奴を入れていってやって…で、これは接続したいクライアント数分、クライアント名を変更してコマンドを実施します。 
 +**Diffie hellmanパラメータ作成 [#g9b2984e] 
 + # build-dh 
 +少々お待ちくださいね… 
 +**鍵をコピー [#q123c922] 
 +そうすると、keysサブディレクトリ配下に、以下があるはず。 
 + ca.crt 
 + ca.key 
 + dh1024.pem 
 + クライアント名.crt 
 + クライアント名.csr 
 + クライアント名.key 
 + server.crt 
 + server.csr 
 + server.key 
 +で、これらのうち、ca.crt(CA証明書),クライアント名.crt,クライアント名.csr(クライアント証明書),クライアント名.key(クライアント秘密鍵)をコピーして、Windows側に持ってってあげます。くれぐれも、漏えいしたりしないように気をつけつつ… 
 +*その他の設定 [#ta633b9b] 
 +**ブロードバンドルータ側の設定 [#ef9f4faa] 
 +普通は、ブロードバンドルータで、ポートを閉じていると思います。ブロードバンドルータ側で、openvpnを受け付けているプロトコル、ポートを、openvpnサーバ側に向けてあげる変換テーブルを設定してあげましょう。 
 +**Linuxサーバの設定 [#j3c08a4b] 
 +***Sysctl [#bc5bca59] 
 +Sysctlの、ip_forwardをONにします。 
 + # echo "1" > /proc/sys/net/ipv4/ip_forward 
 +***iptables等 [#n39f0623] 
 +iptablesを指定している場合は、openvpn用のNWアドレスを通過する設定をしないといけません 
 +***各種サーバ [#r9e58f78] 
 +openvpn用のNWアドレスからのリクエストを受け付けるようにしましょう 
 +*接続確認 [#c07b1bf1] 
 +サーバ側で、openvpnを起動してみます。 
 + # /etc/init.d/openvpn start 
 +クライアント側で、openvpnクライアントを起動してみましょう。ちなみに、私はブロードバンドルータの外側から接続を試してみてます。うちのプロバイダは、DHCPでクライアントへのアドレス払い出しが5つまでOKなので♪でないと試験の意味がないからね。openvpnGUIのコンテキストメニューから、『接続』を選択。さて、うまくコネクトできるでしょうか…クライアント側でログが出ますから、確認できるでしょう…ちなみに、私は、protoをTCPにしないとだめでした。ブロードバンドルーターとかいろいろあるのかしら… 
 + 
 +*もう一工夫 [#z3477833] 
 +Windows側のVPNクライアントを見ていると、USBのアクセスキーを差し込まないとVPN接続できないようなもの、ありますよね。あれにチャレンジしてみます。 
 + 
 +うちのdv3500君は、SDカードスロットを持っています。うちに1GbyteのSDカードがありました。こいつを暗号化して、これにさっきのクライアント暗号化キーをぶっこんでおけば…そいつがないとVPN接続できないし、安心ですね。 
 + 
 +**BitLocker to Go [#j8f352de] 
 +Windows7 Ultimateには、BitLockerというドライブ暗号化ツールが入っています。コントロールパネルから、BitLockerドライブ暗号化を選択します。SDカードを差し込むと、BitLocker to Goというメニューが出てきます。こいつでTPMデバイスを使用しない、パスワード認証を選択すると、SDカード差し込み時にパスワードを問い合わせてくる暗号化ドライブになります。これを選択。暗号化。 
 + 
 +そして、出来上がった暗号化ドライブに、暗号キーを放り込んで、クライアント側OpenVPNのコンフィグファイルに、キーのパス(SDカードドライブを含むフルパス)を記述しておきます。こーすると、アクセスの手順がこうなります。 
 + 
 ++SDカードスロットに暗号キーを差し込む 
 ++SD暗号キーのパスワード認証(BitLocker側) 
 ++OpenVPN GUIで『接続』を選択 
 ++クライアント暗号キーのパスフレーズ入力(パスフレーズ付きのクライアントキー認証) 
 ++サーバと接続確立 
 ++あとはおうちで使用するのと同じように、サーバにSSHやら、共有ドライブアクセスやら、IMAP使用したりできる 
 + 
 +うっふっふ♪こいつぁ便利な上に、SDカードとセットでないとアクセスできない。SDキーをなくしても、暗号化されている上に何のキーかわからないから、安心ってわけね。


Front page   Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 34072, today: 2, yesterday: 4
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード