TL;DR我们正在考虑为终端服务器打开端口 3389,我看到的所有建议都是自杀,但没有很好地解释原因。真的有那么糟糕吗?
我们正在考虑设置一个终端服务器,供员工远程访问。他们将使用大量设备,包括 iPad、Android Divices、Windows(XP 到 8)、OSX、Linux,以及几乎任何带有 RDP 客户端的设备。
我希望这是愚蠢的简单并且可以处理所有事情。我的计划是设置 remote.example.com(显然是我们的真实域名)指向我们的服务器,然后通过以下方式保护它:
- 防火墙除端口 3389 之外的所有内容。
- 将加密级别设置为最高(带有证书)并且不允许“协商”
- 锁定超过 7 次失败尝试的帐户,并查看一些脚本以根据登录失败的 IP 地址进行阻止(https://security.stackexchange.com/a/17354/22241)
- 其他明显的事情,例如操作系统更新和防病毒。
然而,当我谈到建立一个面向公众的 RDP 时,他们的反应通常是这样的:
“不要打开端口 3389 将 VPN 放在它前面” ——但据我所知,对此的两个主要论点是加密(RDP 不是已经这样做了吗?)和更好的身份验证,因为人们会蛮力 RDP . 我们已经有一个 PPTP VPN 设置,但它只是使用与我们的终端服务器相同的帐户用户名/密码组合进行身份验证,因此我没有看到终端服务器添加到我们的攻击面。我认为唯一有分量的论点是设置支持两因素身份验证的 VPN(例如 Cisco),这听起来不错,但会大大减少支持的设备数量。
“不要这样做,使用 RD 网关” 据我所见,阅读http://technet.microsoft.com/en-us/library/cc731150.aspx RD 网关的优点是:
从单个入口点管理多台服务器,精细控制谁可以连接到什么等等。- 听起来不错,但我们只有一台终端服务器。
使用端口 443/HTTPS,因此配置不佳的出站防火墙后面的人可以连接 - 听起来不错,但 RDP 已经提供加密,更改端口不会增加安全性。此外,对于不需要处理出站防火墙的所有额外便利,大多数 RDP 客户端都缺乏支持(最后我检查了 OSX 客户端无法连接到 RD 网关)
“不要使用 RDP,使用(Hamachi/Team Viewer/Jump Desktop/VNC ......认真/其他一些 RDP 工具)它更安全” 对我来说,这些建议中的任何一个都是从将所有鸡蛋放在一个篮子(微软)到把所有你的鸡蛋放在另一个篮子里(Hamachi),但没有切实的安全利益。
我只是不屑一顾吗?设置面向公众的 RDP 服务器是个坏主意吗?