作成日:2009年03月01日、更新日:2009年03月01日 作成:鷹の巣

OpenVPNを利用したリモートデスクトップ接続の設定例を示します。後編では、OpenVPN を使用して、仮想プライベートネットワークを構築し、Windows のリモートデスクトップ接続を動作させます。


新作 リモートデスクトップ接続の設定例後編(仮想プライベートネットワークの構築)

この設定例は、以下の環境で動作の確認を行いました。

目次

  1. [前編]はじめに
  2. [前編]概要
  3. [前編]インストール
  4. [前編]コマンドプロンプト画面の変更
  5. [前編]証明書と鍵データ作成前の事前準備
  6. [前編]証明書と鍵データの作成
  7. 設定ファイルの編集とVPN サーバー機の動作試験
  8. VPN クライアント機の動作試験
  9. VPNサーバー機とVPNクライアント機の通常の起動方法
  10. OpenVPN用ルータの設定
  11. リモートデスクトップ接続用Windows ファイアウォールの設定
  12. OpenVPN を使用したWindows のリモートデスクトップ接続の設定例
  13. まとめ
  14. おまけ1(OpenVPN をサービスアカウントでサービス動作をさせる設定)
  15. おまけ2(OpenSSL の設定放置で、ISC BIND9 のサービス動作開始せず)

