账户锁定策略是windows原生防爆破基础防线,需设账户锁定阈值为5次、锁定时间≥30分钟且重置计数器时间不短于锁定时间;powershell脚本可每5分钟自动封禁异常ip;关闭远程桌面服务与防火墙规则能彻底消除攻击面。

远程桌面端口(默认3389)暴露在公网后,每分钟都可能遭遇成百上千次密码猜测尝试,不加防护的Windows服务器会在几小时内被攻破。
启用账户锁定策略(系统原生方案)
这是Windows自带、无需安装额外工具的最基础防线,但必须正确配置才有效。
第一步:按 Win + R 输入 secpol.msc 回车,打开本地安全策略。
第二步:依次展开【账户策略】→【账户锁定策略】,双击【账户锁定阈值】。
第三步:输入一个合理数值,【建议设为5次】——设太高形同虚设,设为1则自己输错一次就锁死,运维完全瘫痪。
第四步:确认【账户锁定时间】不为0,否则锁完立刻自动解锁;同时确保【重置账户锁定计数器】时间 ≥ 锁定时间,避免计数器提前清零导致策略失效。
注意:该策略锁定的是账户本身,不是IP。一旦触发,合法用户在同一时间段内也无法登录,务必提前告知所有管理员。
用PowerShell脚本自动封禁攻击IP
账户锁定只能延缓攻击,真正治本的是把反复失败的IP直接挡在防火墙外。Windows自带PowerShell就能完成实时拦截。
方法一:一键部署检测脚本
新建记事本,粘贴以下内容 → 保存为 block-brute.ps1(注意后缀必须是.ps1):
通过 handsfree-windows CLI控制 Windows 本机应用 (UIA) 和浏览器 (Playwright) 的引导技能,用于自动化或测试桌面应用。
```powershell
$log = Get-WinEvent -FilterHashtable @{LogName='Security';ID=4625;StartTime=(Get-Date).AddMinutes(-15)} -ErrorAction SilentlyContinue
if ($log) {
$ips = $log.Properties[19].Value | Sort-Object -Unique
foreach ($ip in $ips) {
if ($ip -and $ip -notmatch '^(127\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.|192\.168\.)') {
$ruleName = "Block_$ip"
if (-not (Get-NetFirewallRule -DisplayName $ruleName -ErrorAction SilentlyContinue)) {
New-NetFirewallRule -DisplayName $ruleName -Direction Inbound -Action Block -RemoteAddress $ip -Profile Any -Enabled True
}
}
}
}
方法二:设置定时任务自动运行
以管理员身份打开 PowerShell,执行:
Register-ScheduledTask "AutoBlockBrute" -Trigger (New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5)) -Action (New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\path\to\block-brute.ps1") -Settings (New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable) -Description "每5分钟扫描失败日志并封禁异常IP"
这一步必须用管理员权限运行,否则防火墙规则无法创建;脚本只处理最近15分钟内的4625事件,避免误封历史IP或内网地址。
关闭不必要的远程入口
减少攻击面比加固入口更有效。如果你不需要全天候远程访问,就该让它“按需开启”。
进入【设置】→【系统】→【远程桌面】,关闭【启用远程桌面】开关。
右键【此电脑】→【属性】→【远程设置】→ 选择【不允许远程连接到此计算机】。
按下 Win + R 输入 services.msc,找到 Remote Desktop Services → 右键【停止】→ 属性中将启动类型改为【禁用】。
【关键提醒:禁用服务后,即使远程桌面开关被意外打开,RDP也完全不会监听任何端口】
最后检查 Windows 防火墙入站规则,删除所有名称含“RemoteDesktop”或端口为3389的允许规则。










