仮想化: RD ゲートウェイを使用する

リモート デスクトップ (RD) ゲートウェイを使用すると、仮想マシンへのパブリック ネットワーク経由のアクセスをセキュリティで保護できます。

Kristin Griffin

リモート デスクトップ (RD) Web アクセスの役割サービスを使用すると、ユーザー セッションや仮想マシン (VM) を公開できますが、これらの公開は LAN 経由で行わなければなりません。セッションや VM へのパブリック ネットワーク経由のアクセスをセキュリティで保護するには、RD ゲートウェイを使用する必要があります。

パブリック ネットワークとプライベート ネットワークの両方で RD ゲートウェイを使用することについては特別な理由があります。また、通常の展開における RD ゲートウェイのセットアップや必要なアクセス ポリシーの構成に関しても、特定の方法で行う必要があります。これらの理由や方法のほとんどは、セキュリティで保護されたチャネルの維持に関係しています。また、この役割サービスの使用に関連する便利な修正プログラムも数多く用意されています。

RD ゲートウェイを使用してアクセスをセキュリティで保護する

内部ネットワークでは、RemoteApp、リモート デスクトップ、および VM に、いつでもアクセスできます。では、これらのリソースにお気に入りの喫茶店からアクセスしたり、ビーチでくつろいでいるときにノート PC からアクセスしたりする場合はどうでしょうか。ファイアウォールでポート 3389 (RDP ポート) を開いて、パブリック ネットワークからのアクセスを有効にすることは可能ですが、この方法では攻撃を受けやすくなります。

ここで活躍するのが RD ゲートウェイです。RD ゲートウェイの役割サービスを使用すると、クライアントから RD ゲートウェイに対して SSL トンネルを確立することで、アクセスをセキュリティで保護できます。RD ゲートウェイは、仲介役として機能し、ポート 443 経由でクライアントのトラフィックを送受信したり、ポート 3389 経由で内部リソースのトラフィックを送受信したりします。RD ゲートウェイと外部クライアント間の通信は、すべて暗号化されます。

RD ゲートウェイと通常の仮想プライベート ネットワーク (VPN) ソリューションで異なる点は、VPN を使用すると、ネットワークに接続できる全ユーザーに完全なネットワーク アクセスが提供されることです。RD ゲートウェイでは、承認ポリシーを使用して、サービスを利用するユーザーやユーザーにアクセスが許可されている特定のリソースを決定することができます。

アクセス許可は、ユーザーが、ネットワーク内からアクセスしているかまたはネットワークの外からアクセスしているかによって個別に構成できます。RD ゲートウェイでは、2 段階構造になっているホワイトリストのモデルを使用します。ユーザーは、RD ゲートウェイを使用することが明示的に許可されている必要があり、RD ゲートウェイを経由して利用するリソースへの明示的なアクセス許可も必要です (図 1 参照)。

RD ゲートウェイによって、特定のユーザーおよびユーザーがアクセス権を持つリソースに対してアクセス許可が設定される

図 1 RD ゲートウェイによって、特定のユーザーおよびユーザーがアクセス権を持つリソースに対してアクセス許可が設定される

リモート クライアントが RD ゲートウェイ経由で RDS リソースにアクセスしようとすると、そのクライアントに RD ゲートウェイへのアクセスが承認されていて、なおかつ要求したリソースへのアクセス許可をクライアントが持っている場合、RD ゲートウェイによって接続が許可および確立されます。その後、クライアントと RD ゲートウェイ サーバー間では、セキュリティで保護されたトンネルが作成されます。クライアントが RD ゲートウェイに接続することが承認されていない場合、クライアントによるアクセスは拒否されます (図 2 参照)。

アクセスが許可されていない場合は、アクセスを拒否するダイアログ ボックスが表示される

図 2 アクセスが許可されていない場合は、アクセスを拒否するダイアログ ボックスが表示される

RD ゲートウェイへのアクセスが承認されても、要求したリソースへのアクセスが承認されていなければクライアントによるアクセスは拒否されます (図 3 参照)。

