次の方法で共有


System Center 2012 R2 の Remote Console

 

対象: System Center 2012 R2 Virtual Machine Manager

Remote Console は、System Center 2012 R2 で導入された機能です。 Remote Console 機能によって、リモート デスクトップなどの他のリモート ツールを使用できない場合に、テナントが自分のバーチャル マシンのコンソールにアクセスできるようになります。 テナントは Remote Console を使用して、分離ネットワーク、信頼されていないネットワーク、またはインターネット上にあるバーチャル マシンにアクセスすることが可能です。

Remote Console を使用するには、以下を実行する必要があります。

  • Microsoft® Hyper-V® Server 2012 R2

  • System Center 2012 R2 Virtual Machine Manager

  • System Center 2012 R2 Service Provider Foundation

  • Windows Server 用 Windows Azure Pack

[!メモ]

テナントは、リモート デスクトップ プロトコル 8.1 をサポートするクライアント コンピューターが必要です。 たとえば、Windows 8 を実行しているユーザーは Windows 8.1 にアップグレードする必要があります。 また、Windows 7 SP1 を使用しているクライアントでは KB2830477 をインストールする必要があります。

このリリースの Remote Console でサポートされる機能には制限があります。 クリップボード、サウンド、プリンター リダイレクト、ドライブ マッピングなどの機能はサポートされません。 Remote Console は、物理コンピューターで使用されるキーボード、ビデオ、およびマウス (KVM) の接続と類似した方法で機能します。

ユーザー認証

Windows Server 2012 R2 の Hyper-V は、証明書ベースの認証をサポートします。この認証を使用して、テナントが、自分に割り当てられたバーチャル マシンのみにアクセスできるようにします。Windows Server 用 Windows Azure Pack Web ポータル、Service Provider Foundation、および Virtual Machine Manager (VMM) が、バーチャル マシンの認証とバーチャル マシンへのアクセスの承認を行い、単一のバーチャル マシンへのアクセスを付与するために Hyper-V ホストが使用するトークンを提供します。

次の図は、インターネットなどの信頼されていないネットワークを経由してテナントがバーチャル マシンにアクセスする場合に、Remote Console アクセスに必要となるコンポーネントを示しています。 この環境が社内ネットワークに展開されている場合、リモート デスクトップ ゲートウェイ (RD ゲートウェイ) は省略されます。

リモート コンソールの証明書ベース認証

信頼関係の確立には証明書の秘密キーと公開キーが使用されます。 以下のセクションに、必要な証明書を作成する方法を示します。

リモート アクセスの証明書の作成

RD ゲートウェイ サーバー、Hyper-V ホスト、および VMM の間に信頼関係を作成するには、証明書を使用します。 証明書によって、RD ゲートウェイと Hyper-V ホストは VMM RD ゲートウェイの発行したクレーム トークンを受け入れることができます。 RD ゲートウェイと Hyper-V ホスト上の検証には同じ証明書を使用しても、異なる証明書を使用しても構いません。 有効な証明書は、次の要件を満たす必要があります。

  1. 証明書の期限が切れていないこと。

  2. キー使用法フィールドにデジタル署名が含まれていること。

  3. 拡張キー使用法フィールドにクライアント認証オブジェクト識別子 (1.3.6.1.5.5.7.3.2) が含まれていること。

  4. 証明書を発行した証明機関 (CA) の ルート証明書が、信頼されたルート証明機関の証明書ストアにインストールされていること。

  5. 証明書の暗号サービス プロバイダーが SHA256 をサポートすること。

商用の証明機関、エンタープライズ証明機関、または自己署名証明書を使用して、有効な証明書を取得できること。

[!メモ]

商用の証明機関、エンタープライズ証明機関、または自己署名証明書を使用して、有効な証明書を取得できること。 自己署名証明書を使用する場合、証明書の公開キーを、RD ゲートウェイおよび Hyper-V ホストで、信頼されたルート証明機関の証明書ストアに配置する必要があります。

MakeCert ツールを使用したテスト証明書の作成

テストの目的で MakeCert ツールを使用して自己署名証明書を作成できます。 MakeCert は、Windows SDK の一部です。

  • SDK をダウンロードするには、「Windows SDK」を参照してください。

  • 詳細については、Windows デベロッパー センターの「MakeCert」を参照してください。

次のコードは、自己署名証明書を作成する方法の例を示します。

