15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar
09.10.2024

Uso del Protocolo de Escritorio Remoto (RDP) para iniciar sesión en su servidor Windows

El Protocolo de Escritorio Remoto (RDP) es un protocolo de red propietario de Microsoft que permite el acceso gráfico completo y cifrado a una máquina Windows remota a través del puerto TCP 3389. Transmite la salida de pantalla del servidor al cliente y la entrada de teclado/ratón del cliente de vuelta al servidor, proporcionándote efectivamente una sesión interactiva en tiempo real en una máquina en la que no estás físicamente presente.

Para los administradores de servidores, RDP es el método principal para gestionar una instancia de Windows Server, ya sea que ese servidor sea una máquina bare-metal en un centro de datos, un entorno de VPS Hosting, o un Servidor Dedicado que ejecuta Windows Server 2019, 2022 o posterior. Esta guía cubre el flujo de trabajo completo: habilitar RDP, protegerlo contra vectores de ataque del mundo real, conectarse desde Windows, macOS y Linux, y diagnosticar los fallos que toman por sorpresa a los administradores.

Cómo funciona RDP internamente

Antes de tocar una sola configuración, comprender la arquitectura del protocolo resulta muy valioso al momento de solucionar problemas.

RDP opera sobre TCP (y opcionalmente UDP para la redirección multimedia) y utiliza TLS 1.2/1.3 para el cifrado de transporte en todas las versiones modernas de Windows Server. La pila de sesión consta de varios canales virtuales que transportan distintos tipos de datos simultáneamente:

  • Canal de gráficos — actualizaciones de pantalla comprimidas mediante aceleración RemoteFX o GDI
  • Canal de entrada — eventos de teclado y ratón
  • Canal de portapapeles — uso compartido bidireccional del portapapeles
  • Canales de redirección de unidades/impresoras — mapeo de recursos locales en la sesión remota
  • Canal de audio — redirección de reproducción y grabación de audio remoto

Cada canal se multiplexa sobre una única conexión TCP al puerto 3389 de forma predeterminada. El componente del lado del servidor es TermService (Remote Desktop Services), y el listener es gestionado por RDPWinST.sys a nivel de kernel. Cuando cambias el puerto de escucha, estás modificando un valor del registro que este controlador lee al iniciar el servicio.

La Autenticación a Nivel de Red (NLA) añade una capa de autenticación previa a la sesión mediante CredSSP (Credential Security Support Provider). Con NLA habilitado, el cliente debe autenticarse con credenciales válidas antes de que el servidor asigne una sesión de escritorio completa, lo que reduce drásticamente la superficie de ataque para ataques de denegación de servicio y fuerza bruta contra la pantalla de inicio de sesión.

Lista de verificación de requisitos previos

Confirma cada elemento a continuación antes de intentar una conexión:

  • Una instancia de Windows Server (2016, 2019 o 2022) con RDP habilitado
  • La dirección IPv4 pública o un nombre de host resoluble para el servidor
  • Una cuenta con nivel de administrador válida en el servidor
  • Un cliente RDP instalado en tu máquina local
  • El puerto 3389 (o tu puerto personalizado) abierto tanto en el firewall del sistema operativo como en cualquier firewall de red upstream o grupo de seguridad
  • Soporte de NLA en el lado del cliente (habilitado por defecto en todos los clientes RDP modernos de Windows, macOS y Linux)

Paso 1: Habilitar RDP en Windows Server

RDP está deshabilitado por defecto en instalaciones nuevas de Windows Server. Existen dos métodos confiables para habilitarlo.

Método A: Interfaz gráfica (Propiedades del sistema)

  1. Abre el Administrador del servidor o presiona Win + R, escribe sysdm.cpl y presiona Enter.
  2. Navega a la pestaña Acceso remoto.
  3. En Escritorio remoto, selecciona Permitir las conexiones remotas a este equipo.
  4. Asegúrate de que esté marcada la opción Permitir conexiones solo desde equipos que ejecuten Escritorio remoto con Autenticación a nivel de red.
  5. Haz clic en Aceptar.

Método B: PowerShell (preferido para automatización)

Para implementaciones sin interfaz gráfica o con scripts, PowerShell es más rápido y scriptable:

