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のムービー計画へ >動画狂コーナーへ |