VPN+UltraVNCによるPC遠隔操作

VPN+UltraVNCによるPC遠隔操作
UltraVNCをVPN暗号化通信と組み合わせて、セキュアに遠隔地のPCをコントロール
 
(2007.07.12作成, 10.03.30更新)
自宅PCを外出先からセキュアに操作可能とする技術とし
て、VPN(Virtual Private Network)及びVNC(Virtual
Network Computing)があり、最近無料のソフトが手軽に
利用出来るようになってきた。
VPN
とは、汎用的な通信回線を利用して特定のユーザの
みがセキュアに利用出来る仮想的な専用ネットワークの
こと。PacketiX VPNTinyVPNが有名だが、いずれも
中〜上級者向けで、前者は繰り返しライセンスを取得す
る手間が必要だ。一方、Hamachi は初心者でも簡単に
利用可能だ。
今回はHamachiTinyVPNを試用してみた。
一方VNCとは、インターネットを経由して遠隔地にあるコ
ンピュータのディスクトップをモニターに表示し、キーボード
やマウスを使ってあたかも手元にあるかのようにコントロー
ルすること。
Windowsのリモートデスクトップとオープンソースで開発
が進められているVNC系が有名だ。前者はVista Home
Premiumには搭載されていない。
今回は、本家RealVNCよりも高速で、ファイル転送機能も
搭載しているUltraVNCを試用してみた。

なお、両者の仕組みを一本にしたPacketiX Desktop
VPNについても試用してみた(ここを参照)。
雑誌ネットランナーより引用
  <参考>
PacketiX Desktop VPNによるPC遠隔操作」
ここを 参照
 
I. 準備
 1) ブロードバンドのネットワーク環境:
   今回は三台のPCで各々別回線(FTTH, ADSL, CATV)を使用し、又各々別機種のブロー
   ドバンドルータを使用。

 2) OS:Windows Vista 又は、WindowsXPを使用。
 3) Personal Firewall(&AntiVirus):Vista とADSL利用XPはNorton360を、CATV利用XPは
   ウイルスバスター2007をインストール。
 4) サーバーPCのルータ用にDDNS
   ホスト名を取得。

 5) サーバー側ルータの設定
  :UltraVNC単独使用の場合
   VNCが利用するポート(TCP/
   5900)を外部に開放する。
   VNCサーバーとなるFTTH利用
   VistaのIPアドレスは固定に設
   定し、これをポートフォワード先
   に指定する。

   HamachiやTinyVPNでVPNを
   行するこの設定は必要
   いが、TinyVPNを実
行す
   合は別途TinyVPN用のポートフ
   ォワード設定が必要だ。

Hamachi
Hamachi はP2P型のVPNソフトで、難しい設定を必要とせずにファイアウォールを越えてネット
ワーク経由でWindowsの共有フォルダ機能を相互に利用する事が可能だ。  ⇒こちらを参照。

TinyVPN
TinyVPNは仮想ハブネットワーク方式のVPNソフトで、遠隔のPCからブロードバンドルータ内
で構築されたLAN上にアクセスしているのと同じように、サーバPCのLANに接続している機器
にアクセスすることが可能だ。  ⇒こちらを参照。
 
UltraVNC
特徴
  
Ultr@VNCは、フリーのWindows用VNCサーバー/ビューア兼用ソフト。
入手は、ここから(今回は、UltraVNC 1.0.2 日本語版 Release 2を)ダウンロード。
インストール
  インストーラの指示に従って進める。
  「コンポーネントの選択」では、サーバ側ではフルインストールとする。ビューア側ではUltraVNC
   ビューアとDSM暗号化プラグインをインストールする。
  「選択タスクの選択」では、新規では「古いVNCのレジストリキーを消去」以外はチェック。
  「UltraVNCサービスを開始、または再開」にチェックを入れておくが・・・
   Windows Vistaでは「対話型サービスダイアログの検出」エラーとなってしまう(後述)。


