仙石浩明の日記

2006年5月9日

盗まれたノートPC を外部から操作する方法 (VPN-Warp 応用編 2) hatena_b

VPN-Warp の応用例の第一回目は、 ノートPC に VPN-Warp の relayagent をインストールしておくことによって、 そのノートPC が万一盗まれたり紛失したりしたときに、 外部から操作できるようにしておく方法の紹介です。

VPN-Warp の使い方の基本的なところを説明した、
VPN-Warp 入門編 6 回シリーズも合わせてご参照下さい:

  • 入門編 (1) VPN-Warp の特長: ふつうの SSL VPN と比べて
  • 入門編 (2) VPN-Warp の特長: ssh のポートフォワードと比べて
  • 入門編 (3) stone & relayagent の設定方法
  • 入門編 (4) stone の代わりに OpenSSL の s_client を使ってみる
  • 入門編 (5) stone の代わりに普通の WWW ブラウザを使ってみる
  • 入門編 (6) WWW ブラウザを使う場合の注意点
  • 応用編 (1) VPN-Warp 試用ライセンス提供開始のお知らせ

relayagent をノートPC にインストールしておくと、 常にリレーサーバに対して https アクセスを試みます。 もちろん、ネットワークにつながっていなければアクセスは失敗するわけですが、 きょうび PC をネットワークにつながずに使うというのは、 かなりレアケースと言えるのではないでしょうか。 何をするにも WWW へのアクセスは必須ですからね~。

で、WWW へアクセスすることができる環境 (正確に言うと https へアクセスできる環境) でありさえすれば、 たとえファイアウォールの中であろうと、 relayagent はリレーサーバに接続することができます。

そして、relayagent がリレーサーバに接続しさえすれば、 そのノートPC がどこにあろうと、リモートから操作することができます。 例えば Windows 標準のリモート デスクトップや、 VNCなどの リモート コントロール ソフトウェアを使って、 例えば重要ファイルを (漏洩する前に) 消すなり、 ハードディスクごと消去してしまうなりできるでしょう。 あるいは、 そのノートPC を拾った人へのメッセージをデスクトップに表示しておくことにより、 もしかしたら返してもらえるかもしれません。

というわけで、早速設定方法です。 まず relayagent の設定ファイルは次のようになります。

-c "C:/Program Files/KLab Security/VPNワープ relayエージェント/user.pem"
-k "C:/Program Files/KLab Security/VPNワープ relayエージェント/user.pem"
-n
relay.klab.org:443 localhost:3389

「-c」オプション、「-k」オプションで、 それぞれ公開鍵と秘密鍵 (この場合は同じファイル名ですね) を指定し、 「-n」オプションは、 relayagent をポートフォワーダとして使うための設定ですね (入門編 (3) を参照してください)。 フォワード先は、「localhost:3389」つまり リモート デスクトップ サーバのポートです。 VNC を利用する場合は、3389番ポートの代わりに 5900番ポートなどを指定することになるでしょう。

設定ファイルである「C:\Program Files\KLab Security\VPNワープ relayエージェント\relayagent.cfg」を 直接編集してもいいのですが、 Windows 版 relayagent では、 「コントロールパネル」の「プログラムの追加と削除」から 「VPNワープ relayエージェント」の「変更」を行なうことで GUI で設定変更することもできます。 この場合、設定ウィザードが表示されますから、

対象サーバ:      localhost
対象ポート:      3389
relay サーバ:    relay.klab.org

HTTP 以外のプロトコルを中継する

公開鍵:  C:/Program Files/KLab Security/VPNワープ relayエージェント/user.pem
秘密鍵:  C:/Program Files/KLab Security/VPNワープ relayエージェント/user.pem

を、それぞれ指定することにより、設定ファイルの変更が行なわれます。 あとは、「コンピュータの管理」の「サービス」で 「Relay Agent Service」を「開始」するか、 あるいは Windows を再起動するだけです。 これで、ノートPC 側の設定は全て完了です。

次に、このノートPC を外部からコントロールする側の PC (ここではデスクトップPC と呼ぶことにしましょう) の設定です。 設定といっても、stone を以下の設定で実行するだけです:

-q cert=user.pem
-q key=user.pem
relay.klab.org:443/ssl,http localhost:3388 "GET / HTTP/1.1"

SSL証明書 user.pem は、relayagent の設定で使ったものと同じものを使います。

これで、デスクトップPC の 3388番ポートが、 ノートPC の 3389番ポートへ、フォワードされます。 しかも、ノートPC がどこにあろうと、間にファイアウォールがあろうと、 ノートPC から WWW へアクセスできる限り、ポートフォワードが常に行なわれます。

したがって、あとはデスクトップPC 上で「リモート デスクトップ接続」を 実行して「localhost:3388」へ接続すれば、 ノートPC を自在に操作できるというわけです。 今回紹介した例では「リモート デスクトップ」を使いましたが、 「VNC」やその他のリモート コントロール ソフトウェアでも全く同様に 使うことができます。 また、SSL 証明書は前述したようなファイル(user.pem) で置いておくのではなく、 Windows の証明書ストアや、USBトークン、ICカードなどの、 よりセキュアな場所に置いて利用することもできます。

Filed under: システム構築・運用 — hiroaki_sengoku @ 09:54

No Comments »

No comments yet.

RSS feed for comments on this post.

Leave a comment