Linuxのsshdを利用してWindows RDP(リモートデスクトップ)にVPN接続する方法

Linuxのsshdは、実はSSH転送という機能がありまして、DMZにsshd接続できるLinuxサーバーがあれば、内部のWindowsサーバーにVPN接続のようなSSH転送という接続が出来るのをご存知でしょうか?
VPNクライアントが無くてもSSHDで似たようなトンネル接続が実現できます。

以下のような環境で、説明します。

 

環境・前提条件

  • DMZ上にssh接続が可能なLinux (centos7)
  • 内部ネットワークに外部接続していないWindows Server 2016 (centosからは通信が出来る)

という環境で、Windowsサーバーにリモートデスクトップアクセスさせる方法になります。

LinuxのSSHD経由でWindows RDP接続手順説明

image

パソコンから、Windowsサーバーに直接RDP接続出来ているように見えますが、実際はもちろん直接接続しているわけでは無く、ネットワーク接続的には

  • パソコン→LinuxへSSH接続のセッション
  • Linux→Windowsサーバーへ3389(RDP)接続のセッション

そのセッションの中を、パソコンからの通信がトンネルしているようなイメージにします。

 

1、パソコンからLinuxにSSH接続する

image

まずは、LinuxのグローバルIPアドレスにいつも通りTera TermでSSH接続しログインします。
今回はAWS上のLinuxで、Linuxのアドレスは

  • グローバルIPアドレスは18.x.x.x
  • ローカルIPアドレスが10.x.x.x

です。

※ netstatは最終的にRDP接続した時の情報です。
LinuxとWindowsサーバーのRDPセッションということがわかりました。

 

2、Tera Term内でSSH転送設定をする。パソコンのlocalhostにポートバインド

image

パソコン上のSSH接続したTera Term画面の「設定」から「SSH転送」をクリックします。

image

SSHポート転送画面に

  • ローカルのポート:パソコンのローカルアドレスにWindows RDPをマッピングするためのポートアドレス
  • リモート側ホスト:Windows サーバーのローカルアドレス
  • ポート:Window サーバーのリモートデスクトップポート(3389)

を入力し、OKボタンを押します。

さらにOKボタンを押します。

 

3、パソコンのlocalhost:ポートへRDP接続(リモートデスクトップ接続)する

image

2番の操作で、パソコンのlocalhost(127.0.0.1)に先ほど設定した「ローカルのポート」(13389)でポートがListenされたことが確認できます。
こちらのポートに対し、パソコンからリモートデスクトップ接続をすると

image

パソコンからWindowsサーバーにまるで直接リモートデスクトップ接続できてるかのように
SSH接続を経由してポートがリダイレクトされます。

パソコンから直接接続出来ないWindowsサーバーへ接続出来ていることを確認してみてください。

image

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です