サーバ側の設定
1)「管理プロパティ」の設定(サーバ側)
  UltraVNCサーバを起動して、タスクトレーのアイコンを右クリックし「管理プロパティ」を選択。
  1-1)「接続の受け付け」
     「ディスプレイ番号」を今回は 0 に設定。
     *「JAVAビューアを使う」はJAVA対応のWebブラウザでもアクセス可能       
  1-2)「認証」
     VNCパスワードは必ず入力する。
     「MSログオンを使用(ユーザ....)」を、今回はチェックして「MSログオングループの設定」
      ボタンをクリックしてユーザ登録を行う(下記 a)。
     「DMSプラグイン」はサーバとビューア間の通信を暗号化するもので、今回は使用する事
       とする。設定方法は下記 b。
     その他は初期設定のままでよい。
   (a) 「MSログオングループの設定」でユーザを登録
      WindowsXPでは、ユーザーアカウントに登録されていれば個別のユーザをわざわざ登録
      しなくてもよいが、Vistaではここでも登録する必要がある。
(b) DSMプラグインの設定方法
   (1)サーバ側とビューア側両方で、UltraVNCのフォルダにある「Plugin」フォルダ内の
     「MSRC4Plugin_NoReg.dsm」ファイルをUltraVNCのフォルダにコピーする。
   (2)サーバ側で 「DMSプラグイン」を「使用」にチェックを入れて「MSRC4Plugin_NoReg
     .dsm」を指定する。
   (3)「設定」ボタンをクリックすると、下図のダイアログが表示されるので、「Gen Key」
     ボタンをクリックする。
   (4)デスクトップ(環境QSXPによっては C:\WINDOWS\System32内)に「new_rc4.key」
     が生成されているので、「rc4.key」にリネームする。
   (5)サーバ側とビューア側両方のUltraVNCのフォルダに「rc4.key」をコピーする。
   (6)サーバ側のUltraVNCサーバを再起動する。
   (7)ビューア側のUltraVNCビューアを起動して、「DMSプラグイン使用」にチェックを
     入れて「MSRC4Plugin_NoReg.dsm」を指定する。

2)「プロパティ」(ユーザモード)の設定
(サーバ側)
  UltraVNCサーバを起動して、タスクトレーのアイコンを右クリックし「プロパティ」を選択。
  「ビデオフックドライバのチェック」ボタンをクリックして、ドライバが有効となっているか確認する。
  有効となっていない場合が往々あり、描画速度が極端に低速となってしまう。そのような場合は、
   スタート>プログラム>UltraVNC>UltraVNCドライバの「ドライバをインストール」をクリックする。

3)ファイアウォールの設定
(サーバ側)Norton360を使用
  UltraVNCサーバのプログラム制御
・・・現在のところは特に限定していない。
   ファイアウォール保護の設定>ファイアウォールプログラムルール>winvncで、
     通信はTCP/全てとする(何故かローカルとリモートTCP/5900とすると接続出来ない)。
     コンピュータは、
     1)Hamachi 実行時は、個別(例えば、5.67.121.29)又はIP 5.0.0.0 マスク 255.0.0.0とする。
     2)TinyVPN実行時は、LAN内IPファミリー(例えば、IP 192.168.1.0 マスク 255.255.255.0)
      とする。    
     3)UltraVNC単独の場合は、任意のコンピュータとして起動しておいて、アクセス後に限定し
      たクライアントのIPアドレスのみ(グローバルIPでないと有効にならない)に設定を変更する。

4)UltraVNCサーバの自動起動の設定
(サーバ側)
  予期せずマシンの再起動が起った場合に備えて、UltraVNCサーバを自動起動に設定する。
  しかし、Windows VistaではシステムサービスでUltraVNCサーバの自動/開始をしても、
   「対話型サービスダイアログの検出」でエラーとなって自動起動出来ない。
  <対策>
   コンピュータの管理>サービスで「VNC Server」を「自動」から「手動」に変更して、エラー
     表示しないようにしておく(システムサービスでの開始を諦める)。
   winvnc.exeのショートカットをスタートアップに登録する。
   なお、何らかの理由でwinvnc.exeを「管理者としてこのプログラムを実行する」としていたら、
    そのチェックを外しておかないと起動時に「スタートアッププログラム...ブロックされて...」し
    まう。

