RDP 防护:端口、密码、限制
如何保护远程桌面免受暴力破解:地址白名单、更改端口、账户锁定,以及查看登录日志。
更新于 2026年8月23日
自动化扫描器会在几小时内发现暴露在互联网上的 3389 端口。接下来就是针对 Administrator 账户的密码暴力破解——这是 Windows 机器最常见的失守方式。防护由几个简单的层次构成。
第一层:谁可以连接
最有效的做法是只允许您自己的地址通过 RDP 连接。在 Windows 防火墙中,默认规则对所有人开放 3389 端口;请替换它。
Set-NetFirewallRule -DisplayGroup "Remote Desktop" -RemoteAddress 203.0.113.5,198.51.100.0/24
检查结果:
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Get-NetFirewallAddressFilter
如果您的家庭地址是动态的,可以选择只保留一个辅助节点的访问权限,或者搭建 VPN 并彻底关闭 RDP。万一规则写错了,总有应急入口:面板 /hosting/vds/m/<id> 中的“控制台”标签页,“Screen”模式。
第二层:账户与密码
- 修改创建时下发的密码,并设置得足够长——至少 16 个字符。
- 在“Remote Desktop Users”组中为自己创建一个单独的账户,并重命名内置的
Administrator:Rename-LocalUser -Name Administrator -NewName adm-local。所有暴力破解尝试中有一半针对的是Administrator这个名称。 - 启用失败尝试后的锁定:
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30
- 检查 NLA 是否已启用——即在建立会话之前进行身份验证:
Set-ItemProperty "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name UserAuthentication -Value 1
第三层:端口与监控
更改端口不是防护手段,但能挡掉大规模扫描器并让日志更干净:
Set-ItemProperty "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber -Value 34567
New-NetFirewallRule -DisplayName "RDP custom" -Direction Inbound -Protocol TCP -LocalPort 34567 -Action Allow -RemoteAddress 203.0.113.5
Restart-Service TermService -Force
之后通过 ADDRESS:34567 连接。禁用 3389 的旧规则。
留意谁在敲您的门:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
Select-Object TimeCreated, @{n='User';e={$_.Properties[5].Value}}, @{n='IP';e={$_.Properties[19].Value}}
事件 4625 是登录失败,4624 是登录成功。来自境外地址的 4625 事件源源不断,说明您始终没有启用地址过滤。
常见错误
- 只依赖更改端口。 扫描器一天之内就能在任何端口上找到 RDP;真正起作用的是允许列表。
- 为了兼容旧客户端而禁用 NLA。 这样一来任何人都能到达登录界面并给机器加载负担。
- 忘记其他用户。 检查谁被允许登录:
Get-LocalGroupMember "Remote Desktop Users"。 - 把自己锁在外面然后惊慌。 面板中的控制台始终可用,如果规则把一切都搞坏了,恢复磁盘会帮上忙。
账户、权限和组的详细内容见文章Windows Server 中的用户与权限,过滤器的通用设置见 Windows 防火墙。