web-dev-qa-db-ja.com

すべての接続にRDPでTLSを要求する

2008 DCと2008 AD CSサーバーおよびWindows 7クライアントがあります。サーバーにRDPするときに証明書を使用するように要求します。

証明書は有効であり、FQDNを使用して接続すると、期待どおりに証明書とKerberosの両方で認証されたことが示されます。ホスト名だけで接続すると、RDPを実行するサーバーでTLS 1.0が必須に設定されていても、接続が許可され、Kerberosによってのみ認証されます。サーバーがFQDNによってアクセスされない限り、証明書は有効ではないことを完全に理解しています。私がしたいのは、証明書とKerberosを使用しない接続を許可しないことです。

Require TLS 1.0を設定することでそれができると思いました。何が欠けていますか?

6
MDMarra
  1. スタート->管理ツール->ターミナルサービス->ターミナルサービス構成
  2. RDP-Tcpを右クリックし、[プロパティ]を選択します
  3. 「セキュリティ層」のデフォルトは「ネゴシエート」であり、「SSL(TLS 1.0)」に変更する必要があります
  4. 「暗号化レベル」は「高」または「FIPS準拠」に設定する必要があります

参照: http://technet.Microsoft.com/en-us/library/cc782610(WS.10).aspx

edit:Microsoft Technetの記事によると、グループポリシーを使用してTLSを有効にすることはできません。ただし、私はProcess MonitorとRegeditを使用していくつかの実験を行い、次のように適切なレジストリ値を設定することでこれらの設定を変更できると判断しました。

最小暗号化レベルを「クライアント互換」ではなく「高」に設定するには:

HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\MinEncryptionLevel REG_DWORD値:3

Security Layerを "Negotiate"ではなく "SSL(TLS 1.0)"に設定するには:

HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\SecurityLayer
REG_DWORD値:2

10
Skyhawk

あなたのシナリオをテストするために、ここで私がやったことです:

  • Windows Server 2008 R2 DCを持っています
  • インストールされている役割-> Active Directory証明書サービス、Active Directoryドメインサービス、Remote Desktop Services -> Remote Desktop Web Access、Webサーバー(IIS)。これは私の唯一のDCなので、DNSサーバーとDHCPサーバーもインストールされています
  • Server Authentication Certificateをmy IIS Webサイトにインストールしました。RDWebアプリケーションもホストしています
  • RDWeb from Anonymous to Windows Authenticationの認証を変更
  • サーバー自体からWebサイトにアクセスしました。URL: https:// localhost/rdweb 。正常に動作します
  • 私のクライアント(Windows Server 2008 R2)から、次のURLにアクセスしてみました: https:// fqdn/rdweb 機能します。また、試したURL: https:// server_name/rdweb ..は機能します。

注:TLS 1.0を使用しているかどうかはまだわかりません

ここで、RDWebがTLSのみで動作するように強制するには:

  1. Regeditを開く
  2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcpに移動
  3. 新しいBinary Valueを作成し、SSLCertificateSHA1Hashという名前を付けます
  4. SSL証明書からサムプリントをコピーし、SSLCertificateSHA1Hashの値として追加します

例えば。:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"SSLCertificateSHA1Hash"="hex:‎23,91,fc,0e,95,ad,e9,3e,fa,df,3d,54,54,f0,99,dc,cd,70,5c,5c"

これで、WebサイトのURL: https:// fqdn/rdweb にアクセスしました。フィドラーを使用してトレースすると、Cipher:0x2Fを使用したすべてのHTTPS接続が表示されます。次のURLを使用してみました: https:// server_name 同じ結果。

http://tools.ietf.org/html/rfc5289 によれば、
CipherSuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = {0xC0,0x2F};

また、これを確認してください Windows 7のカスタム証明書を使用したRDP?(tsconfig.mscまたはグループポリシー設定なし)

WMIについては、記事 Win32_TSGeneralSetting Class を確認できます。

1
Vivek Kumbhar

クライアントがTLS接続をネゴシエートしていないことをパケットキャプチャで確認しましたか?それが確実に期待通りに機能していることを確認する唯一の方法です。

0
Greg Askew