ニフクラ ブログ

ニフクラやクラウドの技術について、エンジニアが語るブログです。

RD Gatewayを使用したWindowsサーバーへのリモートデスクトップ接続の手順

こんにちは、ニフクラテクニカルアカウントチームです。

Windowsサーバーへのリモートデスクトップ接続に使用されるRDP(Remote Desktop Protocol)ですが、デフォルト設定の3389ポートは、セキュリティの面から社内ネットワークなどでは使用できないことがあります。
そんな時は、Windowsサーバーの機能であるRD Gatewayを使用することで、443ポートでRDPによる接続を行うことが出来ます。 今回はRD Gatewayの導入からサーバーへ接続するまでの手順をご紹介します。 f:id:TechnicalAccountEngineer:20190702113458p:plain

前提条件

本ブログは、以下の前提知識がある方を想定しています。

  • ニフクラの基本的なコントロールパネルの操作、サービスを利用する知識
    (サーバー作成、ネットワーク構築など)

検証概要

以下の流れでRD Gatewayを利用し、接続先サーバーにアクセスします。

(1)踏み台サーバーにRD Gatewayをインストールする
(2)踏み台サーバーでRD Gatewayのポリシー作成を行う
(3)踏み台サーバーに証明書の登録をし、証明書をエクスポートする(※自己署名証明書を使用)
(4)クライアントに証明書をインポートする
(5)クライアントから接続先サーバーにアクセスする

利用リソース

本検証を実施するにあたり、利用したニフクラのリソース情報に関して以下に記載します。
※各リソースのアクセス制限に関しては、ニフクラのファイアウォール等を用いて適切に設定の上実施しています。

リソース 数量
サーバー(サーバーOS:Windows Server 2019) 2
プライベートLAN 1

リソースの名称やIPアドレスは以下のように設定しています。

リソース名 ホスト名 プライベートIP 備考
サーバー
(Windows Server
2019)
RDGWSV01 192.168.10.10 踏み台サーバー
RDGWSV02 192.168.10.20 接続先サーバー
プライベートLAN - 192.168.10.0
/24
-

各リソースのファイアウォールのINルールは以下のように設定しています。
※本検証では、OUTルールの設定は行っていません。(制限していません。)

リソース プロトコル ポート 接続元種別 備考
RDGWSV01 TCP 443 クライアントのIPアドレス RD Gatewayの接続用
3389 クライアントのIPアドレス 構築用
(RD Gateway設定後削除)
RDGWSV02 3389 192.168.10.10 踏み台サーバーからのRDP接続用

検証

RD Gatewayのインストール

はじめに踏み台サーバーにRD Gatewayのインストールを行います。
RD Gatewayの機能を有効化した後は、443ポートからリソースにアクセスできますが、RD Gateway導入のため、初めは踏み台サーバーの3389ポートを開放する必要があります。

踏み台サーバーにログインし、サーバーマネージャーから「役割と機能の追加」をクリックします。
f:id:TechnicalAccountEngineer:20190628151102p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151142p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151154p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628154126p:plain

「リモートデスクトップサービス」にチェックを入れ、「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151239p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151250p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151301p:plain

「リモートデスクトップゲートウェイ」にチェックを入れます。
f:id:TechnicalAccountEngineer:20190628151311p:plain

役割と機能の追加ウィザードがポップアップされるので、「機能の追加」をクリックします。
f:id:TechnicalAccountEngineer:20190628151318p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151326p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151332p:plain

「次へ]をクリックします。
f:id:TechnicalAccountEngineer:20190628151343p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151351p:plain

「インストール」をクリックします。
f:id:TechnicalAccountEngineer:20190628151357p:plain

インストールが完了したら、「閉じる」をクリックします。
f:id:TechnicalAccountEngineer:20190628151404p:plain

ポリシーの作成

RD Gatewayのインストールが完了したら、RD Gatewayへの接続許可ポリシー(CAP)と、RD Gatewayを経由して接続する各リソースへの接続許可ポリシー(RAP)の作成を行います。