追記(2009.11.15)
  Windows 7βにおけるUltraVNCサーバ導入の問題点

  1)Vistaと同じく「対話型サービスダイアログの検出」でエラーとなってしまうので、Vistaと同
   様に対策する。
  2)Windows 7βではセキュリティが強化されている為、初期設定のままではすんなりとサー
   バとならない。
  <方法>
    「ネットワークと共有センター」で「「ネットワークの問題の修正」をクリック →「問題のトラブ
    ルシューティング」の「Incoming Connections to This Computer」をクリック →
    「Connect to this computer using Remote Desktop Connection」にチェックを入れて、
    「次へ」ボタンをクリックすると「ネットワークゲートウエイの構成で問題を検索しています」
    と表示されて、クライアントからの接続が可能となる。
  *Windows 7正式版でも「ネットワークと共有センター」>「問題のトラブルシューティング」>
   「着信接続」の 「他のコンピューターにVNC server for x64への接続を許可する」を実行
ビューア側の設定
UltraVNCビューアの設定(ビューア側)  
  1)UltraVNCビューアを起動して、VNC
   サーバ欄にサーバーPC
のアドレス
   を入力する。
   (1)UltraVNC単独で実行する場合
     DDNSホスト名:0
  (2)Hamachi +UltraVNC実行時は
     Hamachi 専用アカウント:0
  (3)TinyVPN+UltraVNC実行時は
     ルータから割り当てられた IP:0

  2)DMSプラグイン使用時は、
   DMSプラグイン使用」にチェック
   入れて「MSRC4Plugin_NoReg.dsm」
   を指定する。
   サーバ側1-2b) で生成した「rc4.key」
   UltraVNCのフォルダにコピーする。
  *ビューア側で「設定」ボタンをクリッ
   ク(して号化キーを作成)する必要
   はない。
  3)「オプション」ボタンを押すと詳細接続オプションが表示されるが、初期設定のままとする。
  4)「接続」ボタンをクリックすると、「VNCビューアの状態」画面が表示されて、以下の認証ダイア
   ログが表示される。
 a) VNCパスワードのみ設定時
b) MSログオン設定時
 *DSMプラグイン設定時に、一致するrc4.keyが無い場合の警告
 
結果 :
1)UltraVNCは、いとも簡単に遠隔のPCを自在にコント
  ロール出来てしまう恐ろしいハッキングツールだ。
  初期設定のままではセキュリティに不安があるので
  、更に「MSログオン」と「DSMプラグイン」を使用する
  方がよいのだが、何故か「DSMプラグイン」の設定
  方式が不親切だ。
ファイル転送機能へ
2)ファイル転送(ファイルやフォルダの交換)機能は、
  優秀で便利だ。⇒右図上をクリック。
 <ファイルの転送実験>
   37.0MBの動画ファイルの転送に要する時間を、
   サーバは:FTTH回線のWindows Vista(実測上り
    速度 11〜29Mbps)
   クライアントは:CATV回線のWindows XP(実測下
    り速度4Mbps前後)で検討した。
     UltraVNCでのみ接続 :「DSMPlugin」未使用 1分52秒、「DSMPlugin」使用 1分57秒
     Hamachi+UltraVNC :「DSMPlugin」未使用 2分12秒、「DSMPlugin」使用 2分14秒
     TinyVPN+UltraVNC :「DSMPlugin」未使用 2分12秒、「DSMPlugin」使用 2分18秒
    <参考>
     
Hamachi やTinyVPNのファイル共有によるダウンロード:各々 1分36秒、 1分21秒
 
   PacketiX Desktop VPNのハードディスクの共有: 7分18秒
  転送速度(Mbpsで表示)
   UltraVNCのファイル転送機能
     は、Hamachi やTinyVPNの
     ファイル共有によるダウンロ
     ードよりやや遅い。
   Hamachi やTinyVPNのトンネル
     経由の場合は、UltraVNCの
     みでの転送より遅くなったが
     、思った程遅延しなかった。
   Desktop VPNの転送速度は劣
     悪だ。