makecert -n "CN=Remote Console Connect" -r -pe -a sha256 -e <mm/dd/yyyy> -len 2048 -sky signature -eku 1.3.6.1.5.5.7.3.2 -ss My -sy 24 "<CertificateName>.cer"  

ここで、

-sky signature 署名に使用
-r 自己署名証明書を作成
-n “CN=Remote Console Connect” サブジェクト名 (Remote Console 接続)
-pe 秘密キーはエクスポート可能
-a sha256 アルゴリズム
-len 2048 キーの長さ
-e <mm/dd/yyyy> 有効期限日
-eku 1.3.6.1.5.5.7.3.2 拡張キー使用法 (クライアント認証のオブジェクト識別子)
-ss My 秘密キーを証明書ストア My に保管
-sy 24 暗号プロバイダーの種類 (SHA256 をサポート)
“<CertificateName>.cer” 公開キーの名前

証明機関の使用

証明機関から証明書をリクエストする場合、次のような証明書テンプレート .inf ファイルを、Certreq ツールで使用できます。 詳細については、「Certreq」を参照してください。

[Version]  
Signature="$Windows NT$"  
[NewRequest]  
; Change to your,country code, company name and common name  
Subject = "C=US, O=Contoso, CN=wap-rdg.contoso.com"  
; Indicates both encryption and signing  
KeySpec = 1   
; Length of the public and private key, use 2048 or higher  
KeyLength = 2048  
; Certificate will be put into the local computer store  
MachineKeySet = TRUE   
PrivateKeyArchive = FALSE  
RequestType = PKCS10  
UserProtected = FALSE  
; Allow the key to be shared between multiple computers  
Exportable = TRUE  
SMIME = False  
UseExistingKeySet = FALSE   
; ProviderName and ProviderType must be for a CSP that supports SHA256  
ProviderName = "Microsoft Enhanced RSA and AES Cryptographic Provider"  
ProviderType = 24  
; KeyUsage must include DigitalSignature. 0xA0 also includes Key Encipherment  
KeyUsage = 0xa0  
[EnhancedKeyUsageExtension]  
OID=1.3.6.1.5.5.7.3.2  
  

次の Windows PowerShell スクリプトを実行して、.pfx ファイルの証明書がアルゴリズムおよび拡張キー使用法の要件を満たしていることを確認できます。

$cert = Get-PfxCertificate <cert.pfx>  
if ($cert.PrivateKey.CspKeyContainerInfo.ProviderName -ne "Microsoft Enhanced RSA and AES Cryptographic Provider")  
{  
       Write-Warning "CSP may not support SHA256"  
}  
if (! (Test-Certificate $cert -EKU "1.3.6.1.5.5.7.3.2") )  
{  
       Write-Warning "Certificate is not valid"  
}  
  

証明書のインストール

証明書が作成されたら、それをインストールして、クレーム トークンを発行する際に使用するように Virtual Machine Manager を構成する必要があります。 その後、証明書の秘密キーは Virtual Machine Manager データベースにインポートされます。 これを行うには、たとえば次のように Windows PowerShell コマンドレットの Set-SCVMMServer を使用します。

PS C:\> $mypwd = ConvertTo-SecureString "password" -AsPlainText -Force  
PS C:\> $cert = Get-ChildItem .\RemoteConsoleConnect.pfx   
PS C:\> $VMMServer = VMMServer01.Contoso.com  
PS C:\> Set-SCVMMServer -VMConnectGatewayCertificatePassword $mypwd -VMConnectGatewayCertificatePath $cert -VMConnectHostIdentificationMode FQDN -VMConnectHyperVCertificatePassword $mypwd -VMConnectHyperVCertificatePath $cert -VMConnectTimeToLiveInMinutes 2 -VMMServer $VMMServer  
  

この例では RD ゲートウェイと Hyper-V ホストの両方に同じ証明書を使用し、トークンの有効期間は 2 分間に設定されています。 1 ~ 60 分のトークンの有効期間を選択することができます。

ホスト サーバーはその完全修飾ドメイン名 (FQDN) で識別します。 ホストの識別には IPv4 アドレス、IPv6 アドレス、およびホスト名も使用できます。 ホストの ID は、テナントに送信されるリモート デスクトップ プロトコル (RDP) ファイルに含められます。

[!メモ]

