Как узнать порт rdp
Перейти к содержимому

Как узнать порт rdp

  • автор:

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

date17.03.2022
useritpro
directoryPowerShell, Windows 10, Windows Server 2019
commentsОдин комментарий

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

Служба RDP (termservice) в Windows слушает на tcp и udp порту 3389

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

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

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

Изменить номер RDP порта по-умолчанию в Windows

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

PortNumber - изменить номер RDP порт в реестре

  1. Откройте редактор реестра (regedit.exe) и перейдите в ветку HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp;
  2. Найдите DWORD параметр реестра с именем PortNumber.. В этом параметре указан порт, на котором ожидает подключения служба Remote Desktop. Значение по умолчанию – 3389 (decimal);
  3. Измените значение этого порта. Я изменил RDP порт на 1350 в десятичном значении (Deciamal);

Если для управления множеством RDP подключений вы используете менеджер RDP подключений RDCMan, новый номер RDP порта подключения можно указать на вкладке “Connection Settings”.

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

tcpview просмотр что RDP теперь слушает на новом tcp и udp портах

С помощью команды Test-NetConnection, проверьте что старый RDP порт теперь закрыт ( TcpTestSucceeded : False ):

Test-NetConnection 192.168.13.202 -port 3389 |select TcpTestSucceeded

И для RDP подключения теперь нужно использовать новый порт 1350.

проверить новый rdp tcp порт в windows с помощью powershell

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

PowerShell скрипт для смены номера RDP порта в Windows

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

Write-host «Укажите номер нового RDP порта: » -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 «Номер RDP порта изменен на $RDPPort » -ForegroundColor Magenta

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

Invoke-Command -ComputerName PC1name -ScriptBlock

Если нужно изменить номер RDP на нескольких компьютерах в домене AD (определенной OU), используйте такой скрипт (список компьютеров в OU можно получить с помощью Get-ADComputer):

Write-host «Укажите номер нового RDP порта: » -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
$PCs = Get-ADComputer -Filter * -SearchBase «CN=DMZ,CN=Computers,DC=winitpro,DC=ru»
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 «New RDP Port $RDPPort» -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName «New RDP Port $RDPPort» -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
Restart-Service termservice -force
>

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

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Какой стандартный порт подключения RDP и как его изменить

Окно подключения

RDP – это протокол удаленного рабочего стола. С английского эта аббревиатура расшифровывается, как Remote Desktop protocol. Он нужен для подключения одного компьютера к другому через сеть интернет. К примеру, если пользователь находится дома, а ему нужно срочно заполнить документы в офисе он может это сделать с помощью данного протокола.

Как работает RDP

Доступ к другому компьютеру производится через порт TCP 3389 по умолчанию. На каждом персональном устройстве он предустановлен автоматически. При этом существует два вида соединения:

  • для администрирования;
  • для работы с программами на сервере.

Серверы, где установлена ОС Windows Server поддерживают два удаленных подключения РДП сразу (это в том случае, если не активирована роль RDP). Компьютеры, не являющиеся серверами имеют только по одному входу.

Соединение между компьютерами производится в несколько этапов:

  • протокол, основой которого является TCP, запрашивает доступ;
  • определяется сессия протокола удаленного рабочего стола. Во время этой сессии утверждаются инструкции передачи данных;
  • когда завершится этап определения сервер передаст другому устройству графический вывод. В этот же момент он получает данные от мышки и клавиатуры. Графический вывод – это точно скопированное изображение или команды на отрисовку различных фигур, типа линий, кругов. Такие команды являются ключевыми задачами для данного вида протокола. Они сильно экономят расход трафика;
  • клиентский компьютер превращает эти команды в графику и выводит их на экран.

Также этот протокол имеет виртуальные каналы, которые позволяют соединиться с принтером, работать с буфером обмена, использовать аудиосистему и др.

Безопасность соединения

Существует два вида защищенного соединения через RDP:

  • встроенная система (Standard RDP Security);
  • внешняя система (Enchanced RDP Security).

Они отличаются тем, что в первом типе используется шифрование, обеспечение целостности создается с помощью стандартных средств, которые есть в протоколе. А во втором виде используется модуль TLS для установки защищенного соединения. Разберем подробней процесс работы.

Устройство подключения

Встроенная защита осуществляется так — в начале проходит аутентификация, затем:

  • при включении будут сгенерированыRSAключи;
  • изготавливается открытый ключ;
  • подписывается RSA, который вшит в систему. Он есть в любом устройстве с установленным протоколом удаленного стола;
  • клиентское устройство при подключении получает сертификат;
  • проверяется и происходит получение этого ключа.

