Búsqueda de sitios web

Cambiar el puerto de escritorio remoto predeterminado (RDP) 3389 en Windows


En todos los sistemas operativos Windows, el puerto predeterminado asignado a RDP (Protocolo de escritorio remoto) es TCP 3389. Después de habilitar RDP en Windows, el

TermService

(Servicios de escritorio remoto) comienza a escuchar en el puerto 3389. En este artículo, le mostraremos cómo cambiar el número de puerto RDP predeterminado en las ediciones de escritorio de Windows (7/8/10/11) y en Windows Server usando el Editor del Registro y PowerShell.

Tenga en cuenta que las versiones modernas de Windows también usan UDP con el mismo número de puerto (3389) para conexiones de escritorio remoto además de TCP.

Puede cambiar el número de puerto RDP predeterminado en Windows de 3389 a cualquier otro. Esto se usa con mayor frecuencia cuando necesita ocultar su host RDP/RDS de los escáneres de puertos que buscan hosts de Windows en la red con un puerto RDP abierto TCP/3389.

Cambiar el puerto RDP reducirá las posibilidades de explotar las vulnerabilidades RDP (la última vulnerabilidad crítica en RDP BlueKeep se describe en CVE-2019-0708), reducirá la cantidad de ataques de fuerza bruta RDP (no olvide analizar regularmente los registros de conexión RDP) , SYN y otros tipos de ataques cuando NLA está deshabilitado. La mayoría de las veces, el puerto RDP se cambia en computadoras con una conexión directa a Internet (VPS/VDS), o en redes donde el enrutador perimetral reenvía el puerto 3389/RDP a un host de Windows en su LAN.

A pesar de cambiar el número de puerto, no es seguro abrir el puerto RDP en su host a Internet. Los escáneres de puertos permiten que un atacante descubra el agente de escucha RDP en un nuevo puerto (mediante firma). Si desea abrir el acceso RDP a una computadora en su red, es mejor usar VPN, RD Web Access, RDS Gateway y otras herramientas de conexión segura.

Al elegir un puerto RDP no estándar, tenga en cuenta que no se recomienda utilizar puertos en el rango

1-1023

(puertos conocidos). Use un puerto dinámico en el rango de puertos RPC (

49152 to 65535

), o cualquier puerto en el rango

1024 to 49151

que no está en uso por otro servicio o aplicación.

¿Cómo cambiar el puerto de escritorio remoto en Windows?

En nuestro ejemplo, cambiaremos el número de puerto en el que escucha el servicio de Escritorio remoto a 1350. Para hacer esto:

  1. Abra el Editor del Registro (

    regedit.exe

    ) y vaya a la clave de registro HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp;

  2. Busque el parámetro DWORD con el nombre PortNumber. Este parámetro muestra el puerto en el que escucha el servicio de escritorio remoto. El valor predeterminado es 3389 (decimal);

  3. Cambie el valor de este parámetro. He cambiado el puerto RDP a 1350 (Decimal);

    Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" -Name PortNumber -Value 1350
  4. Si el Firewall de Windows está habilitado en su computadora, deberá crear una nueva regla que permita la conexión entrante a su nuevo puerto RDP. Si está reconfigurando un host de Windows remoto a través de RDP, asegúrese de crear reglas de permiso en el firewall antes de reiniciar TermService; de lo contrario, perderá el acceso al servidor;

  5. Puede crear una regla de entrada permitida para su nuevo puerto TCP/UDP RDP manualmente en la consola del Firewall de Windows Defender (

    firewall.cpl

    ) o usando los cmdlets de PowerShell del módulo NetSecurity:

    New-NetFirewallRule -DisplayName "NewRDPPort-TCP-In" -Direction Inbound -LocalPort 1350 -Protocol TCP -Action allow
    New-NetFirewallRule -DisplayName "NewRDPPort-UDP-In" -Direction Inbound -LocalPort 1350 -Protocol UDP -Action allow

  6. Reinicie su computadora o reinicie su servicio de Escritorio remoto con este comando:

    net stop termservice & net start termservice

  7. Para conectarse a este host de Windows a través de Escritorio remoto, debe especificar el nuevo puerto de conexión RDP en su cliente mstsc.exe usando los dos puntos de la siguiente manera:

    RDPComputerName:1350

    o por dirección IP:

    192.168.1.10:1350

    o desde el símbolo del sistema:

    mstsc.exe /v 192.168.1.10:1350


    Si está utilizando RDCMan para administrar varias conexiones RDP, puede especificar el puerto RDP que configuró en la pestaña Configuración de conexión.

  8. Luego, se conectará con éxito al escritorio remoto de una computadora usando el nuevo puerto RDP. Puedes usar el

    netstat -na | Find “LIST” 

    Comando para asegurarse de que su Servicio de escritorio remoto esté escuchando en un nuevo puerto.

