※ 本記事の内容は 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 を起動し、メニューから [ファイル] - [スナップインの追加と削除] を選択します。
-
適用範囲にあわせてユーザーアカウントもしくはコンピューターアカウントを選択します。ここではユーザーアカウントを選択しています。
-
[信頼されたルート証明機関] - [証明書] を選択し、メニューより [操作] - [すべてのタスク] - [インポート] を選択します。
##接続確認