如何保护面向公众的远程桌面服务器?


16

我正在寻找需要公开我的远程桌面服务器(终端服务)以从网络外部进行访问的功能。目前,只能从我们的网络内部进行访问。

我知道打开防火墙并转发端口很容易。

但是,我该如何保护机器本身,以及最佳做法是什么?我担心的是,黑客能否进行破解。

任何最佳实践准则/建议将不胜感激。


编辑:

有关我发现的产品的问题:

按IP,MAC地址,计算机名称等过滤传入的RDP连接

有人可以对此发表评论吗?看起来我也可以用它来限制机器名称/ mac的访问?有人用过吗?


1
我认为您不仅在询问如何保护此计算机及其任何RDP连接的安全,而且还问如何在受到威胁时如何降低网络其余部分的风险。那正确吗?
dunxd 2012年

是的,由于我们的规模很小,只有一台RDP服务器,并且确实需要内部用户使用完整的桌面访问/网络资源。
me2011

Answers:


14

这可能比您要执行的操作要多,但是这是我们将RDP用于不使用VPN的远程用户的方式。

我们最近开始将RD网关管理器与Windows 2008中的角色“远程桌面服务”一起使用。我们已对其进行设置,以通过我们的TMG服务器并直接到达用户计算机。如上所述,它使用NLA。用户连接必须是正确的AD组的成员和正确的本地组的成员才能被允许访问。根据您想要的设置方式,您可以通过一个网页进行连接,该网页基本上会打开mstsc并输入RD网关的代理设置,或者您可以在计算机上手动设置这些设置,以便每次打开它时它都会尝试通过该代理。到目前为止,它运行良好,并且似乎是安全的。


3
为此+1。我也非常成功地使用RD网关,您只需要将端口443暴露给Internet即可正常工作。从几周前开始,RD网关就没有受到MS12-020错误的威胁,该错误威胁了RDP。
瑞安·里斯

+1攻击RD网关的机器人也比直接RDP少。
格兰特(Grant)

8

正如最近的历史向我们展示的那样,暴露该协议存在固有的风险。但是,您可以采取一些步骤来保护系统:

  • 实施网络级身份验证。
  • 强制执行连接加密。
  • 将允许通过终端服务登录的用户数量限制到绝对最低限度,并且不允许使用“特殊”帐户(例如默认域Administrator帐户),或者最好是任何其他高特权帐户。
  • 确保密码在允许登录的帐户上很安全。这取决于当前有多少用户以及您的策略如何,但是要转储散列并尝试破解它们,增加密码长度的限制,或者只是教育用户好的方法。

6

我强烈建议您使用远程桌面网关服务。它为您提供了一个地方,您可以在其中执行有关谁可以从何处连接到哪些内容的策略。它为您提供了一个记录日志的好地方,因此您可以查看谁在尝试登录而无需检查服务器场中各个服务器的事件日志。

如果尚未执行此操作,请确保将帐户锁定策略设置为非常严格。即使具有NLA和网关,RDP仍可为人们提供尝试暴力破解密码的功能。强有力的锁定策略极大地使得暴力破解尝试很难成功。

在系统上设置有效的SSL证书,因此,如果有人尝试执行某种MITM攻击,则客户端将通知最终用户。


3

这不是很安全,但是,有几种方法可以增强安全性。

禁止从该服务器访问Internet。许多更严重的恶意软件都会在系统受到威胁时尝试与他们的命令和控制服务器进行通信。将防火墙访问规则配置为默认情况下不允许出站访问,并且将规则配置为仅允许对内部/已知网络和RFC 1928子网的出站访问可以减轻风险。

使用智能卡或某些其他类型的两因素身份验证。这通常很昂贵,并且主要在大型组织中发现,但是选择正在改进(想到了PhoneFactor)。请注意,可以在每个服务器上完成对智能卡的要求,作为在帐户级别配置智能卡的一种选择。

配置外围网络,将远程桌面服务器放置在外围,然后使用廉价的VPN提供访问权限。例如Hamachi。请注意,禁止从外围网络访问Internet也是一种好习惯。

如果可能,不要提供完整的桌面,而要发布所需的应用程序。如果某人仅需要访问单个应用程序,则还可以配置“初始程序”,该程序可以是一个简单的包装程序外壳,可以在应用程序关闭时强制注销。


1

我建议采取以下措施:

  1. 更改用于远程桌面连接的端口
  2. 不要使用通用用户名,而是使用更复杂的命名策略
  3. 密码要求高
  4. 从外部(入站)关闭任何其他未使用的端口

可选的

  1. 使用VPN(CISCO,Open VPN等),然后使用内部IP连接到服务器。
  2. 尽可能使用智能卡登录

我倾向于更改防火墙上的端口,而不是服务器上的端口(在服务器上进行更改需要更改注册表)。通常更容易在路由器上设置端口转发,并且更安全(无需注册表操作)。
JohnThePro 2012年

是的:),我刚才说是因为有些人没有访问用户端口转发的知识。即使建议除非必要也不要更改注册表,但我从未遇到任何问题。您可以遇到的唯一问题是,如果将其更改为已使用的端口。
亚历克斯·H

是的,我的意思是这不是世界上最大的交易,任何知道regedit的人都可能很聪明,需要小心.....但是您不知道。:)
JohnThePro

1

您可以在端口22上运行WinSSHD,然后使用“ Tunnelier”客户端为您创建一个隧道,然后单击一下即可通过该隧道自动打开终端服务会话。这也为您提供了一个非常不错的安全FTP选项,用于传输文件。


1

我将ssh端口转发用于这些事情,并且只允许基于用户级别的基于公钥的身份验证。所有用户的私钥也应加密。在Windows上,Putty可以很好地做到这一点,选美使用户易于加载密钥。如果您不运行默认情况下具有ssh的任何Linux / BSD服务器,则可以在Cygwin中使用OpenSSH来执行此操作。

我建议使用专用的远程Shell服务器,该服务器应具有本地防火墙,以阻止不需要的人远程访问,因为在SSH中允许端口转发实际上是向您想要的用户开放任何内部服务器/端口。


1

Bitvise SSH是Windows的一个很好的免费SSH。

我会选择从客户端到Internet网关外围的廉价SSL VPN端接,而不是用于临时用途(例如,Commercial In-Confidence)。

以上有关保护RDP的帖子也是一种很好的做法,如果您不希望与Freeloader共享计算机,则应始终这样做。


0

不是真正的最佳实践,而是一些随机的想法:

  • 保持系统更新-允许进行自动更新,不要使用报废的产品,
  • 对所有系统帐户使用长/复杂密码
  • 我会在这里因建议“通过隐蔽性提供安全性”而被责骂,但如果您这样做,不会对您造成任何伤害:
    • 将默认的3389 / tcp端口更改为26438 / tcp之类的其他端口
    • 在防火墙级别添加端口敲除 [如果可能],以便潜在的rdp用户必须先访问某些网页,然后才可以rdp到您的服务器。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.