7. 設定ファイルの編集とVPN サーバー機の動作試験

  1. LAN内に2台のPCを準備し、1台をVPN サーバー機(192.168.0.11)とし、もう1台をVPN クライアント機(192.168.0.21)として説明します。

  2. C:\Program Files\OpenVPN \sample-config フォルダにあるサンプルファイルの内 server.ovpn と client.ovpn を C:\Program Files\OpenVPN\config フォルダにコピーします。

  3. server.ovpn は、そのまま使用します(待ち受けUDPポート1194、ネットワークセグメント10.8.0.0/24)。

  4. client.ovpn は、「remote my-server-1 1194」と書かれた行をVPN サーバー機のIPアドレス(192.168.0.11)に変更します。(「remote 192.168.0.11 1194」に変更します。)

  5. 「C:\Program Files\OpenVPN\easy-rsa\keys 」フォルダ内にある以下のサーバー証明書と鍵を「C:\Program Files\OpenVPN\config 」フォルダにコピーします。
    VPN サーバーに必要なファイル----ca.crt 、server.crt 、server.key 、dh1024.pem

  6. エクスプローラにて、C:\Program Files\OpenVPN\config\server.ovpn を右クリックし、「Start OpenVPN on this config file 」を左クリックして、VPN サーバー機を起動します。この方法で起動できない場合は、コマンドプロンプト画面より、「 cd \Program Files\OpenVPN\config 」と移動して、「 openvpn  server.ovpn 」を実行して下さい。実行結果を以下に示します。1分以内に「 Initialization Sequence Completed 」と表示されれば、正常に起動出来ています

    注)起動時にWindows ファイアウォールより、警告が出たら、「ブロックを解除する」を押して下さい。

    コマンドプロンプト画面よりの起動結果を下記に示します。
    画面では、水色がコマンド入力、緑色が得られた結果の注目すべき表示、赤色が注目すべき説明としています。

    VPN サーバー機の起動結果(左端のSat Feb 28 17:00:13 2009 という様に書かれた日付情報は、消去しています。)

    C:\>cd \Program Files\OpenVPN\config          <---設定フォルダへ場所移動。
    
    C:\Program Files\OpenVPN\config>openvpn server.ovpn  <---VPN サーバー機を起動。
    OpenVPN 2.1_rc15 i686-pc-mingw32 [SSL] [LZO2] [PKCS11]
    built on Nov 19 2008
    NOTE: OpenVPN 2.1 requires '--script-security 2' or hig
    her to call user-defined scripts or executables
    Diffie-Hellman initialized with 1024 bit key
    TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0]
    ROUTE default_gateway=192.168.0.1
    TAP-WIN32 device [OpenVPNローカル エリア接続] opened: \\.\Global\{99999999-XXXX-XXXX-XXXX-XXXXXXXXXXXX}.tap
    TAP-Win32 Driver Version 9.4
    TAP-Win32 MTU=1500
    Notified TAP-Win32 driver to set a DHCP IP/netmask of 10.8.0.1/255.255.255.252
           on interface {99999999-XXXX-XXXX-XXXX-XXXXXXXXXXXX} [DHCP-serv: 10.8.0.2, lease-time: 31536000]
    Sleeping for 10 seconds...
    Successful ARP Flush on interface [3] {99999999-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
    C:\WINDOWS\system32\route.exe ADD 10.8.0.0 MASK 255.255.255.0 10.8.0.2
    Route addition via IPAPI succeeded [adaptive]
    Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
    Socket Buffers: R=[7680->7680] S=[65535->65535]
    UDPv4 link local (bound): [undef]:1194
    UDPv4 link remote: [undef]
    MULTI: multi_init called, r=256 v=256
    IFCONFIG POOL: base=10.8.0.4 size=62
    IFCONFIG POOL LIST
    OpenVPNcl1,10.8.0.4
    OpenVPNcl3,10.8.0.8
    Initialization Sequence Completed      <---F4キーを押し、VPN サーバー機を停止。
    TCP/UDP: Closing socket
    C:\WINDOWS\system32\route.exe DELETE 10.8.0.0 MASK 255.255.255.0 10.8.0.2
    Route deletion via IPAPI succeeded [adaptive]
    Closing TUN/TAP interface
    SIGTERM[hard,] received, process exiting
    
    C:\Program Files\OpenVPN\config>

    注)画面では、水色がコマンド入力、緑色が得られた結果の注目すべき表示、赤色が注目すべき説明としております。

  7. この起動した状態で、「OpenVPNローカル エリア接続」を開けて、下図の様になっていることを確認します。IP アドレスが 10.8.0.1 になっていることを確認します。確認したついでにOpenVPNローカル エリア接続のプロパティの全般タブで、「接続時に通知領域にインジケータを表示する(W)」にチェックを入れておきます。

    OpenVPNローカル エリア接続の状態の全般タブ OpenVPNローカル エリア接続の状態のサポートタブ OpenVPNローカル エリア接続のプロパティの全般タブ

  8. F4キーを押して、VPN サーバー機を停止させます。(コマンドプロンプト画面を閉めても停止します。)

  9. 「C:\Program Files\OpenVPN\config 」フォルダ内にある以下のサーバー証明書と鍵をUSBメモリ等を利用して、VPN サーバー機(192.168.0.11)の「C:\Program Files\OpenVPN\config 」フォルダに移動させ、項 f と項 g を行い、VPN サーバー機を起動します。(起動したままにします。)1分以内に「 Initialization Sequence Completed 」と表示されれば、正常に起動出来ています。IP アドレスが 10.8.0.1 になっていることを確認します。
    VPN サーバー機に必要なファイル----ca.crt 、server.crt 、server.key 、dh1024.pem

  10. 以上で、VPN サーバー機の起動と試験が終了しました。

