在 Internet 上保持 RDP 开放是否危险?

我经常读到这样的观点:保持 RDP(远程桌面协议)端口对 Internet 开放是非常不安全的,不应该这样做。 但您需要通过 VPN 或仅从某些“白色”IP 地址授予对 RDP 的访问权限。

我为小公司管理多台 Windows Server,负责为会计师提供对 Windows Server 的远程访问。 这是现代趋势——在家工作。 很快,我就意识到折磨VPN会计是一件吃力不讨好的事情,收集所有IP白名单是行不通的,因为人们的IP地址是动态的。

因此,我采取了最简单的路线——将RDP端口转发到外部。 要获得访问权限,会计师现在需要运行 RDP 并输入主机名(包括端口)、用户名和密码。

在这篇文章中,我将分享我的经验(积极的和不那么积极的)和建议。

风险

打开 RDP 端口有什么风险?

1)未经授权访问敏感数据
如果有人猜到了 RDP 密码,他们将能够获取您想要保密的数据:帐户状态、余额、客户数据……

2)数据丢失
例如,由于勒索软件病毒。
或者攻击者故意采取的行动。

3) 工作站丢失
工人需要工作,但系统受到损害,需要重新安装/恢复/配置。

4) 本地网络受到损害
如果攻击者获得了对 Windows 计算机的访问权限,那么他将能够从该计算机访问从外部、从 Internet 无法访问的系统。 例如,文件共享、网络打印机等。

我遇到过一个 Windows Server 捕获勒索软件的案例

该勒索软件首先加密了 C: 盘上的大部分文件,然后开始通过网络加密 NAS 上的文件。 由于NAS是Synology,配置了快照,所以我在5分钟内恢复了NAS,并从头开始重新安装Windows Server。

观察和建议

我使用以下方式监控 Windows 服务器 Winlogbeat,它将日志发送到 ElasticSearch。 Kibana 有多种可视化效果,我还设置了一个自定义仪表板。
监测本身并不能起到保护作用,但有助于确定必要的措施。

以下是一些观察结果:
a) RDP 将被暴力破解。
在其中一台服务器上,我没有在标准端口 3389 上安装 RDP,而是在 443 上安装 - 好吧,我将自己伪装成 HTTPS。 改变标准端口可能是值得的,但它不会有多大作用。 以下是该服务器的统计数据:

在 Internet 上保持 RDP 开放是否危险?

可以看到,一周内有近 400 次通过 RDP 登录失败的尝试。
可以看到有55个IP地址尝试登录(有些IP地址已经被我屏蔽了)。

这直接暗示了你需要设置fail2ban的结论,但是

Windows 上没有这样的实用程序。

Github 上有几个废弃的项目似乎可以做到这一点,但我什至没有尝试安装它们:
https://github.com/glasnt/wail2ban
https://github.com/EvanAnderson/ts_block

还有付费水电费,但我没有考虑过。

如果您知道用于此目的的开源实用程序,请在评论中分享。

更新:评论建议端口 443 是一个不好的选择,最好选择高端口(32000+),因为 443 被扫描的频率更高,识别该端口上的 RDP 不是问题。

b) 攻击者更喜欢某些用户名
可以看出,搜索是在不同名字的字典中进行的。
但我注意到的是:大量尝试使用服务器名称作为登录名。 建议:不要对计算机和用户使用相同的名称。 此外,有时看起来他们正在尝试以某种方式解析服务器名称:例如,对于名称为 DESKTOP-DFTHD7C 的系统,最多尝试登录的名称是 DFTHD7C:

在 Internet 上保持 RDP 开放是否危险?

因此,如果您有 DESKTOP-MARIA 计算机,您可能会尝试以 MARIA 用户身份登录。

我从日志中注意到的另一件事是:在大多数系统上,大多数登录尝试都是使用“管理员”名称。 而这也不是没有道理的,因为在Windows的很多版本中,都存在这个用户。 而且,无法删除。 这简化了攻击者的任务:您只需猜测密码,而不需要猜测名称和密码。
顺便说一句,捕获勒索软件的系统的用户名为 Administrator,密码为 Murmansk#9。 我仍然不确定该系统是如何被黑客入侵的,因为我在那次事件发生后就开始监控,但我认为这种杀伤力很可能是过大的。
那么如果Administrator用户无法删除的话,该怎么办呢? 你可以重命名它!

本段的建议:

  • 不要在计算机名称中使用用户名
  • 确保系统上没有管理员用户
  • 使用强密码

因此,我已经观察了我控制下的几台 Windows 服务器被暴力破解了大约几年,但没有成功。

我怎么知道它不成功?
因为在上面的截图中你可以看到有成功的RDP调用的日志,其中包含以下信息:

  • 来自哪个IP
  • 来自哪台计算机(主机名)
  • 用户名
  • 地理IP信息

我定期检查那里 - 没有发现异常情况。

顺便说一句,如果某个特定 IP 的暴力破解特别困难,那么您可以在 PowerShell 中像这样阻止单个 IP(或子网):

New-NetFirewallRule -Direction Inbound -DisplayName "fail2ban" -Name "fail2ban" -RemoteAddress ("185.143.0.0/16", "185.153.0.0/16", "193.188.0.0/16") -Action Block

对了,Elastic除了Winlogbeat之外,还有 审核节奏,它可以监视系统上的文件和进程。 Kibana 中还有一个 SIEM(安全信息和事件管理)应用程序。 我尝试了这两种方法,但没有看到太多好处 - 看起来 Auditbeat 对于 Linux 系统会更有用,而 SIEM 还没有向我展示任何可以理解的东西。

好吧,最后的建议:

  • 定期进行自动备份。
  • 及时安装安全更新

奖励:最常用于 RDP 登录尝试的 50 个用户的列表

“用户名:降序”
计数

dfthd7c(主机名)
842941

winsrv1(主机名)
266525

管理员
180678

管理员
163842

管理员
53541

迈克尔
23101

服务器
21983

steve
21936

约翰
21927

保罗
21913

招待会
21909

麦克风
21899

办公室
21888

扫描器
21887

浏览
21867

大卫
21865

克里斯
21860

业主
21855

经理
21852

administrateur
21841

布赖恩
21839

管理员
21837

标记
21824

员工
21806

ADMIN
12748


7772

署长
7325

客户服务
5577

SOPORTE
5418

USER
4558

管理员
2832

测试
1928

MySQL的
1664

行政专员
1652

GUEST
1322

用户1
1179

SCANNER
1121

SCAN
1032

行政人员
842

管理员1
525

备份
518

MySql管理员
518

接待
490

用户2
466

TEMP
452

SQL管理员
450

用户3
441

1
422

经理
418

业主
410

来源: habr.com

添加评论