Azure
SSL
RemoteDesktop
RDP
リモートデスクトップ

HTTPS 通信で Azure VM のリモートデスクトップ接続

More than 1 year has passed since last update.

概要

 企業内ネットワークの多くは、外部へのリモートデスクトップ接続 (RDP 3389) を許可していません。このため社内 LAN よりクラウド上の仮想マシン (Windows Server) へ管理接続が張れるずに困る事があります。今回は、仮想ネットワーク上に 1 台の Remote Desktop Gateway (RD Gateway) をデプロイする事で、この問題の解決方法をご案内します。

 RD Gateway はリモートデスクトップ接続の仲介役として機能し、クライアントからの RDP 要求を HTTPS 443 ポートで受けた後、内部ネットワークにいるターゲットサーバーに RDP 3389 ポートでつなぐ役目をします。これにより内部ネットワークにいる VM はインターネットに直接公開する事なくクライアントからのリモートデスクトップ接続をゲートウェイ経由で受け入れる事が可能となります。
RD-Gateway.png

構築手順

 事前の注意点として RD Gateway の構築だけは通常のリモートデスクトップ接続 RDP:3389 が可能なオンプレミス環境から実施する必要があります。一度 RD Gateway の構築さえ完了してしまえば、企業内ネットワークから Azure クラウドへの接続は HTTPS 443 ポート通信のみで管理可能となります。

 ここでは基本的な仮想マシンや仮想ネットワークのデプロイ手順は割愛していますが、新規に環境を構築する場合として、最初に仮想ネットワークにデプロイした Windows Server 2016 を RD Gateway として構成する手順を紹介します。

RD Gateway の構築

  1. RD Gateway は Windows Server の役割と機能の追加より導入します。
    image.png
     

  2. Remote Desktop Services の役割として Remote Desktop Gateway のみ選択します。
    image.png
     

  3. その他は全て既定値のまま進みインストールを開始します。
    image.png
     

  4. インストールが完了後 Server Manager より Remote Desktop Gateway Manager を起動します。
    image.png
     

  5. RD Gateway Manager で、HTTPS 通信用の証明書を構成します。
    image.png
     

  6. 今回は自己証明書の作成を選択します。
    image.png
     

  7. 証明書の FQDN を設定します。これは RDGateway の Public IP に設定した DNS 名と一致させます。
    image.png
     
    ※ Azure ポータルにて RDGateway の Public IP に DNS 名を設定するのは下記となります。既に他人に利用されている名前は使用できませんので、先に DNS 名の設定を行った後に自己証明書を作成します。
    image.png
     

  8. Connection Authorization Policy の設定を行います。
    image.png
     
    ポリシー名を入れ、RD Gateway への接続許可ユーザーグループを設定します。ここではローカル Administrators グループを設定しています。
    image.png
     

  9. 次に Resource Authorization Policy の設定を行います。
    image.png
     
    ポリシー名を入れ、ターゲットのサーバーへアクセスを許可するユーザーグループを指定します。また今回は AD 不在の環境で構築しているため指定ユーザーに全てのネットワーク上のリソースへのアクセスを許可します。
    image.png
     

  10. 最後に RD Gateway ネットワークの NSG (Network Security Group) 設定にて、受信側の HTTPS(443) を許可します。最終的には RDP(3389) の受信ルールは不要なため削除出来ますが、最終検証が完了してから削除した方がベターかと思われます。
    image.png

管理証明書のエクスポート

 事前にクライアント端末にインストールする SSL 証明書を RDGateway サーバー側でエクスポートします。mmc.exe を起動し、[File] - [Add/Remove Snap-ins] より コンピュータアカウントで [Certificates] を追加します。自己証明書の右クリックメニューよりエクスポートします。エクスポートウィザードは全て既定の設定で実行します。
image.png

 .cer ファイルが出力されますので、これをクライアント端末にコピーします。リモートデスクトップ接続では、コピー、ペーストでファイルをリモート端末へコピーできます。

クライアント端末の構成

  1. クライアント端末で mmc.exe を起動し、メニューから [ファイル] - [スナップインの追加と削除] を選択します。
    image.png
     

  2. 利用できるスナップインから [証明書] を追加します。
    image.png
     

  3. 適用範囲にあわせてユーザーアカウントもしくはコンピューターアカウントを選択します。ここではユーザーアカウントを選択しています。
    image.png
     

  4. [信頼されたルート証明機関] - [証明書] を選択し、メニューより [操作] - [すべてのタスク] - [インポート] を選択します。
    image.png
     

  5. 証明書のインポートウィザードが起動してくるので、事前にエクスポートした .cer ファイルを指定します。
    image.png
     

  6. 続けて、既定の [信頼されたルート証明機関] のまま続行し、完了します。
    image.png

接続確認

  1. リモートデスクトップ接続 (mstsc.exe) を起動します。オプションの表示をし、[詳細設定] タブを選択します。
    image.png
     

  2. [設定] ボタンを押し、RD ゲートウェイの指定をします。
    image.png
     

  3. [全般] タブに戻り、接続先のコンピューター名とユーザー名を入力し、[接続] ボタンを押します。
    image.png
     

  4. 最初に RD ゲートウェイサーバーへの認証情報が聞かれるので、まずはターゲットコンピュータでなく、RD ゲートウェイサーバーへの接続資格情報を入力します。ここではローカルの Administrator (= Azure の場合、RD Gateway VM をデプロイする際に指定したユーザー)を入力します。
    image.png
     

  5. 続けてターゲットサーバーへの資格情報が聞かれます。
    image.png
     

  6. 成功するとリモートデスクトップでの接続が完了します。
    image.png