RD ゲートウェイへのアクセス権がある場合でも、リソースへのアクセス権がなければアクセスが拒否される

図 3 RD ゲートウェイへのアクセス権がある場合でも、リソースへのアクセス権がなければアクセスが拒否される

アクセスのフィルタリング

RD ゲートウェイでは、2 種類のアクセス ポリシー (RD リソース アクセス ポリシー (RD RAP) と RD 接続アクセス ポリシー (RD CAP)) により、RD ゲートウェイ自体へのアクセスと内部の RDS リソースへのアクセスが個別に制御されます。RD RAP では、すべてのユーザーがアクセスできるリソース (RD セッション ホスト サーバーやリモート デスクトップが有効になっているデスクトップ (プールされた VM や個人用デスクトップ VM など)) が制御され、RD CAP では、RD ゲートウェイへの接続許可を持つユーザー (および、必要に応じてコンピューター) が制御されます。

その他に RD CAP で制御されるものには、次のようなものがあります。

  • サポートされている認証方法 (ユーザーは、スマート カードまたはパスワードを使用して認証できます)
  • 接続中にリダイレクトできるデバイス (RD ゲートウェイでデバイスのリダイレクトを無効にすると、RD クライアントやサーバーで許可されていてもデバイスをリダイレクトできません)
  • アクティブ セッションやアイドル セッションのタイムアウト

RD ゲートウェイには、これらのポリシーを作成できるシンプルなインターフェイスが用意されています。作成したポリシーの保存場所は、アクセス ポリシーの種類によって異なります。RD RAP は、RD ゲートウェイに作成および保存されますが、RD CAP は、実際には NPS ネットワーク ポリシーであるため、RD CAP を作成すると、RD ゲートウェイでは "接続承認ポリシー" フォルダーに表示されます。また、ネットワーク ポリシー サービスを開くと、対応するネットワーク ポリシーを確認することも可能です (図 4 参照)。

NPS を開いて、対応するネットワーク ポリシーを確認できる

図 4 NPS を開いて、対応するネットワーク ポリシーを確認できる

これらのポリシーは、実際は同じものです。RD ゲートウェイでは、もう 1 つ別のビューが表示され、RD ゲートウェイに関連するポリシーをより簡単に管理する方法を提供しているに過ぎません。

複数の RD CAP と RD RAP を使用して、より詳細なアクセス ポリシーを作成することも可能です。ただし、簡単な規則が 1 つあり、RD ゲートウェイに (その後で内部の RDS リソースにも) 問題なく接続するには、ユーザーが、少なくとも 1 つの RD CAP と 1 つの RD RAP の要件を満たしている必要があります。まず、ユーザーは、RD ゲートウェイに接続する必要があり (RD CAP の要件)、RD ゲートウェイへの接続を確立することが許可されたら、RDS リソースへのアクセス許可が必要です (RD RAP の要件)。両方のポリシーの要件が満たされていなければ、RDS リソースにアクセスできません。

RD ゲートウェイを展開する

RD ゲートウェイのセットアップ方法については、『Microsoft Windows Server 2008 R2 Remote Desktop Services Resource Kit』(Microsoft Press、2010 年) で説明していますが、大まかに言うと、以下のような手順を実行する必要があります。

  • 必要な SSL 証明書をサーバーに追加する
  • RD ゲートウェイの役割サービスをインストールする
  • RD ゲートウェイで管理される参照用のグループを RD RAP に作成する
  • RD CAP と RD RAP を作成または調整する
  • RD ゲートウェイ サーバーのアドレスを、RD Web アクセス、RemoteApp マネージャー、および RD 接続ブローカーに追加するか、事前に作成した RDP ファイルに追加する

RD ゲートウェイのインストール ウィザードでは、RD ゲートウェイのテストで使用する自己署名 SSL 証明書が作成され、インストールされます。この自己署名証明書は、後で作成することも可能です。ただし、自己署名証明書は、信頼されたサードパーティ証明機関による検証を受けていないため、クライアントが RD ゲートウェイ サーバーを信頼して接続するようにするには、各クライアント コンピューターの信頼されたルート証明機関ストアに自己署名証明書を追加する必要があります。クライアント コンピューターが管理対象のコンピューターでない場合、この操作は実行できません。

