Ir al contenido
06 · Protocolos heredadosParte 3 de 4Básico

Endurecer el Escritorio remoto (RDP) en Windows

Protege el Escritorio remoto con NLA, la capa de seguridad TLS, certificados de PKI, usuarios restringidos, firewall acotado, límites de sesión y los registros adecuados.

Florian Amette9 min de lectura

El Escritorio remoto es la forma en que se administran la mayoría de los servidores Windows, y también uno de los canales de acceso inicial y movimiento lateral más habituales en los incidentes de ransomware. El RDP expuesto sufre ataques de fuerza bruta; el RDP interno se usa con credenciales robadas para saltar de servidor en servidor. La mayor parte de la defensa no tiene nada de exótico: autenticar antes de que exista una sesión, cifrar con un certificado de confianza, limitar quién puede conectarse y desde dónde, y registrarlo.

Esta guía forma parte del área de protocolos heredados. Proteger las credenciales del administrador en el servidor de destino (Restricted Admin y Remote Credential Guard) es un tema aparte, tratado en RDP sin exponer credenciales.

La configuración en una tabla

Todas las opciones de directiva de grupo siguientes están en Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host, seguido de la subcarpeta indicada.

SubcarpetaOpciónValor
SecurityRequire user authentication for remote connections by using Network Level AuthenticationEnabled
SecurityRequire use of specific security layer for remote (RDP) connectionsEnabled, SSL
SecuritySet client connection encryption levelEnabled, High Level
SecurityAlways prompt for password upon connectionEnabled
SecurityRequire secure RPC communicationEnabled
SecurityServer authentication certificate templateEl nombre de tu plantilla de RDP
ConnectionsAllow users to connect remotely by using Remote Desktop ServicesEnabled solo donde haga falta RDP
Session Time LimitsSet time limit for disconnected sessions1 hora o menos en los servidores
Session Time LimitsSet time limit for active but idle Remote Desktop Services sessionsDe 15 a 60 minutos
Device and Resource RedirectionDo not allow drive redirectionEnabled en los servidores
Device and Resource RedirectionDo not allow Clipboard redirectionEnabled en Tier 0 y en los servidores sensibles

Los valores del Registro correspondientes al agente de escucha RDP residen en HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp: UserAuthentication = 1 (NLA), SecurityLayer = 2 (TLS), MinEncryptionLevel = 3 (High). Los valores de directiva se escriben en HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services y tienen prioridad.

Paso 1: mantener RDP fuera de Internet

Ninguna opción de esta guía hace que sea seguro exponer RDP directamente. Para el acceso remoto usa una de estas vías:

  • Puerta de enlace de Escritorio remoto (Remote Desktop Gateway) con MFA (por ejemplo, mediante la extensión de NPS para la autenticación multifactor de Microsoft Entra), exponiendo solo HTTPS.
  • Una VPN con MFA, con RDP accesible solo desde el grupo de direcciones de la VPN.
  • Un servicio de bastión en la nube delante de las VM alojadas en la nube.

Comprueba con regularidad tu exposición externa desde fuera, y revisa en los firewalls las reglas NAT del puerto 3389 y de todo lo que se reenvíe a él. Cambiar el puerto de escucha (PortNumber en la clave RDP-Tcp) no es un control.

Paso 2: exigir la autenticación a nivel de red

Con NLA, el cliente se autentica con CredSSP antes de que el servidor cree una sesión o muestre una pantalla de inicio de sesión. Eso elimina superficie de ataque previa a la autenticación (las vulnerabilidades del tipo BlueKeep se mitigaban con NLA) e impide que los usuarios anónimos consuman recursos de sesión.

NLA es el valor por defecto en las versiones actuales de Windows, pero con frecuencia se desactiva para «arreglar» un problema de conexión y nunca se vuelve a activar. Aplícala por directiva y después corrige la causa de fondo: normalmente un cliente antiguo, un host de salto fuera del dominio o un usuario que tiene que cambiar una contraseña caducada (NLA no puede pedir un cambio de contraseña; los usuarios necesitan otra forma de hacerlo).

Establece también Encryption Oracle Remediation en Force Updated Clients en Computer Configuration > Policies > Administrative Templates > System > Credentials Delegation, para que ninguno de los dos extremos acepte interlocutores CredSSP sin parches.

Paso 3: usar TLS con un certificado de confianza