# Enable RDP
Set-ItemProperty -Path 'HKLM:SystemCurrentControlSetControlTerminal Server' `
    -Name "fDenyTSConnections" -Value 0

# Enable NLA
Set-ItemProperty -Path 'HKLM:SystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' `
    -Name "UserAuthentication" -Value 1

# Allow RDP through Windows Firewall
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

# Confirm the service is running
Set-Service -Name TermService -StartupType Automatic
Start-Service TermService

Verificación de la regla de firewall

El grupo de reglas de firewall integrado “Escritorio remoto” cubre las reglas de entrada necesarias. Verifica con:

Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Select-Object DisplayName, Enabled, Direction

Si estás detrás del grupo de seguridad de un proveedor de nube (común en entornos de VPS con cPanel o VPS gestionados), también debes abrir el puerto 3389 en el panel de firewall externo del proveedor — el firewall del sistema operativo por sí solo no es suficiente.

Paso 2: Localizar la dirección IP pública del servidor

Desde la consola del servidor

Abre un símbolo del sistema elevado y ejecuta:

ipconfig /all

Busca la Dirección IPv4 bajo el adaptador de red activo. En un servidor con múltiples NICs (común en hardware dedicado), identifica el adaptador conectado a la red pública cruzando la referencia con la puerta de enlace predeterminada.

Para una salida más limpia, usa PowerShell:

Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.IPAddress -notlike "127.*" } |
    Select-Object InterfaceAlias, IPAddress

Desde tu panel de control de hosting

Si aprovisionaste el servidor a través de un proveedor de hosting, la IP pública aparece en el panel de control. Para los Servidores Dedicados de AlexHost, la IP se muestra inmediatamente después del aprovisionamiento en el área de cliente.

Caso límite importante: Si tu servidor está detrás de NAT (por ejemplo, una nube privada o un hipervisor con redes internas), la IP mostrada por ipconfig será una dirección privada RFC 1918. Necesitarás conectarte a la IP pública del gateway NAT y configurar el reenvío de puertos hacia la IP privada del servidor en el puerto 3389.

Paso 3: Conectarse al servidor mediante RDP

Desde Windows

El cliente integrado es mstsc.exe (Microsoft Terminal Services Client). Inícialo desde Ejecutar (Win + R) o el menú Inicio:

mstsc /v:YOUR_SERVER_IP:3389

Para una sesión en pantalla completa con la redirección de unidades deshabilitada (una configuración predeterminada consciente de la seguridad):

mstsc /v:YOUR_SERVER_IP /f /nodrives

En la interfaz gráfica:

  1. Introduce la IP del servidor en el campo Equipo.
  2. Haz clic en Mostrar opciones para rellenar previamente el nombre de usuario, lo que evita el aviso de credenciales adicional.
  3. En la pestaña Experiencia, selecciona la velocidad de conexión apropiada para optimizar el renderizado.
  4. Haz clic en Conectar, acepta la advertencia del certificado en la primera conexión (verifica la huella digital del certificado si la seguridad es crítica) e introduce tu contraseña.

Desde macOS

La aplicación oficial de Microsoft Microsoft Remote Desktop (disponible gratuitamente en la Mac App Store) es el cliente recomendado.

  1. Abre la aplicación y haz clic en el botón +, luego en Agregar PC.
  2. Introduce la IP del servidor en Nombre del PC.
  3. En Cuenta de usuario, haz clic en Agregar cuenta de usuario e introduce tus credenciales.
  4. Opcionalmente, configura los ajustes de Pantalla y la redirección de Dispositivos y audio.
  5. Haz doble clic en la conexión guardada para iniciar la sesión.

Desde Linux

Existen dos opciones maduras en Linux:

Remmina (basado en GTK, recomendado para entornos de escritorio):

sudo apt install remmina remmina-plugin-rdp   # Debian/Ubuntu
sudo dnf install remmina remmina-plugin-rdp   # RHEL/Fedora

Inicia Remmina, crea una nueva conexión, selecciona RDP como protocolo, introduce la IP del servidor, las credenciales y conéctate.

FreeRDP (línea de comandos, ideal para scripts o clientes sin interfaz gráfica):

sudo apt install freerdp2-x11
xfreerdp /v:YOUR_SERVER_IP /u:Administrator /p:'YourPassword' /cert:ignore /dynamic-resolution

El indicador /cert:ignore suprime la advertencia del certificado — aceptable en un entorno controlado, pero debe reemplazarse con la fijación adecuada del certificado en producción.