8. VPN クライアント機の動作試験

  1. 「C:\Program Files\OpenVPN\easy-rsa\keys 」フォルダ内にある以下のクライアント1証明書と鍵を「C:\Program Files\OpenVPN\config 」フォルダにコピーします。
    VPN クライアントに必要なファイル---ca.crt 、client1.crt 、client1.key(クライアント2または3でも可)

  2. 同様にしてVPN クライアント1機を起動ます。(エクスプローラにて、C:\Program Files\OpenVPN\config\client1.ovpn を右クリックし、「Start OpenVPN on this config file 」を左クリックして、VPN クライアント1機を起動します。)実行結果を以下に示します。1分以内に「 Initialization Sequence Completed 」と表示されれば、正常に起動出来ています

    注)起動時にWindows ファイアウォールより、警告が出たら、「ブロックを解除する」を押して下さい。

    VPN クライアント1の起動結果(左端のSat Feb 28 17:00:13 2009 という様に書かれた日付情報は、消去しています。)

    C:\>cd \Program Files\OpenVPN\config           <---設定フォルダへ場所移動。
    
    C:\Program Files\OpenVPN\config>openvpn client1.ovpn  <---VPN クライアント機を起動。
    
    OpenVPN 2.1_rc15 i686-pc-mingw32 [SSL] [LZO2] [PKCS11] built on Nov 19 2008
    NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
    LZO compression initialized
    Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
    Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
    Local Options hash (VER=V4): '12345678'
    Expected Remote Options hash (VER=V4): '87654321'
    Socket Buffers: R=[7680->7680] S=[65535->65535]
    UDPv4 link local: [undef]
    UDPv4 link remote: 192.168.0.11:1194
    TLS: Initial packet from 192.168.0.11:1194, sid=ab7a2e60 cf2227bf<---VPN サーバー機に接続できない場合は、これ以降が表示されない。
    VERIFY OK: depth=1, /C=US/ST=CA/L=MINO/O=OpenVPN/CN=OpenVPN-CA/emailAddress=abuse@example.jp
    VERIFY OK: nsCertType=SERVER
    VERIFY OK: depth=0, /C=US/ST=CA/O=OpenVPN/CN=OpenVPNserver/emailAddress=abuse@example.jp
    Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
    Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
    Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
    Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
    Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
    [OpenVPNserver] Peer Connection Initiated with 192.168.0.11:1194
    SENT CONTROL [OpenVPNserver]: 'PUSH_REQUEST' (status=1)
    PUSH: Received control message: 'PUSH_REPLY,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5'
    OPTIONS IMPORT: timers and/or timeouts modified
    OPTIONS IMPORT: --ifconfig/up options modified
    OPTIONS IMPORT: route options modified
    ROUTE default_gateway=192.168.24.1
    TAP-WIN32 device [OpenVPNローカル エリア接続] opened: \\.\Global\{99999999-XXXX-XXXX-XXXX-XXXXXXXXXXXX}.tap
    TAP-Win32 Driver Version 9.4
    TAP-Win32 MTU=1500
    Notified TAP-Win32 driver to set a DHCP IP/netmask of 10.8.0.6/255.255.255.252
           on interface {99999999-XXXX-XXXX-XXXX-XXXXXXXXXXXX} [DHCP-serv: 10.8.0.5, lease-time: 31536000]
    Successful ARP Flush on interface [3] {99999999-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
    TEST ROUTES: 1/1 succeeded len=1 ret=1 a=0 u/d=up
    C:\WINDOWS\system32\route.exe ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.5
    Route addition via IPAPI succeeded [adaptive]
    Initialization Sequence Completed      <---F4キーを押し、VPN クライアント機を停止。
    TCP/UDP: Closing socket
    C:\WINDOWS\system32\route.exe DELETE 10.8.0.1 MASK 255.255.255.255 10.8.0.5
    Route deletion via IPAPI succeeded [adaptive]
    Closing TUN/TAP interface
    SIGTERM[hard,] received, process exiting
    
    C:\Program Files\OpenVPN\config>

    注)画面では、水色がコマンド入力、緑色が得られた結果の注目すべき表示、赤色が注目すべき説明としております。

  3. この起動した状態で、「OpenVPNローカル エリア接続」を開けて、項5 の項 g と同様になっていることを確認します。IP アドレスが 10.8.0.X になっていることを確認します。IPアドレスを確認したついでにOpenVPNローカル エリア接続のプロパティの全般タブで、「接続時に通知領域にインジケータを表示する(W)」にチェックを入れておきます。

  4. 以上で、VPN サーバー機の起動と試験が終了しました。OpenVPN で、VPN トンネルが掘れました。コマンドプロンプト画面で、「ping 10.8.0.1 」と入力し、VPN サーバー機に疎通があることを検査します。

    VPN クライアントよりの疎通検査結果

    C:\Program Files\OpenVPN\config>ping 10.8.0.1  <---VPN サーバー機へ疎通検査。
    
    Pinging 10.8.0.1 with 32 bytes of data:
    
    Reply from 10.8.0.1: bytes=32 time=1ms TTL=128
    Reply from 10.8.0.1: bytes=32 time=1ms TTL=128
    Reply from 10.8.0.1: bytes=32 time=1ms TTL=128
    Reply from 10.8.0.1: bytes=32 time=1ms TTL=128
    
    Ping statistics for 10.8.0.1:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 1ms, Maximum = 1ms, Average = 1ms
    
    C:\Program Files\OpenVPN\config>

    注)画面では、水色がコマンド入力、緑色が得られた結果の注目すべき表示、赤色が注目すべき説明としております。

  5. F4キーを押して、VPN サーバー機 と VPN クライアント機を共に停止させます。(コマンドプロンプト画面を閉めても停止します。)

