IPv6オプションとTigerVNCでPCを遠隔操作
以前、NTT光系のネットワーク契約時に配布されるIPv6アドレスを使ってIPv4のネットワーク同士をつなげてみました。
IPv4の世界でネットワークをまたいでPCを接続するには、固定IPアドレスを取得するかDDNSを使わないと通信できませんが、IPv6では契約しただけでグローバルなIPアドレスを取得できることを利用したものでした。
前回はネットワーク同士を接続しましたが、今回はPC同士をリモート操作という形でつなげてみたいと思います、これも前述のようなIPv6の恩恵を利用することができます。
既存でIPv6アドレスでインターネットに出ている場合はもちろん、そうでなくともNTT系の光回線で管轄(東西)が同じなら、前回説明したIPv6オプションによって、IPv6アドレスが割り振られますのでそれを利用できます。
設定の流れ
遠隔地のPCを操作するアプリの一つにVNCというものがあります。VNCにはUltraVNCやTigerVNCがあります。TiggerVNCは筆者の個人的な使用感として若干安定しませんが、デフォルトでIPv6が利用できるので今回はこちらを紹介していきます。
ちなみに、 UltraVNCをIPv6に対応させる方法はリンク先記事にて紹介していますので、よろしかったら合わせて読んでみてください。
基本的な流れは、接続したい2台のPCにアプリをインストールして、IPアドレスを使って接続するだけです。
VNCは操作する側とされる側がありますので目的にあったアプリを適切に配置します。
IPv4の場合は、ルーターにポートフォワードの設定をしたり、DDNS等でグローバルなIPアドレスを用意する必要があります。
長期的な運用をする際には、OSのファイウォールやセキュリティ関連についても考えなければいけません。
TigerVNCのインストールと設定
Setup TigerVNC server (Windows)のページを参考にインストールと設定を進めます。
まずVNCアプリの概要を説明します。このアプリは、操作される側のサーバーアプリと、操作する側のクライアントアプリの2種分かれています。
アプリはこちらのページにあります。サーバーアプリは「Microsoft Windows Installers」の項目より、環境にあった方(64bit環境なら64表記のあるもの、そうでなければ表記のないもの)を選んでください。筆者は32ビットですのでtigervnc-1.10.80.exeを選択しました。(バージョンの数値は変わっているかもしれません)
クライアントアプリは「Stand-alone viewer」の項目に存在します。サーバーアプリにはクライアントアプリが同梱されていますが、サーバーアプリが不要な環境にはこちらからダウンロードしたファイルを配置してください。
サーバーアプリをダウンロードしたら、ダブルクリックでインストールを開始します。
基本は案内のある通りに進めていけば問題ありません。チェックボックスが現れたら、次のような基準でチェックボックスを入れるか外すかしてください。
- PC起動時に自動的に接続を受け付ける状態にしたいならチェックを入れてください
- 接続を受け付けたい時のみアプリを手動で立ち上げるならチェックを外してください
チェックをいれると、Windows起動時にサービスとして起動されるようになります。サービスとして起動すると、ログオン画面でもVNC操作が可能です。
インストールが終わったらWindowsを再起動をして下さい。
再起動後は、チェックを入れた場合はタスクトレイにアプリのアイコンが表示されます。そうでない場合は、スタートメニューから「TigerVNC」「Run VNC Server」から実行するとタスクトレイに入ります。
タスクトレイから右クリックで「Options...」を選択します。真ん中あたりの「Authentication」というタイトルで囲まれた「Configure」のボタンを押します。出てきたウインドウにパスワードを設定します。上下同じものを入力してください。
通常のVNCのパスワードは8文字までとなっています。8文字以上入力しても以降の文字は無視されます。また、通信経路中では通信の暗号化はされないので、盗聴に注意が必要になります。
もし外部から盗み見られて困るような内容の操作をする場合は、IPSecで接続したネットワーク上や、セキュアなネットワークを構築するフリーツールOpenVPNでネットワークを構築した上でVNCを利用します
パスワードの設定を終えると、外部から接続できる状態になります。自分のPCからは接続できないので、ほかのPCを用意してクライアントアプリを使って接続してみましょう。サーバーもクライアントもローカルアドレスにいる際は、グローバルなアドレスを用意しなくてもいいので、IPv4使って接続することができます。
クライアントアプリは、サーバーをインストールした場合は、スタートメニューから「Tiger VNC」「TigerVNC Veiwer」で起動します。単独のアプリをダウンロードした場合は、それをダブルクリックすることで起動します。
起動したら、IPアドレスを入力して「Connect」を押します。パスワードを求められます。設定したパスワードを入力して「OK」を押すと、操作される側の画面が表示されます。
IPアドレスは「スタートメニュー」「Windowsシステムツール」「コマンドプロンプト」から確認できます。「ipconfig /all」と打ち込んで出てきたIPv6アドレスで接続してください。この時アドレス内の%以降の表記は入力しません。
>ipconfig /all
イーサネット アダプター イーサネット:
接続固有の DNS サフィックス ...
説明...
...
IPv6 アドレス... 2001:xxxx:...:yyyy
IPv6アドレスには、「リンクローカル」「一時」といった名前がついているものがあります。2台のパソコンが自分の家にある場合は「リンクローカル」を使って接続ができます。「一時」はセキュリティ的な理由から下位の桁が変わるアドレスなのでVNCの運用には向きません。
接続できない場合は、コマンドプロンプトでPingを送信する等してアドレスに間違いがないか確認します。アドレスに間違いがないなら、一旦ファイアウォールをオフにして、接続できるか試してみましょう。
フ-*ァイアウォールをオフにするには、「スタートメニュー」「Windowsシステムツール」「コントロールパネル」「システムとセキュリティ」「Windows Defender ファイアウォール」と進み、「ファイアウォールの有効化または無効化」で表示されるファイアウォールの設定をすべてオフにします。
オフにした時にだけ接続が可能なようなら、ファイアウォールの設定が接続できない原因です。再びファイアウォールをオンにして次の項目を確認します。(ファイアウォールをオフにしても接続できない場合でも、原因究明の後はオンに戻してください。)
ファイアウォールがオフの時にだけ接続できるよなら、まずネットワークがプライベート(Private)になっているか確認しましょう。なっていなかったら修正します。Windowsネットワークをパブリックからプライベートにするには、「設定」「ネットワークとインターネット」と進み、Wi-Fiまたは、イーサネットの使用中の方を選択してください。そこからネットワークを選択すると、オプションボタンが表示されます。
それでも、通信できない場合はファイアウォールのルールで禁止されていないかチェックします。先ほどのコントロールパネルの「Windows Defender ファイアウォール」のページの「詳細設定」をクリックします。ファイアウォールの設定にはいろいろあり、チェックすべき項目は網羅できませんが、その一つに「受信の規則」内の「vnc5900」という項目があります。これが赤色の禁止のマークになっていたら、ダブルクリックして「通信を許可する」とします。VNCアプリが通常使用するポート5900の通信を許可する設定です。そのためアプリの設定により5900番ポートでないものを利用した場合はファイアウォールの許可するポートもそれに合わせる必要があります。
ファイアウォールはPCだけでなくルーターにもありますので、そちらではじかれているという可能性もあります。また、ウイルス対策ソフトが原因の場合もあります。
また、筆者も遭遇したのですが、パスワード画面まで進むけれど、そのあとの画面が現れない場合は、プログラムの不具合の場合があります。違うバージョンを試してみてください。筆者の環境では別の場所からダウンロードしたVer1.10.1では正常に動きませんでした。
セキュリティの設定
もし遠隔地に住む家族と、継続的なネットワークを設定しておきたいといった場合には今回設定したIPv6アドレスを保持する形になりますが、IPv6オプションを使って、PCまでIPv6アドレスを配布すると外部の人もそのPCにアクセスする道を作ることになります。それは少し危険だと思いますので、ルーター側でファイアウォールを設定します。
Buffallo製品では、ND Proxyという機能と、IPv6フィルターを用います。ND Proxyは「Internet IPv6」の項目に選択項目として存在しますので、それを選択します。その後、「セキュリティー」「IPv6フィルター」の項目からフィルターを登録します。この製品のフィルターでは上から順にチェックしていき最初に一致したルールを採用するので、最後にすべてを拒否する設定を入れてその上に許可対象のルールを登録します。
このIPv6フィルターはND Proxyでなくても設定自体は可能ですが、「パススルー」モードだとフィルターが機能しません。逆にND Proxyだけ設定してフィルターの設定をしなくい場合は、ステートフルインスペクション(動的なフィルター)として機能するため相手からの接続要求に対して応答できません。
参考画像では相手先からのICMP(Ping)だけ受け付ける設定となっていますが、TCPとUDPのポート5900番のエントリーを作ります。IPアドレスの部分は、操作する側のIPアドレスか、そのPCが存在するネットワークを入力します。ネットワークを入力する際は、例えば2001:xxxx:yyyyy:zzzzネットワークなら2001:xxxx:yyyy:zzzz/64という表記になります。宛先側は空欄(すべて)か操作されるPCのIPアドレスになります。