Затем происходит шифрование:

  • стандартно используется алгоритм RC4;
  • для серверов Виндоус 2003 используется 128 битная защита, где 128 бит — длина ключа;
  • для серверов Wndows 2008 – 168 бит.

Целостность контролируется с помощью генерации mac-кодов основанных на алгоритме MD5 и SHA1.

Внешняя система безопасности работает с модулями TLS 1.0, CredSSP. Последний совмещает в себе функциональности TLS, Kerberos, NTLM.

  • компьютер проверяет разрешение на вход;
  • шифр подписывается по протоколу TLS. Это лучший вариант защиты;
  • разрешается вход единожды. Каждая сессия шифруется отдельно.

Замена старого значения порта новым

Для того, чтобы прописать другое значение необходимо сделать следующее (актуально для любой версии Виндовс, в том числе Windows Server 2008):

  • открываете «Пуск». В поисковой строке внизу прописываете «regedit.exe»;Вход в реестр
  • откроется окошко, где нужно найти корневую директорию: HKEY_LOCAL_MACHINE. Открываете ее и ищете папку System, затем переходите по следующему пути: CurrentControlSet, открываете Control, затем — Terrminal Server и последней будет папка WinStations. Теперь кликаете по папке RDP-Tcp;Окно реестра
  • найдите пункт «PortNumber». В правой колонке увидите шестнадцатиричное значение 00000D3D, которое соответствует стандартному RDP порту 3389;Номер порта
  • замените его на тот порт, который следует установить. Не забудьте пометить, что необходимо использовать десятичные числа, выделив необходимый пункт;
  • сохраняете проделанные шаги и перезагружаете устройство;
  • открываете Пуск, заходите в панель управления;
  • находите пункт «БрандмауэрWindows» и в нем «Дополнительные параметры»;Настройки брандмауэра

Протокол и порты

Разрешение подключения

Теперь при подключении к удаленному столу необходимо после IP-адреса через двоеточие указывать новое значение, например 192.161.11.2:3381.

Замена с помощью утилиты PowerShell

PowerShell также позволяет внести необходимые изменения:

Используем PowerShell

  • запустите PowerShell от администратора;
  • введите директиву: Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Terminal*Server\WinStations\RDP-TCP\ -Name PortNumber –Value 12345. Последние цифры являются портом на который меняете старый;
  • рекомендуется сделать перезагрузку;
  • после того, как устройство включится, введите команду «regedit» в меню «Пуск». Пройдите в директорию: HKEY_LOCAL_MACHINE, найдите папку CurrentControlSet, затем папку Control, перейдите в Terminal Server и откройте WinStations. Кликните по файлу RDP-Tcp. Тут должно быть установлено новое значение.
  • Теперь нужно открыть порт RDP на сетевом экране. Входите в Powershell, вбиваете команду: netsh advfirewall firewall add rule name=»NewRDP» dir=in action=allow protocol=TCP localport=49089. Цифры должны означать тот порт, на который перебили старый.

Не удалось открыть файл подключений default.rdp

Проблемы с подключением

Чаще всего эта ошибка возникает, когда появляются проблемы с DNS сервером. Клиентский компьютер не может найти имя указанного сервера.

Для того, чтобы избавиться от ошибки, необходимо в первую очередь проверить правильно ли веден адрес хоста.

How to change Remote Desktop port (RDP port) using PowerShell

Remember the infamous BlueKeep vulnerability? It exploited port 3389 by sending a specially crafted message that allowed the attackers to execute any code remotely on a compromised system. Considering the security risk, it is often recommended to disable RDP when it is not needed; however, there are still certain systems where you just can’t disable it, such as servers.

The alternative solution is to change the RDP port number from the default to something else. This certainly won’t make your Windows system bulletproof, but it surely does help stop a few script kiddies. I mean, that’s the whole point of security through obscurity.

For this guide, I will change the RDP port on a system named TERMINAL that is running Windows 10. Since we are using PowerShell, we can leverage PowerShell remoting to run all the commands from our own system. Just launch an elevated PowerShell console, and use the following command to open an interactive PS remoting session to the remote computer where you want to change the RDP port.

If your currently logged-in user is a member of the Domain Admins AD group, you can skip the -Credential parameter.

Opening an interactive PS remoting session to the remote computer using the Enter PsSession command

Opening an interactive PS remoting session to the remote computer using the Enter PsSession command

You can also use the Invoke-Command cmdlet to run each command if you don’t wish to open a persistent interactive session to the remote computer.

