※ 本記事の内容は Azure Bastion サービスの登場により、新サービスでカバーできる内容となりました。今後 HTTPS 通信にて RDP, SSH 接続を実施したい方は、Azure Bastion の利用を推奨します。
概要
企業内ネットワークの多くは、外部へのリモートデスクトップ接続 (RDP 3389) を許可していません。このため社内 LAN よりクラウド上の仮想マシン (Windows Server) へ管理接続が張れるずに困る事があります。今回は、仮想ネットワーク上に 1 台の Remote Desktop Gateway (RD Gateway) をデプロイする事で、この問題の解決方法をご案内します。
RD Gateway はリモートデスクトップ接続の仲介役として機能し、クライアントからの RDP 要求を HTTPS 443 ポートで受けた後、内部ネットワークにいるターゲットサーバーに RDP 3389 ポートでつなぐ役目をします。これにより内部ネットワークにいる VM はインターネットに直接公開する事なくクライアントからのリモートデスクトップ接続をゲートウェイ経由で受け入れる事が可能となります。
構築手順
事前の注意点として RD Gateway の構築だけは通常のリモートデスクトップ接続 RDP:3389 が可能なオンプレミス環境から実施する必要があります。一度 RD Gateway の構築さえ完了してしまえば、企業内ネットワークから Azure クラウドへの接続は HTTPS 443 ポート通信のみで管理可能となります。
ここでは基本的な仮想マシンや仮想ネットワークのデプロイ手順は割愛していますが、新規に環境を構築する場合として、最初に仮想ネットワークにデプロイした Windows Server 2016 を RD Gateway として構成する手順を紹介します。
RD Gateway の構築
Remote Desktop Services の役割として Remote Desktop Gateway のみ選択します。
インストールが完了後 Server Manager より Remote Desktop Gateway Manager を起動します。
証明書の FQDN を設定します。これは RDGateway の Public IP に設定した DNS 名と一致させます。
※ Azure ポータルにて RDGateway の Public IP に DNS 名を設定するのは下記となります。既に他人に利用されている名前は使用できませんので、先に DNS 名の設定を行った後に自己証明書を作成します。
Connection Authorization Policy の設定を行います。
ポリシー名を入れ、RD Gateway への接続許可ユーザーグループを設定します。ここではローカル Administrators グループを設定しています。
次に Resource Authorization Policy の設定を行います。
ポリシー名を入れ、ターゲットのサーバーへアクセスを許可するユーザーグループを指定します。また今回は AD 不在の環境で構築しているため指定ユーザーに全てのネットワーク上のリソースへのアクセスを許可します。
最後に RD Gateway ネットワークの NSG (Network Security Group) 設定にて、受信側の HTTPS(443) を許可します。最終的には RDP(3389) の受信ルールは不要なため削除出来ますが、最終検証が完了してから削除した方がベターかと思われます。
管理証明書のエクスポート
事前にクライアント端末にインストールする SSL 証明書を RDGateway サーバー側でエクスポートします。mmc.exe を起動し、[File] - [Add/Remove Snap-ins] より コンピュータアカウントで [Certificates] を追加します。自己証明書の右クリックメニューよりエクスポートします。エクスポートウィザードは全て既定の設定で実行します。
.cer ファイルが出力されますので、これをクライアント端末にコピーします。リモートデスクトップ接続では、コピー、ペーストでファイルをリモート端末へコピーできます。
クライアント端末の構成
クライアント端末で mmc.exe を起動し、メニューから [ファイル] - [スナップインの追加と削除] を選択します。
適用範囲にあわせてユーザーアカウントもしくはコンピューターアカウントを選択します。ここではユーザーアカウントを選択しています。
[信頼されたルート証明機関] - [証明書] を選択し、メニューより [操作] - [すべてのタスク] - [インポート] を選択します。