Con la capa de seguridad en SSL (TLS), cada conexión se cifra con TLS y el servidor demuestra su identidad con un certificado. Por defecto ese certificado es autofirmado, así que los usuarios aprenden a aceptar la advertencia sin leerla, que es exactamente en lo que confía un atacante intermedio.

Emite los certificados de RDP desde tu PKI interna:

  1. Duplica la plantilla Computer en AD CS, ponle un nombre (por ejemplo RDP-Server) y asegúrate de que las directivas de aplicación incluyen Server Authentication (o el OID dedicado Remote Desktop Authentication 1.3.6.1.4.1.311.54.1.2). Concede la inscripción automática a los grupos de equipos correspondientes.
  2. Establece Server authentication certificate template con el nombre de esa plantilla. Los equipos se inscriben automáticamente y vinculan el certificado al agente de escucha.
  3. En los clientes, deja Configure server authentication for client (en Remote Desktop Connection Client) en Warn me o establécela en Do not connect en las estaciones de administración, para que una discrepancia de certificado no se acepte en silencio.

Junto con el endurecimiento de TLS y Schannel, esto da a RDP un canal moderno y autenticado.

Paso 4: restringir quién puede conectarse y desde dónde

Usuarios. El derecho de usuario Allow log on through Remote Desktop Services (Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > User Rights Assignment) se asigna por defecto a Administrators y Remote Desktop Users. Establécelo explícitamente por nivel de servidor en un grupo de administración reducido. Añade Deny log on through Remote Desktop Services para las cuentas locales (Local account and member of Administrators group, SID S-1-5-114) y, en los niveles inferiores, para las cuentas de Tier 0, como se describe en el modelo de administración por niveles. Mantén vacío el grupo local Remote Desktop Users en los servidores salvo que se administre de forma centralizada.

Puestos de trabajo. La mayoría de los puestos de usuario no necesitan aceptar RDP en absoluto. Deja Allow users to connect remotely deshabilitada en ellos; el soporte técnico puede usar en su lugar una herramienta de asistencia remota.

Redes. Acota las reglas de firewall de entrada a tu red de administración o a las estaciones de trabajo de acceso privilegiado:

PowerShell
Set-NetFirewallRule -DisplayGroup "Remote Desktop" `
  -RemoteAddress 10.10.50.0/24 -Profile Domain

Haz lo mismo de forma centralizada mediante la directiva de firewall descrita en la guía del Firewall de Windows, que además bloquea el RDP entre puestos de trabajo.

Fuerza bruta. Windows 11 22H2 y posteriores incluyen una directiva de bloqueo de cuentas por defecto (10 intentos fallidos en 10 minutos) para las cuentas locales. Para las cuentas de dominio se aplica tu directiva de bloqueo del dominio. El bloqueo es un último recurso, no una defensa para el RDP expuesto.

Paso 5: registrar la actividad de RDP

RegistroEventoSignificado
Security4624, tipo de inicio de sesión 10Inicio de sesión RDP correcto (RemoteInteractive)
Security4625Inicio de sesión fallido; con NLA, los fallos suelen aparecer como tipo de inicio de sesión 3
Security4778 / 4779Sesión reconectada / desconectada
TerminalServices-RemoteConnectionManager/Operational1149Autenticación de red correcta de un usuario desde una IP
TerminalServices-LocalSessionManager/Operational21, 23, 24, 25Inicio de sesión, cierre de sesión, desconexión, reconexión
RemoteDesktopServices-RdpCoreTS/Operational131Conexión aceptada desde una IP y un puerto de cliente

Activa Audit Logon y Audit Other Logon/Logoff Events (aciertos y errores) en la directiva de auditoría avanzada; la línea base de directiva de auditoría cubre ambas. Genera alertas ante inicios de sesión RDP de cuentas privilegiadas fuera de las PAW, ante RDP de puesto de trabajo a puesto de trabajo y ante ráfagas de eventos 4625.

Qué se rompe

  • Cambio de contraseña al iniciar sesión con NLA: los usuarios con contraseñas caducadas no pueden conectarse hasta que la restablezcan en otro sitio. Ofréceles un restablecimiento de autoservicio o el cambio mediante Ctrl+Alt+Fin en una sesión que funcione.
  • La eliminación de la redirección del portapapeles y de unidades frustra a los administradores que mueven archivos. Proporciona una vía adecuada de transferencia de archivos.
  • Clientes ligeros antiguos que no admiten NLA ni TLS 1.2.
  • Los límites de tiempo de sesión terminan los trabajos interactivos de larga duración. Ejecútalos como tareas programadas o servicios, no en una sesión desconectada.

Verificarlo

PowerShell
Get-CimInstance -Namespace root\cimv2\TerminalServices -ClassName Win32_TSGeneralSetting `
  -Filter "TerminalName='RDP-Tcp'" |
  Select-Object UserAuthenticationRequired, SecurityLayer, MinEncryptionLevel, SSLCertificateSHA1Hash
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Get-NetFirewallAddressFilter

