RD Gateway経由でAmazon EC2のWindowsインスタンスに接続してみる

通常、EC2 Windowsインスタンスに接続するためには、通常リモートデスクトッププロトコル(RDP)を使用します。RDPはデフォルトではTCPポートの3389番を使用しているため、ファイヤーウォール経由での接続ではこのポートをオープンしておく必要があります。しかし、企業のファイヤーウォールなどではセキュリティ上の理由などからなかなかRDPのポートをオープンすることがむずかしいと言われることがありました。そこで、リモートデスクトップゲートウェイ(RD Gateway)経由でSSL(HTTPS)を使用してWindowsインスタンスに接続できるかどうかためしてみました。

まず、RD Gateway用のWindowsインスタンスを立ち上げてElastic IPアドレス(EIP)を割り当てておきます。このとき、RD Gateway用のWindowsインスタンスにはまだ通常通りリモートデスクトップ接続を使用して接続する必要があります。サーバーマネージャーから、「役割の追加」を選択して役割の追加ウィザードを開始して、役割として「リモートデスクトップサービス」を追加します。

image

「役割サービスの選択」では、「リモートデスクトップゲートウェイ」のみにチェックをつけて次に進みます。ほかの役割サービスについてはチェックする必要はありません。

image

リモートデスクトップゲートウェイの前提として、「Webサーバー(IIS)」と「ネットワクポリシーとアクセスサービス」、「リモートサーバー管理ツール」が必要になることがわかります。「必要な役割サービスを追加」をクリックすることで、これらの役割サービスをまとめてインストールすることができます。

image

SSL暗号化用のサーバー認証証明書の選択を行います。外部の証明機関(CA)で発行された証明書がある場合は、ここでインポートすることができます。あるいは、SSL暗号化用の自己署名証明書を作成することもできますが、どちらの場合でも証明書のサブジェクト名はこのサーバーのFQDNと一致している必要があることに注意してください。ここでは、「SSL暗号化の証明書を後で選択する」を選択して次に進みます。

image

RDゲートウェイの承認ポリシーの作成を行います。リモートデスクトップの接続承認ポリシー(RD CAP)では、RD Gatewayサーバーに接続できるユーザーを指定することができます。また、リモートデスクトップのリソース承認ポリシー(RD RAP)では、RD Gatewayを経由して接続することのできるサーバーを指定することができます。RD Gatewayを構成するためにはRD CAPとRD RAPの両方のポリシーを作成する必要がありますので、ここでは「今すぐ作成する」を選択して次に進みます。

image

デフォルトでは、AdministratorsグループのみがRD Gatewayに接続できるようになっています。Windowsインスタンスへの管理用リモートアクセスの場合、このままの設定で十分かと思いますので、そのまま次へ進みます。

image

続いて、RD CAPの名前を入力します。ここでは、デフォルトで表示される名前をそのまま使用しています。また、Windows認証方法としてパスワードのほかにスマートカードも使用することができるようですが、ここではパスワードのみにチェックをつけて次に進みます。

image

さらに、RD RAPを作成します。ここでは、RD RAPの名前はデフォルトのまま、「ユーザーがネットワーク上の任意のコンピューターに接続できるようにする」

image

ここまでのインストールオプションを確認して、「インストール」をクリックするとRD Gatewayのインストールが開始されます。インストールの完了後に、インスタンスの再起動が必要になる場合があります。

image

RD Gatewayのインストールが完了すると、サーバーマネージャーで以下のように表示されます。この状態ではまだサーバー証明書がインストールされていないため、いまから証明書のインストールを行います。まず、「操作」から「プロパティ」をクリックします。

image

以下のような画面が表示されますので、「自己署名証明書を作成する」「証明書の作成とインポート」を選択します。

image

証明書の名前を入力します。ここで入力する名前は、RD Gatewayを動かしているWindowsインスタンスのFQDNと一致している必要があります。そのため、ここではインスタンスに割り当てたEIPをDNSに登録したFQDNと同じ名前を入力します。「ルート証明書を格納する」にチェックがついていると、ルート証明書がファイルとして保存されます。サーバー側での作業はこれで完了です。

image

次に、クライアント側でRD Gatewayに接続する前に、ルート証明書のインストールが必要になります。先ほど作成したルート証明書のファイルをクライアントにコピーして、ダブルクリックすると、以下のような画面が表示されます。まず、「証明書のインストール」をクリックします。

image

「証明書のインポートウィザード」で、証明書ストアを選択します。「証明書の種類に基づいて、自動的に証明書ストアを選択する」を選択して次へ進みます。

image

「証明書ストアの選択」で、「信頼されたルート証明機関」を選択して「OK」を推します。

image

以下のようなセキュリティ警告が表示されますが、ここではそのまま「はい」をクリックして先に進みます。ウィザードを完了させると、ルート証明書のインストールは完了です。

image

クライアントでリモートデスクトップ接続を起動して、「詳細設定」タブの「任意の場所から接続する」の「設定」をクリックすると、以下のような画面が表示されます。接続設定で「次のRDゲートウェイサーバー設定を使用する」に、RD GatewayのFQDNを入力します。また、「リモートコンピューターにRDゲートウェイの資格情報を使用する」のチェックをはずしておきます。

image

ここまでで、必要な設定はすべて完了です。実際に、WindowsインスタンスにRD Gateway経由でログオンしてみましょう。RD Gatewayを経由することによって、以下の例のようにEIPをもたないVPC内のインスタンスに対してもリモートデスクトップ接続でログオンできるようになります。

image

まず、RD Gatewayサーバーに対する認証が必要になりますのでAdministratorのユーザー名およびパスワードを指定してログオンします。

image

続けて、ログオンしたいWindowsインスタンスへの認証を行います。該当するWindowsインスタンスの管理者パスワードを入力して「OK」をクリックすると、Windowsインスタンスへのログオンが完了してデスクトップ画面が表示されるはずです。

image

Windowsの認証を二回行わなくてもすむようにするためには、VPC内にActive Directoryドメインをたててあげるといいと思います。

RD Gatewayを使用することによって、HTTPSを使ったWindowsインスタンスへのログオンや、EIPをもたないVPC内のインスタンスに対してのリモートデスクトップ接続ができるようになります!また、SSL証明書を使用することでよりセキュアな接続が可能になりますが、ルート証明書およびパスワードの管理はくれぐれも厳密に行うようにしてください。