運用環境では、公的 CA または社内の PKI ソリューションによって発行された証明書を使用することをお勧めします。既に SSL 証明書をインストール済みの場合は、ウィザードの指示に従ってインストール済みの証明書を選択してから RD ゲートウェイをインストールします。SSL 証明書をインストールするには、証明書 MMC スナップインでサーバーのコンピューター証明書ストアに SSL 証明書を追加します。

次に、サーバー マネージャーを開き、RD ゲートウェイの役割サービスをインストールします。RD ゲートウェイの役割サービスは、Windows PowerShell を使用してインストールすることもできますが、サーバー マネージャーで使用できるオプションがいくつか使用できなくなります。RD ゲートウェイの役割サービスで重要な機能を実行するためには、IIS 役割サービスと NPS 役割サービスの両方が必要です。そのため、既にインストール済みでない場合は、サーバー マネージャーによって、これらの役割サービスが自動インストールされます。

RD ゲートウェイでは、HTTPS 経由で RPC 呼び出しを実行するのに IIS を使用し、接続を許可するユーザーを制御するために NPS ネットワーク ポリシー (RD ゲートウェイの RD 接続承認ポリシー) を作成します。ウィザードでは、接続をセキュリティで保護するのに使用する SSL 証明書を指定し、RD CAP ポリシーと RD RAP ポリシーをそれぞれ 1 つ作成します。

次に、作成した RD RAP で参照する可能性がある RD ゲートウェイで管理されるグループをセットアップします。RD ゲートウェイで管理されるグループは、Active Directory ではなく RD ゲートウェイによって管理されるコンピューターのグループです。ほとんどの場合、RD RAP に Active Directory のコンピューター グループを指定することが最も有用な方法ですが、RD セッション ホスト ファームを展開している場合は、RD ゲートウェイで管理されるグループを作成し、ファームへの RD ゲートウェイ経由のアクセスを制御する必要があります。Active Directory では、複数の RD セッション ホスト サーバーをファーム名で特定することができません。

RD ゲートウェイで管理されるグループを作成するには、RD ゲートウェイ マネージャーで、RD ゲートウェイ サーバーの下の [リソース承認ポリシー] フォルダーをクリックし、RD ゲートウェイ マネージャーの右側にある [操作] ウィンドウの [ローカル コンピューター グループの管理] リンクをクリックします。RD セッション ホスト ファーム メンバーを含む、RD ゲートウェイで管理されるグループを作成したら、グループを RD RAP に追加します。

インストールが完了したら、RD CAP と RD RAP を編集できます。また、RD ゲートウェイ マネージャーで別の承認ポリシーを作成することも可能です。たとえば、営業チーム用の承認ポリシーと IT チーム用の承認ポリシーを用意できます。

RD CAP と RD RAP を追加で作成するには、RD ゲートウェイ マネージャーに表示された RD ゲートウェイ サーバーの下にある [ポリシー] フォルダーを右クリックし、[新しい承認ポリシーの作成] をクリックします。この操作により、新しい承認ポリシーの作成ウィザードが起動します。既存の RD CAP または RD RAP をダブルクリックして、プロパティを編集します。

