好的,各位技术人员,下面是概要。我已经在网络中的 VM 上安装了 Server 2008 r2 远程桌面服务。我安装了以下 RD 角色服务:RD 会话主机、许可、连接代理、网关、Web 访问。当我最初设置时,网关服务器和 RDWeb 在本地正常工作。在本地 (remoteserver.domainname.local) 运行后,我想在外部测试一下。从外部,我无法运行它(这意味着我可以从外部连接到 rdweb 访问,但当我尝试运行应用程序时,我会收到“无法连接/找到计算机”的消息)。这是我的外部访问设置
- VM 上安装了每个 RD 服务角色服务,这意味着它充当网关、rd Web 访问、会话主机、许可等所有角色。
- 我在网关服务器上创建了一个自签名证书(证书名称为gateway.domainname.net)。在内部,我有一个名为 domainname.net 的辅助正向查找区域,其中有一个指向网关服务器本地 IP 的 A 记录网关。在我们的公共 DNS(domainname.net)上,我有一个 A 记录网关。这是为了从外部访问 RDWeb。
- 在 IIS 中,我有以下身份验证设置 RDWeb:除匿名身份验证外全部禁用 Rpc:除基本身份验证和 Windows 身份验证外全部禁用 RpcWithCert:除 Windows 身份验证外全部禁用
- 我在我们的 sonicwall tz210 中拥有必要的网络访问配置(https 和 rdp,外部 ip 指向 rds 服务器的本地 ip)
- RAP 和 CAP 具有正确的用户和计算机组、身份验证和允许的设备
完成所有这些之后,外部访问时会发生以下情况。我可以正确登录 RDWeb Access(我尝试过虚假登录,但我无法登录,所以它正常工作)。我看到了可供使用的应用程序。我单击一个应用程序,单击“连接”,凭据窗口打开,我输入了正确的用户凭据,它尝试连接到网关服务器,但凭据窗口再次出现。我尝试达到登录失败次数的限制,但从未达到过一次,哈哈。
因此,我尝试从同一台外部客户端计算机通过远程桌面连接来连接到网关。我在 RD 窗口中输入了正确的网关设置,尝试连接并获得与在 RDWeb 访问中相同的结果。
我检查了 RD 服务计算机上的事件日志,并在尝试外部登录时看到以下事件 ID:
ID 6037,消息为“程序 svchost.exe(分配的进程 ID 为 2168)无法使用目标名称 host/gateway.domainname.net 进行本地身份验证。使用的目标名称无效。目标名称应引用本地计算机名称之一,例如 DNS 主机名。请尝试其他目标名称。”
ID 10 RADWebAccess “RD Web Access 无法访问 gateway.domainname.net,该服务器被指定为运行 RemoteApp 和桌面连接管理服务。请确保 RD Web Access 服务器的计算机帐户是 gateway.domainname.net 上 TS Web Access Computers 安全组的成员”
ID 4625“帐户登录失败。
主题:安全 ID:NULL SID 帐户名称:- 帐户域:- 登录 ID:0x0
登录类型:3
登录失败的帐户:安全 ID:NULL SID 帐户名称:管理员帐户域:gateway.domainname.net
故障信息:故障原因:未知用户名或密码错误。状态:0xc000006d 子状态:0xc000006a
进程信息:调用者进程 ID:0x0 调用者进程名称:-
网络信息:工作站名称:USER-LAPTOP 源网络地址:外部 IP 源端口:63125
详细身份验证信息:登录过程:NtLmSsp 身份验证包:NTLM 传输服务:- 包名称(仅限 NTLM):- 密钥长度:0
登录请求失败时会生成此事件。该事件在尝试访问的计算机上生成。
主题字段指示本地系统上请求登录的帐户。这通常是诸如服务器服务之类的服务,或诸如 Winlogon.exe 或 Services.exe 之类的本地进程。
登录类型字段表示请求的登录类型。最常见的类型是 2(交互式)和 3(网络)。
进程信息字段指示系统上的哪个帐户和进程请求登录。
网络信息字段指示远程登录请求的来源。工作站名称并非始终可用,在某些情况下可能会留空。
身份验证信息字段提供有关此特定登录请求的详细信息。 - 传输服务指示哪些中间服务参与了此登录请求。 - 包名称指示在 NTLM 协议中使用了哪个子协议。”
我认为虚拟机没有空 SID。虚拟机的 SID 和其物理主机的 SID 不同。我可以使用外部网关名称从外部访问 rpc 的空白页。
似乎身份验证有问题。另外,网关服务器的外部名称与本地名称不匹配是个问题吗?外部名称(证书所基于的名称)是gateway.domainname.net,内部名称是remoteserver.domainname.local。我能想到的唯一问题就是这个,但是外部名称必须与本地名称不同,对吧?在内部,我ping gateway.domainname.net,它给了我服务器的正确本地 IP。现在,AD 中没有实际的计算机名称,但我不知道如何实现这一点?
我希望我已经说清楚了……任何帮助都会很感激。我想我已经接近实现这个目标了。:)
答案1
导致此问题的一个可能原因:
Internally, I have a secondary forward-lookup zone called domainname.net with an A record gateway pointing to the local IP of the gateway server.
这个。不要这样做。丢失该 DNS 记录。您不应该混合内部和外部 DNS 区域,并且 RDS Gateway 旨在与该规则配合使用。在远程桌面客户端中,将网关服务器设置为 domainname.net,然后在您要连接的主机中,使用服务器的内部 DNS 名称。
作为旁白,
I have the necessary web access config in our sonicwall tz210 (https and rdp, external ip pointing to local ip of rds server)
您根本不需要打开 RDP 端口 (TCP 3389)。如果您使用 RDS 网关,所有流量都会超过 443。