VMMServer01.Contoso.com は、例示的なホスト サーバー名として使用しています。 これを実際のサーバー名に変更します。

‎%%78%%% ‎

Virtual Machine Manager で各ホストが更新されるときに、証明書が Hyper-V ホストの個人用証明書ストアにインストールされ、Hyper-V ホストが、その証明書を使用してトークンを検証するように構成されます。 すべての Hyper-V ホストを更新するには、次の Windows PowerShell コマンドを使用できます。

PS C:\> Get-SCVMHost -VMMServer "VMMServer01.Contoso.com" | Read-SCVMHost  

Hyper-V ホスト

トークンの認証時、Hyper-V は、特定の証明書およびハッシュ アルゴリズムを使って署名されたトークンのみを受け入れます。 Virtual Machine Manager が、Hyper-V ホストに必要な構成を実行します。 Remote Console 機能をサポートするのは Windows Server 2012 R2 の Hyper-V のみです。

自己署名証明書を使用する場合、証明書の公開キーを、Hyper-V ホストの信頼されたルート証明機関の証明書ストアにインポートする必要があります。 次のスクリプトは、Windows PowerShell を使用して公開キーをインポートする方法の 1 例です。

PS C:\> Import-Certificate -CertStoreLocation cert:\LocalMachine\Root -Filepath "<certificate path>.cer"  

Virtual Machine Manager を構成した後で証明書をインストールする場合、Hyper-V Virtual Machine Management サービスを再起動する必要があります。

Hyper-V ホストで Remote Console が正しく構成されていることを確認するには、次の手順行います。

  1. 証明書が信頼された Hyper-V ホストの個人用証明書ストア内にあることを確認します。

  2. 信頼された発行元の証明書の、ハッシュの構成を確認します。

次のスクリプトは、Windows PowerShell を使用して証明書が Hyper-V ホストの個人用証明書ストアにインストールされていることを確認する方法の例です。

PS C:\> dir cert:\localmachine\My\ | Where-Object { $_.subject -eq "CN=Remote Console Connect" }  

次のスクリプトは、Windows PowerShell を使用して、信頼された発行元の証明書のハッシュの構成を確認する方法の例です。

PS C:\> $TSData = Get-WmiObject -computername $Server -NameSpace "root\virtualization\v2" -Class "Msvm_TerminalServiceSettingData"  

配列 TrustedIssuerCertificateHashes には、Remote Console への接続に使用される証明書の拇印が含まれている必要があります。 配列 AllowedHashAlgorithms は空であるか、SHA256 アルゴリズムが含まれている必要があります。 配列が空の場合、既定で SHA256 または SHA512 に設定されます。

[!メモ]

Virtual Machine Manager は SHA256 のトークンを生成します。

リモート デスクトップ ゲートウェイ

リモート デスクトップ ゲートウェイ (RD ゲートウェイ) は、バーチャル マシンへのコンソール アクセスのみに使用できます。 RD ゲートウェイを構成すると、構成が変更され、そのゲートウェイを他の目的に使用できなくなります。 RD ゲートウェイの構成時、次のタスクが実行されます。

  1. RD ゲートウェイを展開して認証プラグインをインストールします。

  2. 証明書をインストールします。

  3. WMI を使用して、信頼された発行元の証明書を構成します。

  4. RD ゲートウェイの証明書を作成します。

フェデレーション認証をサポートするには、RD ゲートウェイ サーバーに Microsoft System Center Virtual Machine Manager のコンソール接続ゲートウェイをインストールする必要があります。 まずバーチャル マシンを作成し、次にリモート デスクトップ サービスを有効にします。

その後、System Center Virtual Machine Manager のコンソール接続ゲートウェイ コンポーネントをインストールします。 このコンポーネントのインストール バイナリは、Virtual Machine Manager のインストール メディア フォルダー (CDLayout.EVAL\amd64\Setup\msi\RDGatewayFedAuth) にあります。 高可用性の構成には複数の RD ゲートウェイをインストールし、ロード バランサーの背後にコンソール接続ゲートウェイ コンポーネントをインストールします。

次に、証明書の公開キーを、各 RD ゲートウェイ サーバーの個人用証明書ストアにインポートします。 これを行うには、次の例にある Windows PowerShell を使用できます。

PS C:\> Import-Certificate -CertStoreLocation cert:\LocalMachine\My -Filepath "<certificate path>.cer"  

