openVPN設定。

 

 概要

弊社でインターネット上に仮想スイッチングハブとその仮想ハブにファイルサーバを接続しています。下記のOpenVPNクライアントを設定することでファイルサーバにアクセスできます。また、クライアントどうしもブラウズ可能ですしプリンタの共有も可能です。社内LANと同様に使用できます。
 クライアントは、Windows、MacOSX、Linuxに対応しています。-> 詳しい説明

お客様の使用環境など。
・インターネット接続環境が有ること。
・OSは、windowsXPで確認済みです。他のOSについては順次確認いたします。
・新規購入品は、ありません。
・仮装ハブとファイルサーバをお客様の社内に設置も可能です。その場合は、固定IPが必要になります。

Windows用クライアントソフト
http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe

Mac OSX用クライアントソフト
http://www.tunnelblick.net/

Linux用クライアントソフト
http://openvpn.net/download.html

 OpenVPNクライアントの設定 (Windows端末側)

1.以下のサイトよりWindows用OpenVPN GUI クライアントをダウンロードしてください。
http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe
2.「openvpn-2.0.9-gui-1.0.3-install.exe」をダブルクリックすることでインストールが開始します。
3.セットアップウィザードが開くので「Next」をクリックしてください。
4.ライセンスに関して同意をもとめられるので、「I Agree」をクリックして次に進んでください。
5.インストールするコンポーネントの選択画面が表示されますが、ここでは「Next」をクリックしてデフォルトのまま次へ進んでください。
6.OpenVPNのインストール先を選択します。今回は「C:\Program Files\OpenVPN」にインストールするので、そのまま「Install」をクリックし、インストールを開始します。※OpenVPNに関する各種ファイルはすべてこのディレクトリ内に格納されます。
7.WindowsXPにインストールする場合、インストールの過程で左図のようにWindowsロゴテストに関するポップアップが表示されますが、「続行」をクリックしインストールを進めてください。
8.インストールが完了したら、「Next」をクリックし次へ進んでください。
9.「Finish」をクリックし、セットアップウィザードを終了します。
10.左図のように、タスクバーにOpenVPNアイコンが表示されていればインストールは正常に行われています。
11.弊社が送付しました「ovpn-client.zip」を展開して、C:\Program Files\OpenVPN\configに全てコピーしてください。(認証用秘密キーが含まれています。扱いには最善の注意をお願いします。
12.タスクバーのOpenVPNアイコンを右クリックして、「Connect」を選択してください。
13.パスワードを入力してください。
14.タスクバーのOpenVPNアイコンが緑色になれば接続完了です。
15.ファイルサーバに接続するには、「ファイル名を指定して実行」を開き
\\10.10.0.200\ を入力してOKをクリックします。

 仮想ハブとファイルサーバは同じLinuxマシン

 仮想スイッチングハブのポートは、tap0と命名されたソフトウェアが創り上げた(仮想)LANインターフェース(NIC)です。実際にLANケーブルが接続されてるのは、eth0と命名されたNICが1枚だけです。eth0にローカルIPアドレス10.10.0.200/24を定義すると、このマシンへの接続は、http://10.10.0.200のようにIPアドレス10.10.0.200をたよりに接続します。
 しかし、このままでは、インターネットの向こう側からの接続は出来ません。なぜなら、ローカルIPアドレスは、インターネットの入口(ISP)でブロックされるからです。そこで、ルータにグローバル固定IP(仮に202.x.x.x)を振ります。これで、インターネットの向こう側からは、202.x.x.xで接続できます。また、httpは、80ポートを使うように、OpenVPNでは1194ポートと定義してます。

クライアントの接続要求 202.x.x.x:1194(202.x.x.xの1194ポートに接続要求)
              |
           <インターネット>
              |
            <ルータ>
   (NAT機能で202.x.x.x:1194は10.10.0.200:1194に変換)
              |
        | eth0(10.10.0.200)  |
        | 1194ポートはOpenVPNに渡す | <- Linuxマシン
        | 以後tap0を使うと決める      |

これだけでは、Linuxマシンは、何もしません。なぜなら、eth0には関心がありますが、tap0には関心も興味もありません。そこで、tap0をeth0に橋渡しをしておきます。これは、OpenVPNの機能ではありません。この橋渡しをするインターフェースがブリッジといいbr0と定義すれば、

     クライアントーーー>tap0ーーー>br0--->eth0

のようにtap0をeth0にまさしくブリッジしてくれます。以下にifconfigの結果を示します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
br0 リンク方法:イーサネット ハードウェアアドレス 00:D0:B****
inetアドレス:10.10.0.200 ブロードキャスト:10.10.0.255 マスク:255.255.255.0
inet6アドレス: fe80::2d0:b7ff:fe8f:28dc/64 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RXパケット:751755 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:507717 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:0
RX bytes:534032427 (509.2 Mb) TX bytes:56088423 (53.4 Mb)

eth0 リンク方法:イーサネット ハードウェアアドレス 00:D0:B7:*****
inet6アドレス: fe80::2d0:b7ff:fe8f:28dc/64 範囲:リンク
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RXパケット:514955 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:363962 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RX bytes:295150862 (281.4 Mb) TX bytes:43040748 (41.0 Mb)

lo リンク方法:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0
inet6アドレス: ::1/128 範囲:ホスト
UP LOOPBACK RUNNING MTU:16436 Metric:1
RXパケット:4792 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:4792 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:0
RX bytes:501838 (490.0 Kb) TX bytes:501838 (490.0 Kb)

tap0 リンク方法:イーサネット ハードウェアアドレス 02:61:D8:****
inetアドレス:10.10.0.200 ブロードキャスト:10.10.0.255 マスク:255.255.255.0
inet6アドレス: fe80::61:d8ff:fe39:e9ea/64 範囲:リンク
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RXパケット:236809 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:147665 エラー:0 損失:4 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:100
RX bytes:249730812 (238.1 Mb) TX bytes:13569775 (12.9 Mb)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

これで、Linuxマシンは、淡々とeth0のデータを処理します。もしsambaへの接続要求であれば、LAN上のそれと同じようにに振る舞います。

 安全性の確保

SSL/TLSの必要性と要求される事項
1. 通信相手のサーバは本物に間違いないか。サーバにしてみればクライアントは本人か。【認証機能】
2. 通信内容が第三者に盗み読まれないか。【暗号化機能】
3. 通信中に内容が改ざんされていないか。【ダイジェスト機能】
OpenVPNはフル機能のSSL VPNであり,上記の機能を実装している業界標準のSSL/TLSプロトコルを利用したOSI第2・第3層相当のセキュアなネットワークです。