9. VPNサーバー機とVPNクライアント機の通常の起動方法

  1. VPNサーバー機(192.168.0.11)の起動は、「コントロールパネル」-「管理ツール」-「サービス」で、OpenVPN Service を右クリックして、プロパティを左クリックします。プロパティ画面のスタートアップの種類を「自動」に選択して、「開始」押ボタンを押すと、サービス動作します。(VPNサーバー機も項bの起動方法ができますので、必要な時だけ起動するだけで良ければ、サービス動作させない方が安全です。)

    サービス

  2. VPNクライアント機(192.168.0.21)は、デスクトップに作成されている下図の「OpenVPN GUI 」アイコンを左クリックすると、画面右下にアイコンが作成されます。この画面右下のアイコンを右クリックしますと、下図のメニューが表示されますので、ここから、接続と切断ができるようになります。アイコンの色は、状態を表し、赤が切断中、黄色が接続途中、緑が接続中であることを示しています。

    OpenVPN接続アイコン OpenVPN接続アイコン右クリック

10. OpenVPN用ルータの設定

OpenVPN用ルータの設定    どんなルータでもOpenVPNを構築できます。

11. リモートデスクトップ接続用Windows ファイアウォールの設定

リモートデスクトップ接続用Windows ファイアウォールの設定は、まずは、PCを2台並べて、通常のIPアドレス(192.168.0.X)で、試験して下さい。

12. OpenVPN を使用したWindows のリモートデスクトップ接続の設定例

OpenVPN を使用したWindows のリモートデスクトップ接続の設定例は、まずは、PCを2台並べて、通常のIPアドレス(192.168.0.X)で、試験して見て下さい。

13. まとめ

  1. 以上で、VPN の構築が終了しました。LAN内に2台のPCを準備し、試験したことにより、証明書データと鍵(錠前)データ及びVPN サーバー機とVPN クライアント機の設定は、正しいことが証明されました。

  2. 冒頭にありましたインターネット越しにルータ2台のファイアウォールを抜けてVPN の構築が成功するどうかは、前項のルータの設定とWindows ファイアウォールの設定のみとなります。

  3. うまく構築できない場合は、一時的にWindows ファイアウォールの設定を無効にして、ルータの設定を検査したり、また、その逆も行って、問題点の切り分けを行う必要があります。VPN サーバーとVPN クライアントが接続できない場合、「TLS交渉に失敗しました」というような嘘の表示が出る場合がありますので、LAN内動作試験の結果を信じて下さい。

  4. このページで構築した例は、ほんの一部分です。構築に成功した後は、下記のサイトもご一読になり、理解を深めることをお奨めします。

  5. ご健闘を祈ります。

14. おまけ1(OpenVPN をサービスアカウントでサービス動作をさせる設定)

おまけ1(OpenVPN をサービスアカウントでサービス動作をさせる設定)

15. おまけ2(OpenSSL の設定放置で、ISC BIND9 のサービス動作開始せず)

おまけ2(OpenSSL の設定放置で、ISC BIND9 のサービス動作開始せず)

目次▲頁先頭