Start typing to search across invoices, services, domains, tickets, and more...
Un servidor Windows en internet recibe escaneos en el puerto 3389 e intentos de adivinar contraseñas a los pocos minutos de arrancar, por lo que el refuerzo de la seguridad de su VPS Windows debería ser su primera tarea. Para Windows Server 2016/2019/2022, esta guía explica cómo usar una cuenta de administrador con contraseña segura y nombre cambiado, configurar una directiva de bloqueo de cuentas, activar la autenticación a nivel de red (NLA) de RDP, restringir RDP a su IP, desactivar servicios innecesarios, comprobar Microsoft Defender y auditar los inicios de sesión fallidos (evento 4625) con Get-WinEvent.
Use al menos 16 caracteres combinando mayúsculas, minúsculas, números y símbolos, y no la reutilice en ningún otro lugar. Casi todas las herramientas de fuerza bruta atacan el nombre de usuario Administrator, así que cambiarlo detiene la mayoría de los ataques no dirigidos.
# Establecer una nueva contraseña segura (se le pedirá; no se muestra nada en pantalla)
net user Administrator *
# Cambiar el nombre de la cuenta Administrator integrada
Rename-LocalUser -Name "Administrator" -NewName "srvadmin"
Get-LocalUser | Format-Table Name,Enabled,LastLogonUna directiva de bloqueo bloquea temporalmente las cuentas tras varias contraseñas incorrectas, lo que ralentiza enormemente los ataques de fuerza bruta. También puede configurarla en secpol.msc → Account Policies (Directivas de cuenta) → Account Lockout Policy (Directiva de bloqueo de cuenta).
# Bloquear una cuenta durante 30 minutos tras 5 intentos fallidos en 30 minutos
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30
net accountsNLA exige autenticarse antes de crear una sesión completa de Escritorio remoto, lo que reduce el consumo de recursos de las conexiones no autenticadas y mitiga algunas vulnerabilidades de RDP. Marque "Allow connections only from computers running Remote Desktop with Network Level Authentication" ("Permitir solo las conexiones desde equipos que ejecuten Escritorio remoto con Autenticación a nivel de red") en System Properties (Propiedades del sistema) → Remote (Acceso remoto), o ejecute:
$rdp = "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
Set-ItemProperty -Path $rdp -Name UserAuthentication -Value 1
Get-ItemProperty -Path $rdp -Name UserAuthentication, PortNumberEsta es la protección más eficaz contra los ataques de fuerza bruta a RDP. Los comandos modifican las reglas de firewall integradas de Escritorio remoto para que solo pueda conectarse la IP o la subred de su oficina. Los nombres de las reglas son idénticos en todos los idiomas del sistema operativo. Si cambió el puerto RDP y creó una regla personalizada, configure también -RemoteAddress en esa regla.
# Reglas integradas de Escritorio remoto (los nombres son iguales en todos los idiomas del sistema)
Set-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP, RemoteDesktop-UserMode-In-UDP -RemoteAddress 203.0.113.10, 198.51.100.0/24
Get-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP | Get-NetFirewallAddressFilter
# Deshacer: volver a permitir RDP desde cualquier lugar
Set-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP, RemoteDesktop-UserMode-In-UDP -RemoteAddress AnyCada servicio en ejecución es superficie de ataque. Liste los servicios en ejecución y detenga los que no necesite. La cola de impresión (Print Spooler) rara vez se necesita en un servidor y ha tenido vulnerabilidades graves. No toque los servicios del sistema si no está seguro de lo que hacen.
Get-Service | Where-Object { $_.Status -eq "Running" } | Sort-Object DisplayName | Format-Table Name,DisplayName
# Ejemplo: la cola de impresión rara vez se necesita en un servidor
Stop-Service -Name Spooler
Set-Service -Name Spooler -StartupType DisabledWindows Server 2016 y versiones posteriores incluyen el Antivirus de Microsoft Defender. Confirme que la protección en tiempo real está activada, actualice las firmas y ejecute un análisis rápido.
Get-MpComputerStatus | Select-Object AMServiceEnabled,RealTimeProtectionEnabled,AntivirusSignatureLastUpdated
Set-MpPreference -DisableRealtimeMonitoring $false
Update-MpSignature
Start-MpScan -ScanType QuickScanEl evento con ID 4625 registra un inicio de sesión fallido. Los comandos siguientes listan los fallos recientes y las IPs de origen con más intentos en las últimas 24 horas, para que pueda ver si está sufriendo un ataque y bloquear a los atacantes con una regla de firewall.
# Asegurarse de que se auditan los inicios de sesión fallidos (GUID = subcategoría "Logon", independiente del idioma)
auditpol /set /subcategory:"{0CCE9215-69AE-11D9-BED3-505054503030}" /failure:enable
# Últimos 20 inicios de sesión fallidos
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
Select-Object TimeCreated, @{n='User';e={$_.Properties[5].Value}}, @{n='SourceIP';e={$_.Properties[19].Value}}
# IPs con más ataques en las últimas 24 horas
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddDays(-1)} |
ForEach-Object { $_.Properties[19].Value } | Group-Object | Sort-Object Count -Descending |
Select-Object -First 10 Count, NameReduce el ruido de los escaneos automatizados, pero no sustituye a una contraseña segura ni a la restricción por IP. Combine las tres medidas; consulte nuestra guía "cambiar el puerto RDP de Windows".
Permita el rango de su proveedor de internet (ISP), o conéctese a través de un servidor de salto (jump host) o una VPN con IP fija y abra el Escritorio remoto desde allí.
Normalmente el inicio de sesión fue local o la dirección no se capturó durante NLA. Si ve muchos, compárelos con los registros del firewall.
¿Sigue sin resolverlo después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico de IMIDC, disponible 24/7, le ayudará. Incluya la IP del servidor, la versión del sistema operativo, los comandos que ejecutó y una captura de pantalla del error para que podamos localizar el problema más rápido.