Comparación de clientes RDP

CaracterísticaWindows (mstsc)macOS (MS RD App)Linux (FreeRDP)Linux (Remmina)
Soporte NLA
Redirección de unidades
Uso compartido del portapapeles
Redirección de audioSí (plugin)Sí (plugin)
Múltiples monitoresSí (`/multimon`)Limitado
RemoteFX / GPUParcialParcial
Autenticación con tarjeta inteligenteNoNo
Indicadores de línea de comandosNoSí (completo)No
CostoGratuito (integrado)GratuitoGratuito (código abierto)Gratuito (código abierto)

Paso 4: Reforzar RDP contra amenazas del mundo real

RDP es uno de los servicios más activamente atacados en internet. Shodan indexa constantemente millones de endpoints RDP expuestos, y las campañas automatizadas de fuerza bruta funcionan las 24 horas del día, los 7 días de la semana. Las siguientes medidas no son opcionales para ningún servidor en producción.

Cambiar el puerto de escucha predeterminado

Cambiar del puerto 3389 a un puerto no estándar elimina la gran mayoría de los escáneres automatizados. Edita el registro:

$newPort = 54321  # Replace with your chosen port
Set-ItemProperty -Path 'HKLM:SystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' `
    -Name "PortNumber" -Value $newPort -Type DWord

# Update firewall rule
New-NetFirewallRule -DisplayName "RDP Custom Port" -Direction Inbound `
    -Protocol TCP -LocalPort $newPort -Action Allow

# Disable the default rule
Disable-NetFirewallRule -DisplayName "Remote Desktop - User Mode (TCP-In)"

Restart-Service TermService

Recuerda actualizar tu grupo de seguridad en la nube para permitir el nuevo puerto y bloquear el 3389.

Restringir el acceso por dirección IP

Si tu estación de trabajo administrativa tiene una IP estática, restringe RDP únicamente a esa IP:

Set-NetFirewallRule -DisplayName "RDP Custom Port" `
    -RemoteAddress "YOUR_ADMIN_IP"

Aplicar una política de bloqueo de cuentas

Previene los ataques de fuerza bruta configurando un umbral de bloqueo de cuentas. En la Directiva de grupo (gpedit.msc):

  • Umbral de bloqueo de cuenta: 5 intentos fallidos
  • Duración del bloqueo de cuenta: 30 minutos
  • Restablecer el contador de bloqueo de cuenta después de: 15 minutos

O mediante PowerShell:

net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:15

Implementar una VPN o túnel SSH como puerta de enlace

El enfoque más robusto es no exponer RDP a la internet pública en absoluto. Coloca RDP detrás de una VPN (WireGuard u OpenVPN) o un túnel SSH. Los administradores se conectan primero a la VPN y luego acceden por RDP a la IP privada del servidor. Esto elimina completamente la superficie de ataque.

Habilitar Windows Defender Credential Guard

En Windows Server 2016 y versiones posteriores, Credential Guard aísla los hashes de credenciales en un enclave de seguridad basado en virtualización, previniendo ataques de pass-the-hash que pueden pivotar desde una sesión RDP comprometida.

Auditar y registrar sesiones RDP

Habilita la auditoría mediante la Directiva de grupo en Configuración del equipo > Configuración de Windows > Configuración de seguridad > Configuración de directiva de auditoría avanzada > Inicio/cierre de sesión. Registra tanto los eventos de éxito como los de fallo. Reenvía los registros a un SIEM o, como mínimo, revisa periódicamente los eventos Event ID 4624 (inicio de sesión exitoso) y Event ID 4625 (inicio de sesión fallido) en el Visor de eventos.

Paso 5: Solución de problemas comunes de conexión RDP

Conexión rechazada (código de error 0x204 / “No se puede conectar con el equipo remoto”)

Esto es casi siempre un problema de firewall o enrutamiento.

# Test from the client machine (replace with your server IP and port)
Test-NetConnection -ComputerName YOUR_SERVER_IP -Port 3389

Si TcpTestSucceeded devuelve False, el puerto está bloqueado. Verifica:

  1. El firewall del sistema operativo en el servidor (Get-NetFirewallRule -DisplayGroup "Remote Desktop")
  2. El grupo de seguridad o ACL del proveedor de nube
  3. Cualquier firewall de hardware intermedio entre el cliente y el servidor

Error de autenticación (“Se ha producido un error de autenticación. La función solicitada no es compatible.”)

Esto generalmente significa que el cliente no admite la versión del Proveedor de soporte de seguridad de credenciales (CredSSP) requerida por el servidor, lo que suele ocurrir después de una actualización de seguridad de Windows (parche CVE-2018-0886). Solución en el servidor:

# Temporary workaround — update the client instead when possible
Set-ItemProperty -Path 'HKLM:SOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters' `
    -Name "AllowEncryptionOracle" -Value 2 -Type DWord