Lo esperado es UserAuthenticationRequired = 1, SecurityLayer = 2, MinEncryptionLevel = 3, y una huella digital de certificado que corresponda a un certificado emitido por la PKI en el almacén personal del equipo, no a uno autofirmado. Conéctate desde una PAW y confirma que no aparece ninguna advertencia de certificado; conéctate desde una subred que no sea de administración y confirma que se agota el tiempo de espera.

Lista de comprobación

  • Ningún RDP expuesto a Internet; acceso remoto mediante RD Gateway o VPN con MFA
  • NLA exigida por directiva; Encryption Oracle Remediation en Force Updated Clients
  • Capa de seguridad TLS, nivel de cifrado High, certificados de PKI mediante plantilla
  • RDP deshabilitado en los puestos de trabajo que no lo necesitan
  • «Allow log on through Remote Desktop Services» limitado a los grupos de administración de cada nivel
  • Inicio de sesión RDP denegado a las cuentas de administrador local (S-1-5-114)
  • Reglas de firewall acotadas a las redes de administración
  • Límites de tiempo de sesión y restricciones de redirección en los servidores
  • Eventos 4624 tipo 10, 1149 y de LocalSessionManager recopilados y con alertas

Esta configuración protege al servidor frente a la red. Para proteger al administrador frente a un servidor comprometido, continúa con Restricted Admin y Remote Credential Guard.

Preguntas frecuentes

¿Mejora la seguridad cambiar el puerto de RDP del 3389?

Apenas. Los escáneres que recorren todo Internet encuentran RDP en cualquier puerto en cuestión de horas, así que un puerto distinto solo reduce el ruido en los registros de los bots más perezosos. Además complica las reglas de firewall y la documentación. Dedica el esfuerzo a mantener RDP completamente fuera de Internet, exigir la autenticación a nivel de red, acotar la regla de firewall a las redes de administración y poner una puerta de enlace de Escritorio remoto (RD Gateway) con MFA delante de todo acceso remoto.

¿Qué diferencia hay entre NLA y Restricted Admin o Remote Credential Guard?

La autenticación a nivel de red (NLA) hace que el cliente se autentique antes de que se creen una sesión y una pantalla de inicio de sesión, lo que protege al servidor de atacantes no autenticados. Restricted Admin y Remote Credential Guard protegen las credenciales del cliente frente a un servidor comprometido. Resuelven problemas opuestos, así que usa NLA en todas partes y añade uno de los modos de protección de credenciales para los administradores.

¿Qué evento muestra quién inició sesión por RDP?

El evento de seguridad 4624 con el tipo de inicio de sesión 10 (RemoteInteractive) registra un inicio de sesión por RDP, incluida la dirección de origen. El evento 1149 del registro TerminalServices-RemoteConnectionManager Operational muestra una autenticación de red correcta, y los eventos 21, 24 y 25 del registro TerminalServices-LocalSessionManager Operational muestran el inicio de sesión, la desconexión y la reconexión. Correlaciónalos para seguir una sesión de principio a fin.

Endurecer el Escritorio remoto (RDP) en Windows

Guías relacionadas

Protección de credenciales

RDP sin exponer credenciales: RCG y Restricted Admin

Evita que RDP deje credenciales reutilizables en los servidores: Remote Credential Guard, modo Restricted Admin, DisableRestrictedAdmin y delegación de credenciales.

Intermedio
Control de aplicaciones

AppLocker paso a paso: scripts, instaladores y apps

Despliega AppLocker con seguridad: servicio Application Identity, modo auditoría, reglas de editor para EXE, scripts, MSI y apps empaquetadas, y carpetas con escritura.

Intermedio