所有连接均要求 RDP 上使用 TLS

所有连接均要求 RDP 上使用 TLS

我有一台 2008 DC 和一台 2008 AD CS 服务器以及一台 Windows 7 客户端。我想要的是要求在 RDP 连接到服务器时使用证书。

证书有效,如果我使用 FQDN 连接,系统会显示我已按预期通过证书和 Kerberos 进行身份验证。当我仅使用主机名连接时,我被允许连接并且仅通过 Kerberos 进行身份验证,即使我在要通过 RDP 连接的服务器上设置了需要 TLS 1.0。我完全理解,除非通过 FQDN 访问服务器,否则证书将无效,我想要做的是禁止不使用证书和 Kerberos 的连接。

我以为设置需要 TLS 1.0 就可以了。我遗漏了什么?

答案1

  1. 开始 -> 管理工具 -> 终端服务 -> 终端服务配置
  2. 右键单击 RDP-Tcp 并选择属性
  3. “安全层”默认为“协商”,必须更改为“SSL(TLS 1.0)”
  4. “加密级别”必须设置为“高”或“符合 FIPS 标准”

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

编辑: Microsoft Technet 文章指出无法通过组策略启用 TLS。但是,我对 Process Monitor 和 Regedit 进行了一些实验,并确定您可以通过设置适当的注册表值来更改这些设置,如下所示。

要将最低加密级别设置为“高”而不是“客户端兼容”:

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

要将安全层设置为“SSL(TLS 1.0)”而不是“协商”:

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

答案2

为了测试你的场景,我做了以下事情:

  • 我有 Windows Server 2008 R2 DC
  • 已安装的角色 -> Active Directory 证书服务、Active Directory 域服务、Remote Desktop Services -> Remote Desktop Web AccessWeb 服务器 (IIS)。由于这是我唯一的 DC,因此我还安装了 DNS 服务器和 DHCP 服务器
  • 安装Server Authentication Certificate在我的 IIS 网站上,它还托管 RDWeb 应用程序
  • 更改身份验证RDWeb from Anonymous to Windows Authentication
  • 从服务器本身访问网站,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"

现在,访问网站 URL:https://fqdn/rdweb 并使用 fiddler 跟踪它,我们看到所有 HTTPS 连接都带有密码:0x2F。尝试使用 URL:https://server_name 得到相同的结果。

根据https://www.rfc-editor.org/rfc/rfc5289
CipherSuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = {0xC0,0x2F};

另外,检查一下Windows 7 中使用自定义证书的 RDP?(没有 tsconfig.msc 或组策略设置)

对于 WMI,你可以查看文章Win32_TSGeneralSetting 类

答案3

您是否已通过数据包捕获确认客户端未协商 TLS 连接?据我所知,这是唯一可以确定它是否按预期工作的方法。

相关内容