La solución permanente es actualizar el cliente RDP a una versión parcheada que admita el protocolo CredSSP actualizado.

“La sesión remota se desconectó porque no hay servidores de licencias de Escritorio remoto disponibles”

Esto ocurre cuando el rol Host de sesión de Escritorio remoto (RDSH) del servidor está instalado pero no hay ningún servidor de licencias de RD configurado. Para el acceso administrativo simple (no implementaciones RDSH multiusuario), elimina el rol RDSH o configura un período de gracia de 120 días:

# Check licensing mode
(Get-WmiObject -Namespace root/CIMV2/TerminalServices -Class Win32_TerminalServiceSetting).LicensingType

Un valor de 2 significa Por dispositivo, 4 significa Por usuario. Para el acceso solo de administrador, el valor debe ser 5 (no configurado / período de gracia).

Pantalla negra después del inicio de sesión

Una pantalla negra en la conexión RDP generalmente indica una de estas tres causas:

  • Fallo de Explorer.exe: Presiona Ctrl + Alt + End para abrir el Administrador de tareas, luego ejecuta explorer.exe desde Archivo > Ejecutar nueva tarea.
  • Conflicto de controlador de pantalla: Deshabilita la aceleración de hardware en la sesión RDP mediante la Directiva de grupo.
  • Problema de acceso remoto a GPU: En servidores con GPU dedicadas (relevante para cargas de trabajo de GPU Hosting), asegúrate de que el adaptador RemoteFX vGPU esté correctamente configurado.

Sesión RDP lenta o con retraso

Optimiza el rendimiento ajustando la configuración de experiencia de conexión en mstsc:

mstsc /v:YOUR_SERVER_IP /f

En la pestaña Experiencia, selecciona LAN (10 Mbps o superior) y deshabilita el Fondo de escritorio, el Suavizado de fuentes y la Composición del escritorio para obtener la máxima capacidad de respuesta en enlaces de alta latencia.

RDP vs. protocolos alternativos de acceso remoto

CriterioRDPSSH (con X11/XRDP)VNCTeamViewer
ProtocoloPropietario (Microsoft)Estándar abiertoEstándar abiertoPropietario
CifradoTLS 1.2/1.3AES-256 (ChaCha20)Opcional (túnel TLS)AES-256
AutenticaciónNLA / Kerberos / Tarjeta inteligentePar de claves / ContraseñaContraseñaBasada en cuenta
RendimientoAlto (GDI comprimido)Alto (CLI), Bajo (GUI)Bajo-MedioMedio
Sesiones múltiplesSí (RDSH)
Soporte nativo en WindowsIntegradoRequiere OpenSSHRequiere clienteRequiere instalación
Traversal de firewallPuerto único (3389)Puerto único (22)Puerto único (5900)Basado en relay
Caso de uso idealAdministración de servidores WindowsAdministración de Linux/UnixGUI multiplataformaSoporte/helpdesk

Para la administración de Windows Server, RDP sigue siendo la opción superior en términos de rendimiento, integración nativa y profundidad de funciones. SSH es el protocolo preferido para entornos de VPS Hosting basados en Linux.

Gestión de múltiples sesiones RDP y credenciales guardadas

Guardar archivos de conexión RDP

mstsc admite archivos de configuración .rdp, que son archivos de texto plano que puedes gestionar con control de versiones:

full address:s:YOUR_SERVER_IP:3389
username:s:Administrator
prompt for credentials:i:1
audiomode:i:0
redirectdrives:i:0
redirectclipboard:i:1

Guárdalos como server.rdp y haz doble clic para iniciar, o invócalos mediante:

mstsc server.rdp

Administrador de credenciales

En Windows, las credenciales RDP guardadas se almacenan en el Administrador de credenciales (control keymgr.dll). Para scripts automatizados o canalizaciones CI/CD que necesiten acceso RDP, usa la utilidad cmdkey:

