[AWS] HTTPプロキシ経由でEC2(Windows)へリモートデスクトップ接続


Create: 2012/11/08
LastUpdate: 2012/11/08

企業などでEC2インスタンスを利用する場合、ファイヤーウォールに阻まれて、社内からは、直接、リモートデスクトップ接続できない場合があります。

そんな場合でも、HTTPプロキシサーバがあれば、プロキシ経由でリモートデスクトップ接続できる場合があります。

下図は接続のイメージです。
WindowsをインストールしたEC2インスタンスに、SSHトンネルを使って、HTTPプロキシ経由で接続します。



会社側のリモートデスクトップの直接の通信相手は、PuTTY になります。PuTTY はAWSのEC2インスタンス(AmazonLinux)とSSH接続しています。
赤い部分のSSH接続の中にリモートデスクトップ用のパケットを流してAWSのWindowsと通信を行います。

ここでの手順確認に使用するプロキシサーバは、 ユーザ認証を必要とします。
HTTPで connect が許可されていないプロキシの場合は失敗するので、SSHのポートを443にしてHTTPSで通信するようにします。

[プロキシサーバ]
  • IPアドレス:192.168.1.82
  • ポート:8080
  • ユーザ:canopus
  • パスワード:password
  • 特記事項: CONNECTの使用許可があること

リモートデスクトップの手順は以下のサイトを参考にしました。

1.AWS側の作業


1.1.EC2インスタンス(AmazonLinux)の起動


PuttyからSSH接続する相手になるEC2インスタンスを起動します。

今回は、 AmazonLinux を使用します。
このAmazonLinuxのSSHサーバの設定を変更してパケットの転送を許可します。
/etc/ssh/ssh_config を以下のように修正します。
AllowTcpForwarding yes
sshサービスを再起動します。
$ sudo service sshd restart 
このEC2インスタンスのセキュリティ・グループは以下のとおり。SSHのポートを空けています。



1.2.EC2インスタンス(Windows)の起動


リモートデスクトップ接続する相手になるEC2インスタンスを起動します。
今回は、 Windows2003Server を使用します。
このEC2インスタンスのセキュリティグループは以下のとおり。RDPのポートを空けています。



2.クライアント側の作業


2.1.Putty のSSHポートフォワーディング接続


PuTTYを起動します。
下図の画面が表示されたら、EC2インスタンス(AmazonLinux)のホスト名を入力します。



下図の画面では、プロキシサーバの情報を入力します。



下図の画面では、 Putty用に変換したキーペア(秘密鍵) を入力します。



下図の画面では、ポートフォワーディングの設定を行います。
[源ポート] は、リモートデスクトップ・クライアントの接続先ポートになります。
ローカルの未使用ポート番号なら何でもOKです。
[送り先]は、SSHサーバ側(AmazonLinux)が、どこにパケットを転送するか指定します。
ここでは、EC2インスタンス(Windows)のプライベートIPとRDPのポート番号を指定しています。
[追加]ボタンをクリックして登録します。



下図のように表示されれば、ポートフォワーディングの設定はOKです。



[開く]ボタンをクリックします。
下図のように、AmazonLinux のユーザを入力して接続できればOKです。
このままSSH接続を切らずに置いておきます。



2.2.リモートデスクトップ接続


リモートデスクトップ・クライアントを起動します。
下図の画面が表示されたら、[コンピュータ]に "localhost:13389" と入力して、上記のPutty を指定します。
[接続]ボタンをクリックします。



下図の画面が表示されたら成功です。
EC2インスタンス(Windows)のユーザ/パスワードでログインして使用できます。





■補足

SSHサービスを変更できない場合は、多段のSSHポート転送で代用できます