3)画像の描画性能は、
  VPNのトンネル経由で使用した場合、UltraVNC単体使用の場合と比べて、体感的には
  明らかに遅延する感じはなかった。
  しかしいずれにせよ、サーバ側で再生している500Kbps前後の動画ですらマトモに鑑賞出来
  るだけの能力はないし、音声の聴取は出来ない!
 <参考1>PacketiX Desktop VPNの画像の描画性能は、VPN+UltraVNCと比べて耐え
   られないほどではないが体感的には悪かった。
   音声の聴取は可能だが、しかし音質と音高は劣悪だった。
 <参考2>TinyVPNを使用している場合は、サーバ側にある動画ファイルをUltraVNC上で
   再生させずにクライアントのPC上で再生させれば、筆者の通信環境では、1.0Mbpsの動
   画の視聴は比較的スムーズだったが、1.6Mbpsになると時々コマ落ちしてしまった。
   これは、暗号化して交信することにより転送速度が3分の1以下に低下してしまう為と思わ
   れる。
4)Window Vistaでも問題なく使用可能だが、UltraVNCサーバをシステムの再起動時に自動再
  開させるには工夫が必要だ。
5)残念ながらVistaでは、ユーザーアカウント制御(UAC)が働く操作を実行すると接続が解除さ
  れてしまい、暫く(2分位)は再接続出来なくなってしまう。
  ・・・これは、VistaOSのセキュリティの仕様上致し方ない事なのであろうか?
  →プログラムの自動昇格ツール「Vistaのエレベータ」(フリーウェア)を利用して、UACが働く
   アプリケーションを実行すれば接続は解除されずに済むが、ビューア側からそのアプリを
   操作出来ないので無意味だ。
 なお、TinyVPNのHubPanel(=仮想ハブ管理パネル)は起動に際してUACで昇格を求めら
  れる。「仮想ハブ管理パネル」の画面を閉じておけば問題はないのだが、画面を最前面に
  示したままにしておくと、UltraVNCサーバに接続出来ても操作する事が出来ないので
  注意する。
追記 (2008.05.xx)
 UltraVNC 1.0.4からVistaに対応し、
  「UltraVNCサーバの自動起動」問題・・・システムサービスで開始が可能となった。
  「UAC」問題・・・UACが働いても切断されることなく、そのアプリの操作が可能となった。
  但し RC14の時点では、 「ビデオフックドライバ」をインストール出来ない為か不安定だ!
追記 (2008.11.xx)
 UltraVNC 1.0.5+UltraVNC 1.0.5 日本語化パッチ (ここから入手)
  「ビデオフックドライバ」のインストールは可能となったが・・・
  「UAC」問題・・・UACが働くと切断されてしまう Y (>_<、)Y
追記 (2009.11.15)
 64bit版Windows 7 で UltraVNCを使用
 Windows 7 x64ビット版を導入したのを機会に、久々にUltraVNCを新規に試用した。

 UltraVNC1.0.6.5(x64)(ここから 入手)
   UltraVNC_1.0.6.5_x64_Setup.exe と UltraVNC_1.0.6.5_x64_update.exeを使用。
 Ultra VNC 1.0.6.x を日本語化(ここから 入手):v0.30aを使用。
 そして Ultra VNC Server(winvnc.exe)側として試用したところ、
  問題点
   1)インストール時に下の警告が示されるがそのまま続行。
   2) 「ビデオフックドライバ」(Mirror Driver、デスクトップの描画を大幅に高速化する
     描画ドライバ)をインストール出来ない?
   
訂正(2010.03.30)
    別途「Mirror Driver」をインストールする方法があった。
     こちらの方法は、「Ultravnc_driver_Setup.exe」が存在しないのでダメ。
     こちらのデバイスマネージャの[レガシハードウェアの追加]方法に準じてインスト
      ールした。 但し、今回のバージョンの場合「driver」フォルダはインストールした
      段階では生成されていないので、前もってdrivers.zipを解凍する必要があった。
 