cmdkey /generic:YOUR_SERVER_IP /user:Administrator /pass:YourPassword
mstsc /v:YOUR_SERVER_IP
cmdkey /delete:YOUR_SERVER_IP

Elimina las credenciales inmediatamente después de su uso para evitar la exposición persistente de credenciales.

Lista de verificación de puntos clave prácticos

Úsala como matriz de verificación previa a la implementación y posterior a incidentes:

Configuración inicial

  • RDP habilitado mediante fDenyTSConnections = 0 en el registro
  • NLA aplicado (UserAuthentication = 1)
  • TermService configurado como Automático y en ejecución
  • Regla de firewall activa para el puerto correcto

Red y control de acceso

  • Puerto predeterminado 3389 cambiado a un puerto no estándar
  • Grupo de seguridad en la nube actualizado para reflejar el nuevo puerto
  • Lista de IPs permitidas configurada en la regla de firewall
  • RDP no expuesto directamente a internet (se prefiere una puerta de enlace VPN)

Autenticación y refuerzo

  • Política de bloqueo de cuentas configurada (5 intentos / bloqueo de 30 minutos)
  • Contraseña fuerte y única para todas las cuentas con acceso RDP
  • Credential Guard habilitado en Windows Server 2016+
  • Acceso RDP limitado al grupo de Administradores integrado o a un grupo RDP dedicado

Monitoreo

  • Política de auditoría habilitada para eventos de inicio/cierre de sesión
  • Alertas Event ID 4625 configuradas para fallos repetidos
  • Registros de sesión revisados periódicamente o reenviados a un SIEM

Del lado del cliente

  • Cliente RDP actualizado a la última versión
  • Archivos .rdp almacenados de forma segura y no confirmados en repositorios públicos
  • Credenciales guardadas en el Administrador de credenciales revisadas y depuradas regularmente

Preguntas frecuentes

¿Qué puerto usa RDP y se puede cambiar?

RDP escucha en el puerto TCP 3389 de forma predeterminada. Puedes cambiarlo modificando el valor DWORD PortNumber bajo HKLM:SystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp y reiniciando el servicio TermService. Actualiza tus reglas de firewall para que coincidan.

¿Qué es la Autenticación a nivel de red (NLA) y debería estar siempre habilitada?

NLA requiere que el cliente se autentique mediante CredSSP antes de que el servidor cree una sesión de escritorio completa. Esto evita que usuarios no autenticados lleguen a la pantalla de inicio de sesión de Windows, reduciendo significativamente la exposición a ataques de relleno de credenciales y denegación de servicio. Siempre debe estar habilitada en servidores en producción, a menos que tengas un requisito específico de compatibilidad con clientes heredados.

¿Por qué se desconecta mi conexión RDP después de un período de inactividad?

Los tiempos de espera de sesión están controlados por la Directiva de grupo en Configuración del equipo > Plantillas administrativas > Componentes de Windows > Servicios de Escritorio remoto > Host de sesión de Escritorio remoto > Límites de tiempo de sesión. Las directivas relevantes son Establecer límite de tiempo para sesiones desconectadas y Establecer límite de tiempo para sesiones de Servicios de Escritorio remoto activas pero inactivas. Configúralas según tus requisitos operativos en lugar de dejarlas con los valores predeterminados.

¿Pueden varios usuarios conectarse a un Windows Server mediante RDP simultáneamente?

Una instalación estándar de Windows Server admite dos sesiones RDP administrativas concurrentes. Para más usuarios simultáneos, necesitas el rol Host de sesión de Escritorio remoto (RDSH) y Licencias de acceso de cliente de Servicios de Escritorio remoto (RDS CALs) válidas. Sin la licencia adecuada, el servidor entra en un período de gracia de 120 días antes de rechazar conexiones.

¿Es seguro exponer RDP directamente en la internet pública?

No. Exponer directamente RDP en el puerto 3389 a internet invita a ataques automatizados de fuerza bruta, campañas de entrega de ransomware (RDP es el principal vector de acceso inicial para el ransomware) y la explotación de vulnerabilidades sin parches. Siempre coloca RDP detrás de una VPN, restringe el acceso por IP, cambia el puerto predeterminado y aplica NLA y políticas de bloqueo de cuentas como línea de base mínima.

15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar