もう1つのDesktop VPN:Teratermのポートフォワード(ssh) + リモートデスクトップ

Posted on 2008年07月08日 | Comment (0) | TrackBack (0)

PacketiX Desktop VPN って商用サービスになってたんですね...。(今頃気づくなと-汗)

しばらく外部からのリモートデスクトップを利用するような機会がなかったのですっかり忘れていたのですが、改めて使うとやっぱり便利です。これは。

NATルーターの下にいるようなWindows機に対し、外部から安全にリモートデスクトップ接続ができるようになります。つまりは外出先から自宅パソコンが操作できるって代物。 昔書いた記事はこっち

このソフトウェアの価値はよく理解しているつもりですが、それでもやはり有料なのは痛いです。
僕の場合はこれを使うことで何かコストが削減できるとか、より収益が上がるとか、、そーいう状況に置かれているわけではないんですよね。利用頻度も低いんだし、遊びは遊びらしく、タダでやらないと。
もちろんそういう状況がめぐってくれば、積極的に活用したいですが。

お金をかけずにDesktop VPNもどき

たくさんの方法があります。
ただしDesktop VPNとこれらのものが違うのは、

  • 操作が難しくなる。
というあたりで。
それ専用に特化した商用ソフトと、汎用ツールの組み合わせですから、まぁ当然ですね。

今回紹介するのは、その中でも最もお手軽だと思われる、TeraTermのポートフォワードを使ったリモートデスクトップ接続。

必要なものと想定する環境

Desktop VPNが「Windows単機で待ちうけ、Windows 単機で接続」なのに対し、sshポートフォワードを使った接続では、追加で待ちうけ側にsshdを起動したUNIXマシンが1つ必要です。

今回は別にUNIXマシンがある前提でいきますが、待ちうけWindows側にOpenSSHやCygwinなんかを入れて、Windows単機で待たせることもできるかもしれません。VMware上のLinuxでもいいですね。お好きな方法で。

次のような環境を想定しています。
右側のノートパソコンは直接インターネットにつながってますが、NAT箱の下でも大丈夫です。

概要

クライアントから自宅のunixに対しsshのポートフォワーディングを利用したトンネルを掘り、クライアントから自宅Windows機にリモートデスクトップ接続を行います。

ポートフォワードは、

ローカルの特定ポートを、リモートの特定ポートに割り当てる
という機能で、今回の場合はUNIXマシンを中継し、クライアントの 13389 ポートを、自宅Windows機の3389(リモートデスクトップのポート)に割り付けています。
この状態でクライアントから localhost:13389 に対しリモートデスクトップ接続を行うと、自宅のWindowsに接続されると、そういうわけです。

これにより、

  • カタい認証
  • 暗号化通信路
が実現され、Desktop VPNと似たような安全性と使い勝手を得ることができます。

ちなみにsshならなんでも堅牢かっていうとそーではないので、公開鍵方式の認証にするなどの工夫は必要です。ID,Password方式だと暗号化の点で有利なだけで、総当りでこられるとtelnetと変わりませんので。

自宅Windows機の準備

リモートデスクトップ接続が行えるようにします。
よくあるハマリどころとしては、インターネットセキュリティ等のソフトがリモート接続のパケットを遮断するというもの。

ポートフォワードを利用していますので、自宅Windowsから見た接続元は UNIX マシンになります。そこからのリモートデスクトップを許可するように、予め設定しておきましょう。(設定方法はソフトによって違うので省略!)

自宅UNIX機の準備

sshdを起動させ、ssh接続可能なようにします。
特にハマリどころはないと思うのですが、root でのログイン許可や、カラパスワードの許可、そのあたりが不許可になっていることを確認すると良いでしょう。
よく分かっているなら、公開鍵認証にするとなお良いです。

自宅ルーターの設定

ルーター宛のsshパケット(22/TCP)をUNIXマシンに転送する設定をします。僕はこれもポートフォワードと呼んでいますが、ルーターの設定画面では静的IPマスカレードという表現になってます。
メーカーによって言い回しはいろいろのようです。

クライアントの設定

UTF-8 TeraTerm Pro を入れます。


やってみる


その1:ssh接続とポートフォワード

クライアントのTeraTermから自宅UNIXに対しssh接続をします。
ログインできたら、[設定]-[SSH転送] からポートフォワードの設定を行います。

自宅WindowsのIPアドレスが 192.168.0.10 だと仮定すると、設定はこんな感じ。

この設定を行うと、localhost(クライアント)の13389番ポートへのアクセスが自宅Windowsの3389番ポートへ転送されるようになります :)

その2:リモートデスクトップでつなぐ

localhost:13389 に対し、リモートデスクトップ接続を行います。

あーら不思議? 自宅Windowsの画面が出てきます。

TeraTerm を終了してしまうとポートフォワードも解除されてしまうので、リモートデスクトップ接続を行っている最中はログインしたままにします。

一部動かない環境もあります

sshのポートフォワードを使ったリモートデスクトップは、クライアントが自宅に対しssh接続を行えることが前提となっています。よって、sshでの外部アクセスが禁止されているような環境では利用することができません。

僕の場合、「外出先」というのはほとんどの場合友人の家で、sshアクセスは自由に行ます。ので不自由はないのですが、どうしてもsshできない環境から接続したい場合は、、素直にDesktop VPNを使った方がいいと思います。
こちらはhttpsに乗せて通信、さらに中継ノード経由しての通信なので、ほぼ間違いなくどんな環境からでも利用できます。

まぁ、無料でできないこともないんです。stone を使ってhttpsなトンネルを作ると動きますが、やや難易度が上がりますので...。

トピック

トラックバック

このエントリーのトラックバックURL:

コメント

コメントフォームに記入し投稿してください

初コメントのときは、このてらかどの承認が必要になります。承認されるまでコメントは表示されません。そのときはしばらく待ってください :)





Recent Entries
Archives
Feed
Search

Powered by

Valid CSS!