既存のポリシーは、RD ゲートウェイ マネージャーの RD ゲートウェイ サーバーの下に表示される "接続承認ポリシー" フォルダーと "リソース承認ポリシー" フォルダーに格納されています。RD ゲートウェイを実装すると、クライアントは、RDS リソースにアクセスするときに、RD ゲートウェイのアドレスを参照しなければならなくなります。

  • RD Web アクセスで RemoteApps を公開したり、Windows 7 で RemoteApps やデスクトップ接続を使用したりする場合は、各 RD セッション ホスト サーバーで RemoteApp マネージャーに RD ゲートウェイ サーバーのアドレスを追加します。
  • プールされた仮想デスクトップ インフラストラクチャと個人用 VM を導入済みの場合は、RD 接続ブローカーの RD 接続マネージャーの仮想デスクトップ リソースと構成セクションに、RD ゲートウェイ サーバーのアドレスを追加します。
  • 事前に作成した RDP ファイルを公開する場合は、RDP ファイルを編集して RD ゲートウェイのアドレスを追加します。RDP ファイルを開いて、[オプション] ボタン、[詳細設定] タブを順にクリックします。[任意の場所から接続する] セクションの [設定] をクリックし、RD ゲートウェイ サーバーのアドレスを追加します。その後、RDP ファイルを保存します。

RD ゲートウェイを検証およびトラブルシューティングする

サービスをセットアップしたら、広範囲に配布する前にサービスをテストします。RD ゲートウェイの接続をテストするには、ブラウザーを開いて RD ゲートウェイ サーバーの RPC フォルダーを参照します。資格情報を求めるダイアログ ボックスが表示された後、空白のページが表示されます。これが、正常な RD ゲートウェイ実装で想定される動作です。

RD ゲートウェイ サーバーのイベント ログを分析すると、RD ゲートウェイまたはユーザーが要求した RDS リソースへのユーザーのアクセスが拒否される原因や、その状況を改善する方法を把握できることがあります。RD ゲートウェイのログは、イベント ビューアーの "イベント ビューアー\アプリケーションとサービス ログ\Microsoft\Windows\TerminalServices-Gateway" に格納されています。

RD ゲートウェイ マネージャーのプロパティ ダイアログ ボックスで、[監査] タブに表示される監査イベントの隣のチェック ボックスをオンまたはオフにして、RD ゲートウェイでログ記録するイベントの種類を指定します。以下に、イベント ログに記録されるイベント ID の種類と、RD ゲートウェイによってユーザーのアクセスが意図せず拒否される場合の対処方法の例を紹介します。

  • イベント ID 302 およびイベント ID 303: ユーザーが、RD ゲートウェイ経由で RDS リソースに接続した時間とリソースから切断した時間を示します。
  • イベント ID 200 およびイベント ID 300: ユーザーが RD CAP と RD RAP のそれぞれの要件を満たしていることを示します。
  • イベント ID 201: RD CAP の要件が満たされておらず、ユーザーによる RD ゲートウェイへの接続が失敗したことを示します。ユーザーが RD ゲートウェイに適切にアクセスできるようにするには、RD CAP を変更してユーザーが属している Active Directory ユーザー グループを含めます。
  • イベント ID 304: RD CAP と RD RAP の要件を満たしているにもかかわらず、要求したリソースへのアクセスが失敗したことを示します。この場合は、要求したリソースが使用可能になっているかどうかを確認し、ユーザーが Remote Desktop Users グループのメンバーになっているかどうかを確認します。

RD ゲートウェイ経由のアクセスが許可または拒否された場合にも、NPS によってイベント ビューアーのセキュリティ ログにイベントが記録されます。以下に、いくつか例を示します。

  • イベント ID 6272 およびイベント ID 6278: NPS サーバーでユーザーにアクセスが許可され、接続の認証に関する詳細 (ユーザーにアクセスを提供したネットワーク ポリシーの名前など) がログに記録されたことを示します。
  • イベント ID 6273: ユーザーが、"-- RDG Marker Policy" という名前のネットワーク ポリシーの要件を満たしていることを示します。このポリシーは、RD ゲートウェイへのアクセスを拒否する既定のポリシーです。ユーザーが要件を満たしているネットワーク ポリシーが他になければ (つまり、ユーザーが RD CAP 要件を満たしていなければ)、このポリシーの要件が満たされ、ユーザーによるアクセスが拒否されます。

RD ゲートウェイに関する必須要素である「リモート アクセスを提供するのに RD ゲートウェイの役割サービスを利用すべき理由」、「RD ゲートウェイの役割サービスのセットアップ方法」、および「リモート アクセスに関する規則を定義するアクセス ポリシーの構成方法」の説明は以上です。来月は、証明書と資格情報のセキュリティ サポート プロバイダーを組み合わせて、ネットワーク レベル認証 (NLA) という、ユーザーのログオン エクスペリエンスを向上する機能を有効にする方法について説明します。