Determining the current Remote Desktop port

Now that we are connected to a remote computer (TERMINAL, in our example), you can use the following command to determine what port number RDP is currently using:

Using PowerShell to view the port number currently used by RDP

Using PowerShell to view the port number currently used by RDP

This command returns the current port number used by the RDP service on your target computer. You can see that the information is stored in the Windows registry, and we just queried the particular registry key for the port number using the Get-ItemProperty cmdlet. Modern versions of Windows (starting with Server 2012 and Windows 8) tend to use both the TCP and UDP protocols for RDP, which essentially means that, by default, the remote desktop server service (TermService) listens on both TCP 3389 and UDP 3389 on a typical Windows system. You can confirm this by running the Get-NetTCPConnection and Get-NetUDPEndpoint commands, as shown in the following screenshot:

Using the NetTCPConnection and Get NetUDPEndpoint commands to view the TCP and UDP endpoints for RDP

Using the NetTCPConnection and Get NetUDPEndpoint commands to view the TCP and UDP endpoints for RDP

Changing the RDP port

Now that you are sure that the remote desktop service on your target computer is currently using a default port, use the following command to change the RDP port number:

Changing the RDP port using PowerShell

Changing the RDP port using PowerShell

This command uses the Set-ItemProperty cmdlet to change the port number to an ephemeral port (50102, in our example). When you change the RDP port number using this command, both the TCP and UDP endpoints will be changed to the same port number.

You can use any port number, but it is recommended to use one between 1024 and 65535. Some people even like using a port number from the IANA suggested range (49152–65535), since it is not likely to conflict with other well-known or custom services.

Adding firewall rules for custom RDP ports

Now that the RDP port number has changed, you need to adjust the Windows Defender firewall to allow your new custom RDP port. Use the following PowerShell commands to add the rules:

These two commands add rules to allow inbound traffic on the custom RDP port number. Make sure you modify the port number to match your own.

Adding Windows Defender firewall rules for custom RDP port numbers using PowerShell

Adding Windows Defender firewall rules for custom RDP port numbers using PowerShell

If you intend to access the remote desktop from a list of known IP addresses, you could slightly modify the above commands to permit the known IPs only like this:

Remember that the remote computer will continue to use the old (default) port number until the Remote Desktop service (TermService) is restarted on the target computer. To restart the service on the target computer, use the following command:

Restarting the remote desktop service on the target computer using PowerShell

Restarting the remote desktop service on the target computer using PowerShell

Once the remote desktop service is restarted, the target computer will start listening on a new custom RDP port number.

Verifying the new RDP port

At this point, your remote computer is all set to use a custom port for Remote Desktop. If you run the following PowerShell command on a remote computer, it will give you the new endpoints:

Verifying the new TCP and UDP remote desktop endpoints on the target computer using PowerShell

Verifying the new TCP and UDP remote desktop endpoints on the target computer using PowerShell

Alternatively, you could use the Test-NetConnection cmdlet on your own computer, as shown in the following command:

Using the Test NetConnection cmdlet to verify connectivity with the target computer on a new RDP port

Using the Test NetConnection cmdlet to verify connectivity with the target computer on a new RDP port

True in output indicates that your local computer was able to successfully connect to a remote computer on the specified port number (50102, in our example), which proves that your new custom RDP port is now active. If you repeat this command with the default RDP port number, the connection will fail and will return false, as shown in the screenshot.

Using the custom Remote Desktop port

When the Remote Desktop service runs on the default port, you do not need to specify it when connecting to the target computer using the Remote Desktop Connection application. However, once you customize the port, you need to specify the port number in ComputerName:PortNumber or IPAddress:PortNumber format, as shown in the screenshot:

Subscribe to 4sysops newsletter!

Specifying a custom RDP port with the Remote Desktop Connection app

Specifying a custom RDP port with the Remote Desktop Connection app

Conclusion

You just learned how to change the remote desktop port number using PowerShell. As discussed earlier, a custom RDP port doesn’t promise to make a Windows system fully secure, but it adds a layer of obscurity to offer protection to a certain degree. It is always a good idea to disable Remote Desktop on public-facing Windows hosts. If you really have to keep Remote Desktop enabled, it is highly recommended that you use VPN.

Check the current RDP port

The default port on which RDP is set to listen is on port 3389, but this can be modified to custom port. To check the what is the current port, we need to query the Windows registry.

Run the below given command in the elevated command prompt (CMD) on any windows machine.

Start > cmd > run as administrator

This will display a hexadecimal value which is the current port the RDP is set to listen to. For example you will get the result as below

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

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