自己署名証明書を使用する場合、証明書の公開キーを、マシン アカウントの信頼されたルート証明機関の証明書ストアにインポートする必要があります。 これを行うには、次の例にある Windows PowerShell を使用できます。

PS C:\> Import-Certificate -CertStoreLocation cert:\LocalMachine\Root -Filepath "<certificate path>.cer"  

トークンの認証時、RD ゲートウェイは、特定の証明書およびハッシュ アルゴリズムを使って署名されたトークンのみを受け入れます。 この構成は、WMI FedAuthSettings クラスの TrustedIssuerCertificateHashes プロパティと AllowedHashAlgorithms プロパティを設定することで行います。 これらのプロパティを設定するには管理者の資格情報が必要です。

TrustedIssuerCertificateHashes プロパティは、RD ゲートウェイ サーバーに保管される証明書拇印の配列です。 次の Windows PowerShell コマンドを使用して TrustedIssuerCertificateHashes プロパティを設定できます。

$Server = "rdgw.contoso.com"  
$Thumbprint = "95442A6B58EB5E443313C1B4AFD2665991D354CA"  
$TSData = Get-WmiObject -computername $Server -NameSpace "root\TSGatewayFedAuth2" -Class "FedAuthSettings"  
$TSData.TrustedIssuerCertificates = $Thumbprint  
$TSData.Put()  

最後の手順として、RD ゲートウェイの自己署名証明書を選択するか、作成します。 これを行うには、RD ゲートウェイ マネージャーを開き、[リモート デスクトップ ゲートウェイ] を右クリックして、[プロパティ] をクリックします。[プロパティ] ダイアログ ボックスで、[SSL 証明書] タブをクリックします。

この証明書は、テナントのクライアント コンピューターが RD ゲートウェイ サーバーの ID を確認するために使用されます。 証明書の CN 名は RD ゲートウェイ サーバーの FQDN に一致しなければなりません。 RD ゲートウェイ マネージャーを開いて自己署名証明書を割り当てるか、作成します。

[!メモ]

自己署名証明書はテスト目的でのみ使用します。 運用環境では自己署名証明書を使用しないでください。 また、自己署名証明書を使用するには、RD ゲートウェイを経由して接続するすべてのテナント コンピューター上に証明書をインストールする必要があります。

RD ゲートウェイの構成を確認するには、次の手順を実行します。

  1. RD ゲートウェイが、コンソール接続ゲートウェイを使用して認証と承認を行うよう構成されていることを確認します。 これを行うには、次の例にある Windows PowerShell を使用できます。

    PS C:\> Get-WmiObject -Namespace root\CIMV2\TerminalServices -Class Win32_TSGatewayServerSettings  
    

    [AuthenticationPlugin] プロパティと [AuthorizationPlugin] プロパティが [FedAuthorizationPlugin] に設定されていることを確認します。

  2. マシン アカウントの個人用証明書ストアに証明書がインストールされていることを確認します。 これを行うには、次の例にある Windows PowerShell を使用できます。

    PS C:\> dir cert:\localmachine\My\ | Where-Object { $_.subject -eq "CN=Remote Console Connect" }  
    
  3. コンソール接続ゲートウェイの構成をチェックします。 これを行うには、次の例にある Windows PowerShell を使用できます。

    PS C:\> Get-WmiObject -computername $Server -NameSpace "root\TSGatewayFedAuth2" -Class "FedAuthSettings"  
    

    配列 TrustedIssuerCertificate には、コンソール接続ゲートウェイの証明書の拇印が含まれている必要があります。

Remote Console のための Microsoft Azure Pack for Windows Server

Windows Azure Pack for Windows Server の仮想マシン クラウド サービスを経由して、プランごとに Remote Console へのアクセスを有効にすることができます。 プランのダッシュボードで、プラン サービスの下の [仮想マシンのクラウド] を選択し、追加の設定で [仮想マシンのコンソールに接続する] を選択します。

リモート デスクトップ ゲートウェイをインストールしている場合は、「Microsoft Azure パックを構成してリモート デスクトップ ゲートウェイを使用する方法」の手順を参照してください。

セキュリティに関する推奨事項

セキュリティを強化するため、次のタスクを実行することをお勧めします。