<Mirror Driverのインストール
 1)デバイスマネージャを開く
 2)[操作]->[レガシ ハードウェアの追加]を選択(一覧表示されているデバイスの
  どこかにフォーカスがあってないと選択肢が表示されないっぽいので注意)
 3)適当に進めて[一覧から選択したハードウェアをインストールする(詳細)]を選択
 4)[すべてのデバイスを表示]を選択して次へ
 5)[ディスク使用]からファイルの参照先を[(UltraVNCのインストール先)
    C:\Program Files\UltraVNC\driver\xp64\driver\mv2.inf]を選択
 6)最後まで進めてインストール完了
  結果
   「UAC」問題・・・UACが働くと切断されてしまうが、これはVistaと同様にUACを
    無効にして使用するしかない。
   描画動作はスローではなくほぼ問題なく使用出来ているが、やや再描画が悪いよ
    うだ。転送、日本語入力のトラブルはなし。
    下図の赤線は、UltraVNC 1.0.2 日本語版 Release 2との違い。
   「日本語キーボード」のチェックは保存出来ず毎回必要だが、すぐに反映され
     るので不都合はない。
   LAN外からの接続では、以前のUltraVNCでは転送にやや問題があったが今回
    は問題なさそうだ。
   訂正(2010.03.30)
   表示出来なかったデスクトップガジェットやCLaunchの描画が、「Mirror Driver」
    の導入で可能となった。再描画の悪さも改善された \(^o^)/
追記 (2010.03.30)
 64bit版Windows 7 で UltraVNCを使用(第二報)
 今回は、
UltraVNC1.0.8.2(x64)を使用(ここから UltraVNC_1.0.8.2_x64_Setup.exeを入手)。
  *UltraVNCは、 Windows 2000, XP, 2003, Vista, Windows 7の32 and 64bitに対応。
  *リリース履歴
   1.0.8.2(2009/12/07):専用ドライバ非使用時におけるマルチディスプレイのサポート、
     16bitカラー時に表示が乱れるなどの不具合を修正 。
   1.0.8(2009/11/07):DSMプラグインによる暗号化処理がマルチスレッドに対応。

 Ultra VNC 1.0.8.2を日本語化(ここから uvncj033.zipを入手)。
 そして Ultra VNC Server(winvnc.exe)側として試用した。
  I.インストール
   1)インストール途中で「Mirror Driver」のダウンロードを推奨される。このドライバは
    Windows 2000/XP/Vistaで作動するとなっており、未だ Windows 7に正式対応して
     いるとはなっていないが、そのまま続行。
 
   2)今回はサーバをシステムサービスとしては実行せずとしてインストール
 
   3)OS再起動後にデバイスマネージャで見ると、
     UltraVNC用のミラードライバ「mv video hook
     driver2」が確認出来る。
     なお、UltraVNC1.0.6.5(x64)のように、デバ
     イスマネージャの[レガシハードウェアの追
     加]からインストールする必要はなかった。
     
   4)残念ながら、使用した日本語化パッチは 64ビットOSには未対応だ(32ビット版の
     Windows 7RCでは日本語化可能な事を確認)。
  II.サーバ側の設定
   1)管理プロパティ
  32ビット版Windows 7RCの日本語へ
   2)プロパティ
  32ビット版Windows 7RCの日本語へ
 
なお、「ビデオフックドライバのチェック」はビューアがサーバに接続している時に
 クリックすると確認出来るようになっており、サーバに誰も接続していない状態
 でクリックしても意味はない。
  IV.結果
   1)「UAC」問題・・・UACが有効だと、接続後直ぐに切断されてしまうようになった。
    UACを無効にして使用するしかない。
   *サーバ側でAero使用時は以下の注意が必要だが、Basicの場合はクライアントの画
     面にサーバの背景画が表示されるので使い難い。
    クライアント側からAero→Basicに変更する操作をしたら、その後、「MV Video hook
     driver2」を一旦無効にして再起動しないとAeroを使用する事が出来なくなってしまう。
   2)描画動作はスローではなくLAN外でも問題なく使用出来ている。転送、日本語入力
    もトラブルはなし。
   3)「Mirror Driver」が自動で導入されるようになったが、64ビットOSでは日本語化出来
    ない。
 
追記 (2010.04.xx)
 
WOL非対応ルータ越えで遠隔地にあるコンピュータの電源投入
  ⇒「インターネット経由Wake On LANの設定」を参照

| Kenのムービー計画へ >動画狂コーナーへ |