VPN+UltraVNCによるPC遠隔操作
UltraVNCをVPN暗号化通信と組み合わせて、セキュアに遠隔地のPCをコントロール
 
(2007.07.12作成, 09.11.15更新)
自宅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についても試用してみた(ここを参照)。
雑誌ネットランナーより引用
   
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」にチェックを入れて、
    「次へ」ボタンをクリックすると「ネットワークゲートウエイの構成で問題を検索しています」
    と表示されて、クライアントからの接続が可能となる。

ビューア側の設定
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) 「ビデオフックドライバ」をインストール出来ない。
  結果
   「UAC」問題・・・UACが働くと切断されてしまうが、これはVistaと同様にUACを
    無効にして使用するしかない。
   描画動作はスローではなくLAN内では問題なく使用出来ている。転送、日本語
    入力もトラブルはなし。
    下図の赤線は、UltraVNC 1.0.2 日本語版 Release 2との違い。
   「日本語キーボード」のチェックは保存出来ず毎回必要だが、すぐに反映され
     るので不都合はない。
   LAN外からの接続では、以前のUltraVNCでは転送にやや問題があったが・・・

 
<参考>
PacketiX Desktop VPNによるPC遠隔操作」 ここを 参照


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