Tenga en cuenta que el número de puerto UDP RDP también cambió automáticamente a 1350 (puede verificar esto con la herramienta TCPView).

Use el comando Test-NetConnection para verificar que el puerto RDP predeterminado 3389 ahora esté cerrado (

TcpTestSucceeded: False

):

Test-NetConnection 192.168.3.102 -port 3389 |select TcpTestSucceeded

Ahora necesita usar el nuevo puerto 1350 para la conexión RDP.

Nota. Si cambia el número de puerto de escucha RDP predeterminado, es posible que tenga algunos problemas con el uso de Asistencia remota, las conexiones RDP ocultas en Windows 10, así como la ocultación RDS en Windows Server.

Si desea cambiar el número de puerto RDP en las computadoras del dominio, puede usar las funciones de la Política de grupo. Cree un nuevo GPO que implementará el parámetro de registro PortNumber con el nuevo número de puerto RDP en las computadoras del dominio.

Cambiar el número de puerto de escucha RDP con PowerShell

Una secuencia de comandos completa de PowerShell para cambiar el número de puerto RDP, crear la regla de firewall y reiniciar el servicio de Escritorio remoto podría verse así:

Write-host "Specify the number of your new RDP port: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "NewRDPPort-TCP-In-$RDPPort" -Direction Inbound -LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "NewRDPPort-UDP-In-$RDPPort" -Direction Inbound -LocalPort $RDPPort -Protocol UDP -Action Allow
Restart-Service termservice -force
Write-host "The number of the RDP port has been changed to $RDPPort " -ForegroundColor Magenta

Puede cambiar el número de puerto RDP en una computadora remota. Para hacer esto, debe habilitar WinRM en la computadora remota y luego puede usar el cmdlet Invoke-Command para conectarse a la computadora:

Invoke-Command -ComputerName wksname112 -ScriptBlock {Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value 1350}

Si necesita cambiar el número de RDP de forma remota en varias computadoras en su dominio de AD (en la unidad organizativa específica), use el siguiente script (puede obtener una lista de computadoras en la unidad organizativa usando el cmdlet Get-ADComputer):

Write-host "Specify the number of your new RDP port: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
$PCs = Get-ADComputer -Filter * -SearchBase "CN=IT,CN=Computers,CN=NY,DC=a-d,DC=com"
Foreach ($PC in $PCs) {
Invoke-Command -ComputerName $PC.Name -ScriptBlock {
param ($RDPPort)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "NewRDPPort-TCP-In-$RDPPort" -Direction Inbound -LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "NewRDPPort-UDP-In-$RDPPort" -Direction Inbound -LocalPort $RDPPort -Protocol TCP -Action Allow
Restart-Service termservice -force
}

Esta guía para cambiar el puerto RDP predeterminado es adecuada para cualquier versión de Windows a partir de Windows XP (Windows Server 2003) y hasta las versiones modernas de Windows 10, Windows 11 y Windows Server 2022.

Artículos relacionados