半年くらい前に友人向けのサポート用に作ったSCですが、別の友人が遠隔操作で知人のサポートするのに使いたいという事で、作り方のアドバイスしたついでに、まとめておこうかと。
とはいえ自分の場合は、有名な ケイムズカンパニー様 の内容をほぼそのまま使っているのですが、ちょっとつまずきやすい所も含めて、順序立ててメモしておけば忘れないだろうということで。
遠隔操作のためには、自分のPCにUltraVNCを入れておかないとダメなので、本体をダウンロード して、インストールします。(インストール作業自体は、日立システムズ様 のサイトが参考になります)
日本語じゃないと嫌な人は、日本語化パッチ も入れておくといいでしょう。自分も日本語スキーなので、パッチ作者様に感謝です。
ルーターを使用している場合は、SCで使うポート番号をコントロールするPC宛に転送してやる必要があります(ポートフォワード設定)。無数にあるルーターについて解説はできませんので、設定方法は各自で調べてください。
SCのページ から、設定ファイルのテンプレートである custom.zip ファイルをダウンロードして、適当な場所に解凍します。
その中の「helpdesk.txt」が設定ファイルなので、それを書き換えますが、英語より日本語がいいでしょうということで、ケイムズカンパニー様のサンプル を元に改造することにします。
必ず書き換えるべき場所は
[HOST]
遠隔サポートを開始します。ここをダブルクリック。
-connect www.*****.com:5500 -noregistry
部分です。これを自分の環境に合わせて設定します。
例えば、自分のIPアドレスが 123.123.123.123 で、ポート番号に 12312 を使用する場合は、
[HOST]
遠隔サポートを開始します。ここをダブルクリック。
-connect 123.123.123.123:12312 -noregistry
とします。ただIPアドレスが固定でない場合、いちいちIPアドレスが変わる度に実行ファイルを作り直して渡すのも面倒なので、DDNSに登録して、そのアドレスを書いておく方がいいでしょう。
(例) 自分のDDNS名が ddns.name.desu で、ポート番号に 12312 を使用する場合
[HOST]
遠隔サポートを開始します。ここをダブルクリック。
-connect ddns.name.desu:12312 -noregistry
こんな感じ。
これで基本的な設定ファイルはできましたが、このままだと通信内容がそのまま流れてしまうため危険です。OpenVPNなどのVPNと組み合わせる場合以外はやらない方がいいでしょう。ちなみに、私の場合はOpenVPN環境でこの設定にしています(暗号化を2重にしても無駄なオーバーヘッドが発生するだけだと思ったため)。
SCはRC4という共通鍵暗号で通信経路を暗号化できます。ちょっと準備に手間がかかりますが、VPNを使わないなら暗号化は必須といえましょう。
まず、先ほどの「helpdesk.txt」を書き換えます。とはいえ、その先頭に「-plugin」という文字を加えるだけですが。
上で挙げたDDNSの例だと、
[HOST]
遠隔サポートを開始します。ここをダブルクリック。
-plugin -connect ddns.name.desu:12312 -noregistry
こんな感じです。設定ファイルはこれでおしまい。簡単なもんです。
ただ、これだけでは暗号化はできません。暗号に使う暗号鍵を作る必要があります。UltraVNCをインストールしたフォルダに「plugin」というフォルダがあると思いますが、その中にある「MSRC4Plugin_NoReg.dsm」を、UltraVNCをインストールしたフォルダ、則ち1階層上にコピーします。
そして「vncviewer.exe」を実行します。
プログラムが起動したら、そのメニュー画面下方にある「DSMプラグイン使用」チェックボックスにチェックを付け、右の入力欄に「MSRC4Plugin_NoReg.dsm」と入力して、「設定」ボタンを押します。
すると英語の設定画面が出てきますが、その一番下、「Generate New Key file」という欄があり、さらにその中に「40bit 56bit 128bit」と3つのラジオボタンがあります。これは暗号の強さの設定です。通信環境が悪い・PCが遅いといった場合を除いて、基本的にはデフォルトで選ばれている(自分の環境ではそうでした) 128bitを選んで、「Gen Key」ボタンをクリックします。
そうすると、同じフォルダに「new_rc4.key」という名前で暗号キーができていますので(これも自分の場合)、そのファイル名を「rc4.key」に変更します。このファイルは暗号化版の実行ファイルにも必要なので、「custom.zip」を解凍したフォルダにコピーしておきましょう(移動してはいけません。UltraVNCのフォルダにも置いておく必要があります)。
このファイルは「custom.zip」にも含まれていますので、コピーしようとしたときに上書きの確認があるかもしれませんが、構わず上書きしてください。
初めから「rc4.key」が入っているなら、それを使ったらいいんじゃないの? という向きもあるかもしれませんが、一般に広く配布されている暗号キーを使うことはセキュリティ的によろしくないので、面倒でも上記手順で作る事をお勧めします。
これで暗号化の準備はできました。
ダウンロードした custom.zip ファイルの中には、「helpdesk.txt」以外にもいくつかファイルがあったと思います。暗号化なしのSCでは、その中から
background.bmp
helpdesk.txt
icon1.ico
icon2.ico
logo.bmp
のファイルを使います。「helpdesk.txt」はもちろん自分が編集したものを使ってください。
次に、これらのファイルをzip形式に圧縮します。フォルダごとではなく、ファイルだけをまとめて圧縮しましょう。そこまで終わったら、今度は こちらのページ から、実行形式に変換します。
SCは、ユーザーがプログラムを使って変換するのではなく、Webサービスとして提供されています。2種類フォームがありますが、上がUltraVNC RC23をベースとしたもので、下は1.00を元にしたバージョンのようです。
私が試したところ、どちらを使っても接続に問題はありませんでしたが、SC自体も日本語化したい場合は上のRCベースのフォームを使ってください。下のベータ版フォームだと、日本語化ができませんでした。(SC自体の日本語化は最後で触れます)
フォームには上から「ID・パスワード・ファイル」を指定するようになっています。IDとパスワードはWebにも記載がありますが、IDは「foo」・パスワードは「foobar」です。ファイルは先ほど作成したzipファイルを指定します。
以上の指定が終わったら、「クエリ送信」(firefoxでは「実行」)ボタンを押します。しばらく待つと画面が変わり、
「File アップロードしたファイル名 can be downloaded」
という表示が最下部に出ます。「アップロードしたファイル名」部分にはリンクが張られているので、それをクリックすると、作成されたSCの実行ファイルがダウンロードできます。
基本的には暗号化なしの時と同様ですが、zip圧縮するファイルが
background.bmp
helpdesk.txt
icon1.ico
icon2.ico
logo.bmp
rc4.key
となり、暗号化なしの時と比べて「rc4.key」が増えている点が異なります(もちろん「helpdesk.txt」の内容も、暗号化に合わせて書き換える必要があります)。この「rc4.key」ファイルは、上記「SCの設定ファイルを作る(暗号化あり)」で作成したものを用います。
zip圧縮した後の手順は、暗号化しない時と同様なので割愛します。上の内容を参照してください。
あとはこの作成した実行ファイルを遠隔操作したい人に渡し、実行してもらえればOK!……と言いたいところですが、その前にUltraVNCをListenモードで起動しておかないといけません。
相手の人にプログラムを実行してもらう前に、以下のような手順でUltraVNCをListenモードで起動しておきましょう。
暗号化無しの場合は
vncviewer.exe -listen ポート番号
暗号化ありだと
vncviewer.exe -listen ポート番号 -dsmplugin MSRC4Plugin_NoReg.dsm
というオプションで実行します。
実行すると、タスクトレイにUltraVNCビューワーがListenモードで常駐します。それを確認したら、遠隔操作相手にプログラムを実行してもらいましょう。
相手がプログラムを実行し、問題なく接続要求が自分のPCまで届けば、画面に接続を許可するかどうかを問い合わせるダイアログが出ます。相手のPC名等が表示されるので、問題なければ許可してやれば遠隔操作できるようになります。
UltraVNCの日本語化パッチを公開してくださっている方のページ で、SCの日本語化ファイルも配布されています。それをダウンロードしておきましょう。
次に、作成したSCの実行ファイルを 7-Zip 等の7zip形式を扱えるアーカイバで開きます。
後は、ダウンロードした日本語化ファイルに入っている「winvnc.exe」を、SCの実行ファイルに入っている「winvnc.exe」と入れ替えます。入れ替えるというと難しそうに聞こえますが、単にアーカイバに放り込んで圧縮し直すだけです(同名ファイルなので上書きされる=入れ替わる)。
私のテスト環境では Explzh を使用しましたが、RC23ベースのフォームで作ったSCは無事入れ替えができました(1.00ベースのものは、ソリッド圧縮されているようで不可能でしたが)。
以上、駆け足ですがUltraVNC SCの作成方法でした。