今回のポリシーでは、事前に作成を行ったテスト用ユーザー「RDGWUser」が所属するグループ「RDGW」を許可対象に設定します。

サーバーマネージャーの「ツール」-「Remote Desktop Services」-「リモートデスクトップゲートウェイマネージャー」をクリックします。
f:id:TechnicalAccountEngineer:20190628151428p:plain

RD ゲートウェイマネージャーの左ペインから「RDGWSV01」を展開し、「ポリシー」-「新しい承認ポリシーの作成」をクリックします。
f:id:TechnicalAccountEngineer:20190628151435p:plain

「RD CAPとRD RAPを作成する」を選択し、「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151443p:plain

CAP名を入力し、「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151454p:plain

「グループの追加」をクリックします。
f:id:TechnicalAccountEngineer:20190628151528p:plain

RD Gatewayへの接続を許可したいグループを入力します。グループ名を入力し、「OK」をクリックします。
f:id:TechnicalAccountEngineer:20190628151542p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151554p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151619p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151638p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151649p:plain

RAP名を入力し「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151701p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151723p:plain

「ユーザーによる任意のネットワークリソース(コンピューター)への接続を許可する」を選択し、「次へ」をクリックします。
グループ毎にアクセスを許可するリソースを制限したい場合は、ここで設定することが出来ます。

f:id:TechnicalAccountEngineer:20190628151733p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628151745p:plain

「完了」をクリックします。
f:id:TechnicalAccountEngineer:20190628151758p:plain

「閉じる」をクリックします。
f:id:TechnicalAccountEngineer:20190628151810p:plain

自己署名証明書の作成とエクスポート

https通信のための証明書登録を行います。今回は自己署名証明書を作成して使用します。

左ペインからRDGWSV01(ローカル)をクリックします。
f:id:TechnicalAccountEngineer:20190628151845p:plain

「証明書のプロパティの表示または変更」をクリックします。
f:id:TechnicalAccountEngineer:20190628151852p:plain

プロパティウインドウが表示されたら、「証明書の作成とインポート」をクリックします。
f:id:TechnicalAccountEngineer:20190701170519p:plain

「証明書の名前」に踏み台サーバーのグローバルIPを入力し、「OK」をクリックします。作成される証明書の発行先と発行元はグローバルIPとなります。
※使用可能なドメインがある場合は、DNS名を入力するなど適宜変更してください。
f:id:TechnicalAccountEngineer:20190704134503p:plain

「OK」をクリックします。
f:id:TechnicalAccountEngineer:20190704134519p:plain

「OK」をクリックします。
f:id:TechnicalAccountEngineer:20190628151936p:plain

これまでの設定を反映させるため、一度RD Gatewayサービスの再起動を行います。
サーバーマネージャー左ペインから「リモートデスクトップサービス」をクリックします。
f:id:TechnicalAccountEngineer:20190628151944p:plain

左ペインから「サーバー」をクリックし、サービスから「Remote Desktop Gateway」を右クリックし、「サービスの再起動」をクリックします。
f:id:TechnicalAccountEngineer:20190628151956p:plain

サービスの再起動後、RD ゲートウェイマネージャー左ペインから「RDGWSV01」を選択し、右ペインのプロパティをクリックします。
f:id:TechnicalAccountEngineer:20190704141545p:plain

プロパティウインドウの「SSL証明書」タブをクリックし、作成した証明書がインストールされていることを確認後、「OK」をクリックします。 f:id:TechnicalAccountEngineer:20190704141605p:plain

クライアントのインポート用に作成した証明書のエクスポートを行います。
ファイル名を指定して実行から「certlm.msc」を実行します。
f:id:TechnicalAccountEngineer:20190628152016p:plain

左ペインから「個人」-「証明書」をクリックします。
f:id:TechnicalAccountEngineer:20190628152024p:plain

作成した自己署名証明書を右クリックし、「すべてのタスク」-「エクスポート」をクリックします。
f:id:TechnicalAccountEngineer:20190628152038p:plain

証明書のエクスポートウィザードが立ち上がるので、「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628152047p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628152105p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628152112p:plain

