对整个互联网开放的 RDP 端口,在服务器启动几分钟后就会开始收到密码猜测。长密码能挡住,但每次猜测仍是一次登录尝试,会填满事件日志,也给下一个 RDP 漏洞送上攻击入口。五个步骤就能解决。每一步都是一条 PowerShell 命令,全部在发布前于我们的 Windows Server 2022 镜像上运行过。
通过 RDP 以管理员身份打开 PowerShell(如何连接),按顺序操作。第 4 步放到最后:只有这一步可能把你自己锁在外面。
1. 使用长且唯一的密码
如果你还在用首次登录的密码,请在控制面板中改成一个长密码(20 位以上,由密码管理器生成)。下面所有步骤都假设密码本身无法被猜中。
2. 开启网络级身份验证(NLA)
开启 NLA 后,Windows 会在创建会话、绘制登录界面之前先验证你的凭据。未经认证的连接永远到不了桌面代码,而最著名的 RDP 漏洞恰恰都在那里。查看当前状态:
(Get-CimInstance -Namespace root/cimv2/TerminalServices -ClassName Win32_TSGeneralSetting -Filter "TerminalName='RDP-tcp'").UserAuthenticationRequired
1 表示 NLA 已开启。如果看到 0,就开启它:
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1
Windows、macOS 和 Linux(xfreerdp)上当前的远程桌面客户端都支持 NLA。下次连接时,会在远程画面出现前先要求输入密码。
3. 多次失败后锁定账户
Windows Server 2022 的默认安装无论输错多少次密码,都不会锁定账户。自 2026 年 10 月 24 日起用我们的镜像安装的服务器已设好下面的上限;更早的服务器请自行设置:
net accounts /lockoutthreshold:5 /lockoutwindow:15 /lockoutduration:15
net accounts
15 分钟内输错 5 次,账户会被锁定 15 分钟。我们测试过:5 次失败后,普通用户和内置的 Administrator 都被锁定了。锁定会自动解除,所以就算早上频繁打错字,你损失的也只是一刻钟,而不是服务器。
4. 只允许你的 IP 访问 RDP
这一步能消除几乎所有噪音。Windows 防火墙规则接受远程地址列表,填入你自己的地址即可。在任意一个“查询我的 IP”页面看到当前的公网 IP,然后:
$myIp = '203.0.113.10' # your public IP; several: '203.0.113.10','198.51.100.0/24'
Get-NetFirewallPortFilter | Where-Object LocalPort -eq 3389 | Get-NetFirewallRule | Set-NetFirewallRule -RemoteAddress $myIp
这条命令会找出 3389 端口上的所有入站规则,而不仅仅是内置的“远程桌面”组。这一点很关键:2026 年 10 月 24 日之前用我们的镜像安装的服务器有一条名为“EQVPS RDP 3389”的额外规则,对所有人开放该端口,其他软件也可能添加自己的规则。如果只限制内置组,这类规则会让端口继续开着。我们自己测试时就犯过这个错误。检查结果:
Get-NetFirewallPortFilter | Where-Object LocalPort -eq 3389 | Get-NetFirewallRule |
Select-Object DisplayName, @{n='Remote';e={($_ | Get-NetFirewallAddressFilter).RemoteAddress}}
每一行都应显示你的地址。在我们的测试中,来自其他任何地址的连接都得不到响应,而被允许的地址可以连上。
在 NAT 套餐上也是一样。从你专属端口进来的转发会保留你的真实地址,所以放行你自己的公网 IP 即可。
如果你的 IP 变了,RDP 也会不再响应你。从控制面板打开浏览器控制台(它不经过 RDP,也不经过防火墙),登录后用新地址再执行一次命令。要完全取消白名单,使用 -RemoteAddress Any。
5. 查看谁在尝试登录
登录失败是安全日志中的 4625 事件。下面的命令会显示每次尝试的账户名和来源地址:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
Select-Object TimeCreated, @{n='User';e={$_.Properties[5].Value}}, @{n='SourceIP';e={$_.Properties[19].Value}}
设置白名单之前,你会看到来自陌生地址的 Administrator、admin、user 源源不断。设置之后,这个列表应该会安静下来。
不值得花时间的事
- 修改 RDP 端口。 在带独立 IPv4 的套餐上只能减少日志噪音,扫描器很快会找到新端口。在 NAT 套餐上会导致你无法访问,因为转发指向 3389。
- 为了“能用”而关闭防火墙。 如果改了规则后 RDP 不再响应,请通过浏览器控制台修正规则。
保持更新
最严重的 RDP 事件来自协议漏洞,而不是密码。Windows Server 2022 的安全更新会持续到 2031 年 10 月 14 日,请保持 Windows Update 开启,并在提示时重启。
镜像是使用你自有许可证的 Windows Server 2022(BYOL 如何运作)。套餐从 Windows-Small 起:4 vCPU、4 GB 内存、50 GB,NAT 版 $11/月。带独立 IPv4 的 Windows Small-IP 为 $28/月。四个套餐都在 Windows VPS 页面。如果想在 RDP 之外再用 SSH,请看 在 Windows Server 上使用 OpenSSH。
评论
暂无评论。来做第一个吧。