名前 脅威 推奨事項
トークン アクセス 任意のバーチャル マシンへのアクセス トークンを生成するために My 証明書ストアへのアクセスが使用されることがあります。 Active Directory のセキュリティ グループを使用して、トークンを生成する Virtual Machine Manager サーバーへのアクセスを制限します。
トークンの有効期間 リモート デスクトップ プロトコル (RDP) ファイルには EndpointFedAuth トークンが含まれており、RDP ファイルを所持することで特定のバーチャル マシンのコンソールにアクセスできるようになります。 トークンの有効期間を短く設定します。 推奨期限は 1 分間です。 トークンの有効期間を設定するには SetSCVMMServer Windows PowerShell コマンドレットを使用します。
共有アクセス 他のユーザーがコンソール セッションをリクエストしてアクセスすると、既存のセッションが終了されます。 これには、サインインしているユーザーのコンソールにアクセスし、その結果テナント リソースへのアクセスを取得するホストが含まれます。

コンソール セッションは、物理ホストの KVM セッションと似ています。 バーチャル マシン セッションは、承認ポリシーでコンソールの読み取り操作または読み書き操作の権限が割り当てられている、すべてのユーザーが使用できます。 この権限は、既定ですべての管理者に与えられます。
テナント ユーザー:

作業を終了したら、コンソール セッションからサインアウトします。

オペレーティング システムがロックされるまでのアイドル時間を短く設定します。

ホスティング サービス プロバイダー:

承認ポリシーを使用して読み書きのアクセスを制限します。
悪意のあるユーザー 悪意のあるユーザーが、承認されていない RD ゲートウェイを経由してポートに接続しようとする可能性があります。 たとえば、悪意のあるユーザーが Hyper-V ホスト上の RDP ポートに接続し、ユーザー名とパスワードの組み合わせを使用しようとすることがあります。 リモート デスクトップ リソースの承認ポリシーを RD ゲートウェイ サーバーに構成して、ユーザーが Hyper-V サーバー上のポート 3389 に直接接続できないようにします。 必要なのはポート 2179 への接続のみです。 詳細については、「リモート デスクトップ リソース承認ポリシー (RD RAP) を管理する」を参照してください。
man-in–the-middle 攻撃 Hyper-V で解決されたセキュリティ問題の 1 つとして、いわゆる man-in-the-middle (MITM) 攻撃に対する保護が挙げられます。 信頼された証明書を使用して Hyper-V ホストを識別することで、MITM 攻撃に対する保護が強化されます。 Hyper-V は、サーバーの承認に信頼された証明書を用いた単一ポート リスナーを使用します。 状況によっては、Hyper-V が自己署名証明書を発行し、サーバーの承認にその証明書を使用します。 もう 1 つの方法として、証明機関 (CA) から発行された証明書など、異なる証明書を使用するように Hyper-V を構成することもできます。 Hyper-V ホスト証明書は、信頼されたルート証明書に接続されている有効な証明書チェーンと併用します。 これにより、リモート コンピューターの ID を確認できないというエラー メッセージを避けることができます。 詳細については、「Configuring Certificates for Virtual Machine Connection (バーチャル マシン接続のための証明書の構成)」を参照してください。
セッションの捜索 コンソール接続がアクティブな場合、ホスト スタッフはバーチャル マシンのスナップショットを作成して、バーチャル マシンを別のサーバーにエクスポートしたり、コンソールのサムネイル イメージを収集できます。 承認ポリシーを使用して読み書きのアクセスを制限します。 テナントに、どのような場合にスタッフがコンソールのセッションにアクセスするかを開示します。
ネットワークの構成 悪意のあるユーザーが RDP ファイル内のプロパティを使用して、ネットワークの構成に関する情報を取得する可能性があります。 Hyper-V を実行しているサーバーへの接続に、ホスト名と IP アドレスのどちらを使用するかを決定します。 この情報は、サービス消費者に送信される RDP ファイルに含まれています。 また、コンソール接続の開始時に Hyper-V を実行するサーバーから送信される証明書にも含まれています。

インターネットやユーザーのバーチャル マシンから、Hyper-V を実行しているサーバーに直接アクセスできないように、ネットワークの構成を設定します。 IP アドレス (特に IPv6 アドレス) を使用すると、開示される情報の量を減らすことができます。

参照

Microsoft Azure パックを構成してリモート デスクトップ ゲートウェイを使用する方法