2008 DCと2008 AD CSサーバーおよびWindows 7クライアントがあります。サーバーにRDPするときに証明書を使用するように要求します。
証明書は有効であり、FQDNを使用して接続すると、期待どおりに証明書とKerberosの両方で認証されたことが示されます。ホスト名だけで接続すると、RDPを実行するサーバーでTLS 1.0が必須に設定されていても、接続が許可され、Kerberosによってのみ認証されます。サーバーがFQDNによってアクセスされない限り、証明書は有効ではないことを完全に理解しています。私がしたいのは、証明書とKerberosを使用しない接続を許可しないことです。
Require TLS 1.0を設定することでそれができると思いました。何が欠けていますか?
参照: 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
あなたのシナリオをテストするために、ここで私がやったことです:
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
の認証を変更注:TLS 1.0を使用しているかどうかはまだわかりません
ここで、RDWebがTLSのみで動作するように強制するには:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
に移動Binary Value
を作成し、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 を確認できます。
クライアントがTLS接続をネゴシエートしていないことをパケットキャプチャで確認しましたか?それが確実に期待通りに機能していることを確認する唯一の方法です。