Kristin Griffin

Kristin Griffin は、リモート デスクトップ サービスの MVP です。サーバー ベース コンピューティングのコミュニティに役立つマイクロソフト フォーラム (リモート デスクトップ サービス、英語) を運営しており、RDS に関するブログ (blog.kristinlgriffin.com、英語) を公開しています。また、Mark Minasi の著書『Windows Server 2008 パーフェクトガイド』(翔泳社、2010 年) と『Windows Server 2008 R2 パーフェクトガイド』(ソフトバンククリエイティブ、2010 年) の執筆に貢献し、『Microsoft Windows Server 2008 Terminal Services Resource Kit』(Microsoft Press、2008 年) と『Microsoft Windows Server 2008 R2 Remote Desktop Services Resource Kit』(Microsoft Press、2010 年) を Christa Anderson と共同で執筆しました。

関連コンテンツ

また、RD ゲートウェイに関する以下の修正プログラムも役に立ちます。

RD ゲートウェイに関する Q&A

Q. RD ゲートウェイでは、いくつの接続に対応できますか。
A. RD ゲートウェイでは、多数の接続に対応できます。実際、4 GB の RAM とデュアル プロセッサを搭載したサーバーでは、1,200 件以上の接続に対応できます。マイクロソフトによる RD ゲートウェイの容量に関するテストとその結果分析の詳細については、マイクロソフトのホワイト ペーパー「Windows Server 2008 R2 の RD ゲートウェイの容量計画 (英語)」を参照してください。ライセンスの観点から言えば、RD ゲートウェイに同時に接続できる数は、Windows Server 2008 R2 Standard Edition では 256 に限られており、Windows Server 2008 R2 Foundation Edition では 50 に限られています。Windows Server 2008 R2 Datacenter Edition と Windows Server 2008 R2 Enterprise Edition では、RD ゲートウェイの接続数に関する制限はありません。

Q. ISA サーバーで RD ゲートウェイを使用することはできますか。Forefront Threat Management Gateway (TMG) ではどうでしょうか。
A. はい、使用できます。RD ゲートウェイを ISA サーバーで公開するには、このスクリプトを使用します。RD ゲートウェイを Forefront TMG の背後に実装することもできます。「RD ゲートウェイを使用して Forefront Threat Management Gateway 統合を構成するためのステップ バイ ステップ ガイド (英語)」では、TMG を RD ゲートウェイの前面に配置した SSL ブリッジ デバイスとして使用する方法を紹介しています。

Q. RD ゲートウェイを構成する場合、どのような SSL 証明書を使用する必要がありますか。
A. RD ゲートウェイでは、通常の SSL 証明書、ワイルドカード証明書 (*.domain.com)、または SAN 証明書 (rdg.domain.com、rdwa.domain.com、rds.domain.com など複数の名前を持つ証明書) を使用できます。

Q. どのようにすれば、RD Web アクセスの [リモート デスクトップ] ページにある接続が、RD ゲートウェイを使用するように強制できますか。
A. RD Web アクセスの Web サイトにある [リモート デスクトップ] ページには、RD ゲートウェイの使用を強制するチェック ボックスはありませんが、Desktop.aspx ファイルの次の部分を

if ((DefaultTSGateway != null) && (DefaultTSGateway.length> 0)) { 
RDPstr += "gatewayusagemethod:i:2\n";

以下のように編集すると接続を強制できます。

if ((DefaultTSGateway != null) &&(DefaultTSGateway.length> 0)) { 
RDPstr += "gatewayusagemethod:i:1\n";

明示的に RD ゲートウェイを使用するように強制すると、ポート 3389 経由での接続を試行して、タイムアウトすると SSL ポート 443 経由で接続を再試行する場合に生じる遅延がないため、接続の速度が向上します。