30代後半で転職したSEのブログ

転職の経験談、IT技術情報など紹介していきます。

リモートデスクトップのプロキシ越え

Azureなどのクラウド環境にWindowsOSを立ち上げると、インターネット経由でリモートデスクトップ接続することになります。会社のネットワークからインターネットにアクセスする場合はプロキシサーバーやファイアウォールを経由する構成になっていることが多く、通常httpやhttps以外のプロトコルはブロックされていると思います。そのため、会社のネットワークからAzure上のWindowsリモートデスクトップでアクセスすることはなかなか難しいです。

結局はプロキシ越えはできなかったのですが、惜しいところまで行けましたので、まとめておこうと思います。

こんな構成だったら成功したはず

RDP over httpsなどでググると解説いただいているページを見かけるかと思います。今回試した方法はRemote Desktop Gateway(以下RD Gateway)を踏み台にして、目的となるサーバにアクセスする方法です。
ネットワーク構成が以下のようなものであれば、アクセスは成功したかと思います。

自分の端末 > ファイアウォール > RD Gateway > ターゲットのサーバ

自分の端末からRD Gateway経由でリモートデスクトップ接続をすると、ファイアウォールhttps(443)のポートで通過するようになります。自分の端末から直接、ターゲットのサーバにリモデでアクセスしようとすると通常はrdp(3389)のポートでアクセスしようとするため、ファイアウォールでブロックされることになります。

こんな構成でもいけるはず

AzureであればAzure Load Balancerを使って以下のような構成もできるはずです。

自分の端末 > ファイアウォール > Azure Load Balancer > ターゲットのサーバ

NAT機能を利用して、Azure Load Balancerがhttps(443)で受け付けて、rdp(3389)に変換するという方式にします。
この構成であれば、RD Gatewayを設定するよりも短時間に設定できます。mstsc上でターゲットのサーバのIPアドレスを指定する際に、IPアドレス:443 と指定すればいけるはずです。

今回NGだった原因

それは、mstscがプロキシ経由で通信してくれなかったからです。
今回試した構成は以下のようなものでした。

自分の端末 > プロキシ > ファイアウォール > RD Gateway > ターゲットのサーバ

mstscがRD Gateway経由でターゲットのサーバにアクセスするように設定はできるのですが、アクセスしようとするとプロキシを経由せずにRD Gatewayにアクセスしようとしてファイアウォールでブロックされてしまいました。
Windows 8の事例ですが、IEのプロキシ設定がmstscのプロキシ設定に反映されるという記事をみかけてやってみたのですが、どうやってもプロキシを経由してくれませんでした。

mstscでプロキシを明示的に設定できると嬉しいのですが。。。