任意のファイル名を入力し、「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628152603p:plain

「完了」をクリックします。
f:id:TechnicalAccountEngineer:20190628152136p:plain

「OK」をクリックします。
f:id:TechnicalAccountEngineer:20190628152623p:plain

エクスポートした証明書をコピーしクライアント端末に配備します。
f:id:TechnicalAccountEngineer:20190628152651p:plain

クライアントでの証明書インポート

ここからはクライアント上での手順となります。

配備した証明書をダブルクリックします。
f:id:TechnicalAccountEngineer:20190628152709p:plain

「証明書のインストール」をクリックします。
f:id:TechnicalAccountEngineer:20190628152722p:plain

証明書のインポートウィザードが立ち上がるので「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628153117p:plain

「証明書をすべて次のストアに配置する」を選択し、「参照」をクリックします。
f:id:TechnicalAccountEngineer:20190628153126p:plain

「信頼されたルート証明機関」を選択し、「OK」をクリックします。
f:id:TechnicalAccountEngineer:20190628153133p:plain

「次へ」をクリックします。
f:id:TechnicalAccountEngineer:20190628153143p:plain

「完了」をクリックします。
f:id:TechnicalAccountEngineer:20190628153155p:plain

セキュリティ警告が表示されたら「はい」をクリックします。
f:id:TechnicalAccountEngineer:20190628153214p:plain

「OK」をクリックします。
f:id:TechnicalAccountEngineer:20190628153220p:plain

ファイル名を指定して実行から「certmgr.msc」を起動します。
f:id:TechnicalAccountEngineer:20190628153233p:plain

左ペインから「信頼されたルート証明機関」-「証明書」を選択し、証明書がインポートされたことを確認します。
f:id:TechnicalAccountEngineer:20190704134555p:plain

接続確認

これまでの手順でRD Gatewayの使用準備が整いました。

クライアントからリモートデスクトップ接続を起動し、「詳細設定」-「設定」をクリックします。
f:id:TechnicalAccountEngineer:20190628153252p:plain

「次のRDゲートウェイサーバー設定を使用する」にチェックを入れ、「サーバー名」に踏み台サーバーのグローバルIPを入力します。
「ローカルアドレスにはRDゲートウェイサーバーを使用しない」のチェックを外し、「OK」をクリックします。
f:id:TechnicalAccountEngineer:20190704142342p:plain

「全般」タブから接続先サーバーのプライベートIPとユーザー名を入力し、「接続」をクリックします。今回は事前に作成したtestuserでログインします。
f:id:TechnicalAccountEngineer:20190628153338p:plain

RDゲートウェイサーバーの資格情報の入力画面が表示されたら、ポリシーで登録したグループに所属するユーザーの情報を入力し、「OK」をクリックします。
f:id:TechnicalAccountEngineer:20190628153401p:plain

続いて接続先サーバーの資格情報の入力画面が表示されるので、パスワードを入力し、「OK」をクリックします。
f:id:TechnicalAccountEngineer:20190628153421p:plain

接続できることを確認します。
f:id:TechnicalAccountEngineer:20190702134210p:plain

接続の確認後は、必要に応じて踏み台サーバーの3389ポートを閉じます。
以上でRD GatewayでのRDP接続手順は終了となります。

まとめ

RD Gatewayを利用することで、暗号化されたリモートデスクトップ接続を手軽に行うことができます。
ポリシーを適切に設定すれば、利用可能なリソースの管理をすることも可能です。
Windows以外のサーバーへの接続など、RDPを使用しない場合には、リモートアクセスVPNゲートウェイの利用をご検討ください。

注意事項

  • 本記事では検証目的のため、自己署名証明書を利用しています。実際の利用ケースでは、必要に応じて最適な証明書を使用してください。
  • 本記事については検証結果の1つとなります。実際に検討される場合は、事前にそれぞれの要件を鑑みて実装するか確認してください。
  • 本記事ではOS上の操作についても記載していますが、ニフクラではOS以上はご利用者様の責任範囲となりますのでご留意ください。