自宅ESXiサーバーで安全にクラウドデスクトップだ!

投稿者: | 2013年9月18日

ESXi サーバー上のWindows 7な仮想マシンにリモートデスクトップして、いろいろなところから作業しています。

いろいろなところ・・とは

  1. クライアント先から (WimaxとかLTEとか)
  2. 出先のファストフード(公衆無線LAN)
  3. 事務所のPCから(有線LAN)

などなどです。
3. の場合はいいのですが、1)2)はいわゆるインターネット側からのアクセスなので、素のWindowsにグローバルIPアドレスを直接公開するとセキュリティ的にとてもイヤなので、それなりの対策をとります。

具体的には、

インターネット側PC==========
 | -------  SSH         RDP
 (グローバル IP ) SSH         RDP
 | -------  SSH         RDP
 ゲートウェイサーバ            RDP
 |                           RDP
 (プライベート IP)           RDP
 |                           RDP
 Windows PC 仮想マシン ======

という経路にして、グローバルIP 上での接続はSSHにして、ゲートウェイサーバー上でSSHトンネリング(ポートフォワード)して、Windowsのリモートデスクトップ接続のデータを転送する方法です。※当然ですが、接続元からゲートウェイサーバーまでSSH接続できないと使えません・・。

  • 接続元(リモートデスクトップを使う)PCはWindows
  • ゲートウェイサーバーは FreeBSDな仮想マシン。NICを二つつけた設定にします。
    • グローバルIPアドレスは aaa.bbb.ccc.5
    • プライベートIPアドレスは 192.168.0.5 とします。
    • ログインユーザーは foobar で、接続元サーバーから公開鍵認証でSSHログインできるものとします。
  • 接続先のWindows PC仮想マシンのRDPポートは標準の3389。IPアドレスは192.168.0.100とします。リモートデスクトップはすでに利用可能な状態とします。

という前提で進めます。

まずは、SSHでトンネルを掘ります。Windows の場合は、 SSHトンネリング接続ができるターミナル(渡辺は putty ごった煮版を使っています)で、ssh接続の登録(foobar@a.b.c.5) を行います。つぎに設定で「接続>SSH>トンネル」の画面で、「フォワードするポート一覧」の部分に

  • 源ポート(S) 13389
  • 送り先(I) 192.168.0.5:3389

と登録します。登録が完了すると、「フォワードするポート一覧」に  “L13389      192.168.0.5:3389”  が追加されます。この段階でターミナルを起動してゲートウェイサーバーにアクセスします。

MacOS X でターミナルを動かす場合の例ですが、

$ ssh -L 13389:192.168.0.5:3389 foobar@aaa.bbb.ccc.5

という感じです。これでトンネリングの準備が完了です。

仮想WindowsサーバーにRDP接続をします。ローカル(インターネット側PC)では、ポート13389にRDPで接続すると、グローバルIP aaa.bbb.ccc.5 のサーバーを経由して、プライベートIPの 192.168.0.5 を持つ、Windows PCにポート3389(つまり標準のRDPポート)にアクセスします、という意味です。

これで、ローカル側PCのリモートデスクトップ接続プログラムを起動して、

  • コンピューター: localhost:13392
  • ユーザー: 192.168.0.5 でログインするユーザー名

でログインできます。

コメントを残す