Изменение порта 3389 по умолчанию для удаленного рабочего стола (RDP) в Windows

Во всех операционных системах Windows по умолчанию используется порт, назначенный для RDP (Протокол удаленного рабочего стола) — это TCP 3389. После того как вы включите RDP в Windows, в окне TermService (Remote Desktop Services) начинает прослушивать порт 3389. В этой статье мы покажем вам, как изменить номер порта RDP по умолчанию в настольных редакциях Windows (10/11) и Windows Server с помощью редактора реестра и PowerShell.

Обратите внимание, что в современных версиях Windows также используется UDP с тем же номером порта (3389) для соединений Remote Desktop в дополнение к TCP.

tcpview: показывает порт rdp по умолчанию 3389 для протоколов udp и tcp

Вы можете изменить номер порта RDP по умолчанию в Windows с 3389 на любой другой. Чаще всего это используется, когда нужно скрыть RDP/RDS-хост от сканеров портов, которые ищут в сети Windows-хосты с открытым RDP-портом TCP/3389.

Изменение порта RDP снизит вероятность эксплуатации уязвимостей RDP (последняя критическая уязвимость в RDP BlueKeep описана в CVE-2019-0708), уменьшит количество атак грубой силы на RDP (не забывайте регулярно анализировать логи соединений RDP), SYN и других типов атак при отключенном NLA. Чаще всего порт RDP меняется на компьютерах с прямым подключением к Интернету (VPS/ VDS) или в сетях, где пограничный маршрутизатор перенаправляет порт 3389/RDP на Windows-хост в вашей локальной сети.

Несмотря на изменение номера порта, открывать порт RDP на вашем хосте для выхода в Интернет небезопасно. Сканеры портов позволяют злоумышленнику обнаружить RDP-приемник на новом порту (по сигнатуре). Если вы хотите открыть RDP-доступ к компьютеру в вашей сети, лучше использовать VPN, RD Web Access, RDS Gateway и другие средства безопасного подключения.

При выборе нестандартного порта RDP обратите внимание, что не рекомендуется использовать порты в диапазоне 1-1023 (известные порты). Используйте динамический порт в диапазоне портов RPC (49152 to 65535), или любой порт из диапазона 1024 to 49151 , который не используется другой службой или приложением.

Как изменить порт удаленного рабочего стола в Windows?

В нашем примере мы изменим номер порта, на котором прослушивается служба удаленного рабочего стола 1350. Для этого:

  1. Откройте редактор реестра (regedit.exe) и перейдите к ключу реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp;
  2. Найти DWORD параметр с именем PortNumber. Этот параметр показывает порт, на котором прослушивается служба Remote Desktop. По умолчанию это 3389 (десятичное значение);
  3. Измените значение этого параметра. Я изменил порт RDP на 1350 (Десятичная); реестр установить номер порта rdp в windows 10
    Вы можете изменить параметр реестра с помощью PowerShell: Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" -Name PortNumber -Value 1350
  4. Если на вашем компьютере включен брандмауэр Windows Firewall, вам нужно будет создать новое правило, разрешающее входящее соединение с новым портом RDP. Если вы перенастраиваете удаленный хост Windows через RDP, убедитесь, что вы создали разрешающие правила в брандмауэре перед перезапуском TermService, иначе вы потеряете доступ к серверу;
  5. Вы можете создать разрешающее входящее правило для нового порта TCP/UDP RDP вручную в консоли Windows Defender Firewall (firewall.cpl) или с помощью команд PowerShell из модуля 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
    New-NetFirewallRule - разрешить входящие соединения с новым портом rdp
  6. Перезагрузите компьютер или перезапустите службу удаленного рабочего стола с помощью этой команды: net stop termservice & net start termservice
  7. Чтобы подключиться к этому хосту Windows через Remote Desktop, необходимо указать новый порт RDP-соединения в клиенте mstsc.exe, используя двоеточие, как показано ниже: RDPComputerName:1350 или по IP-адресу: 192.168.1.10:1350 или из командной строки: mstsc.exe /v 192.168.1.10:1350 mstsc подключение к нестандартному порту RDP
    Если вы используете RDCMan для управления несколькими RDP-соединениями, вы можете указать порт RDP, который вы настроили в параметре Параметры подключения вкладка. rdcman - изменение порта rdp по умолчанию 3389
  8. После этого вы успешно подключитесь к удаленному рабочему столу компьютера, используя новый порт RDP. Вы можете использовать netstat –na | Find “LIST” чтобы убедиться, что служба удаленных рабочих столов прослушивает новый порт. nestat найти новый номер порта rdp

Обратите внимание, что номер порта UDP RDP также автоматически изменился на 1350 (вы можете проверить это с помощью инструмента TCPView).

новый номер порта приемника rdp для udp и tcp

Используйте команду Test-NetConnection, чтобы проверить, что порт RDP 3389 по умолчанию теперь закрыт (TcpTestSucceeded: False):

Test-NetConnection 192.168.3.102 -port 3389 |select TcpTestSucceeded

Теперь вам нужно использовать новый порт 1350 для RDP-соединения.

проверка ответа нового порта rdp с помощью powershell

Примечание. Если вы измените номер порта прослушивания RDP по умолчанию, у вас могут возникнуть проблемы с использованием Remote Assistance, теневых RDP-соединений в Windows 10, а также теневого RDS на Windows Server.

Если вы хотите изменить номер порта RDP на компьютерах домена, вы можете воспользоваться функциями групповой политики. Создайте новый GPO, который будет устанавливать PortNumber параметр реестра с новым номером порта RDP для компьютеров домена.

Изменение номера порта прослушивания RDP с помощью PowerShell

Полный сценарий PowerShell для изменения номера порта RDP, создания правила брандмауэра и перезапуска службы Remote Desktop может выглядеть следующим образом:

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

Вы можете изменить номер порта RDP на удаленном компьютере. Для этого необходимо включить WinRM на удаленном компьютере, а затем использовать команду Invoke-Command для подключения к компьютеру:

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

Если вам нужно удаленно изменить номер RDP на нескольких компьютерах в домене AD (в определенной OU), используйте следующий сценарий (список компьютеров в OU можно получить с помощью команды 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=woshub,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
}

Это руководство по изменению порта RDP по умолчанию подходит для любой версии Windows, начиная с Windows XP (Windows Server 2003) и заканчивая современными сборками Windows 10, Windows 11 и Windows Server 2022.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *