Windows remote desktop port

Windows remote desktop port

Добрый день уважаемые читатели и гости блога, сегодня у нас с вами вот такая задача: изменить входящий порт службы RDP (терминального сервера) со стандартного 3389 на какой-то другой. Напоминаю, что RDP служба это функционал операционных систем Windows, благодаря которому вы можете по сети открыть сессию на нужный вам компьютер или сервер по протоколу RDP, и иметь возможность за ним работать, так как будто вы сидите за ним локально.

Что такое RDP протокол

Прежде чем, что то изменять, хорошо бы понимать, что это и как это работает, я вам об этом не перестаю повторять. RDP или Remote Desktop Protocol это протокол удалённого рабочего стола в операционных системах Microsoft Windows, хотя его происхождение идет от компании PictureTel (Polycom). Microsoft просто его купила. Используется для удаленной работы сотрудника или пользователя с удаленным сервером. Чаще всего такие сервера несут роль сервер терминалов, на котором выделены специальные лицензии, либо на пользователе, либо на устройства, CAL. Тут задумка была такой, есть очень мощный сервер, то почему бы не использовать его ресурсы совместно, например под приложение 1С. Особенно это становится актуальным с появлением тонких клиентов.

Сам сервер терминалов мир увидел, аж в 1998 году в операционной системе Windows NT 4.0 Terminal Server, я если честно тогда и не знал, что такое есть, да и в России мы в то время все играли в денди или сегу. Клиенты RDP соединения, на текущий момент есть во всех версиях Windows, Linux, MacOS, Android. Самая современная версия RDP протокола на текущий момент 8.1.

Порт rdp по умолчанию

Сразу напишу порт rdp по умолчанию 3389, я думаю все системные администраторы его знают.

Принцип работы протокола rdp

И так мы с вами поняли для чего придумали Remote Desktop Protocol, теперь логично, что нужно понять принципы его работы. Компания Майкрософт выделяет два режима протокола RDP:

  • Remote administration mode > для администрирования, вы попадаете на удаленный сервер и настраиваете и администрируете его
  • Terminal Server mode > для доступа к серверу приложений, Remote App или совместное использование его для работы.

Вообще если вы без сервера терминалов устанавливаете Windows Server 2008 R2 — 2016, то там по умолчанию у него будет две лицензии, и к нему одновременно смогут подключиться два пользователя, третьему придется для работы кого то выкидывать. В клиентских версиях Windows, лицензий всего одна, но и это можно обойти, я об этом рассказывал в статье сервер терминалов на windows 7. Так же Remote administration mode, можно кластеризировать и сбалансировать нагрузку, благодаря технологии NLB и сервера сервера подключений Session Directory Service. Он используется для индексации пользовательских сессий, благодаря именно этому серверу у пользователя получиться войти на удаленный рабочий стол терминальных серверов в распределенной среде. Так же обязательными компонентами идут сервер лицензирования.

Читайте также:  Cool reader для линукс минт

RDP протокол работает по TCP соединению и является прикладным протоколом. Когда клиент устанавливает соединение с сервером, на транспортном уровне создается RDP сессия, где идет согласование методов шифрования и передачи данных. Когда все согласования определены и инициализация окончена, сервер терминалов, передает клиенту графический вывод и ожидает входные данные от клавиатуры и мыши.

Remote Desktop Protocol поддерживает несколько виртуальных каналов в рамках одного соединения, благодаря этому можно использовать дополнительный функционал

  • Передать на сервер свой принтер или COM порт
  • Перенаправить на сервер свои локальные диски
  • Буфер обмена
  • Аудио и видео

Этапы RDP соединения

  • Установка соединения
  • Согласование параметров шифрования
  • Аутентификация серверов
  • Согласование параметров RDP сессии
  • Аутентификация клиента
  • Данные RDP сессии
  • Разрыв RDP сессии

Безопасность в RDP протоколе

Remote Desktop Protocol имеет два метода аутентификации Standard RDP Security и Enhanced RDP Security, ниже рассмотрим оба более подробно.

Standard RDP Security

RDP протокол при данном методе аутентификации, шифрует подключение средствами самого RDP протокола, которые есть в нем, вот таким методом:

  • Когда ваша операционная система запускается, то идет генерация пары RSA ключиков
  • Идет создание сертификата открытого ключа Proprietary Certificate
  • После чего Proprietary Certificate подписывается RSA ключом созданным ранее
  • Теперь RDP клиент подключившись к терминальному серверу получит Proprietary Certificate
  • Клиент его смотрит и сверяет, далее получает открытый ключ сервера, который используется на этапе согласования параметров шифрования.

Если рассмотреть алгоритм с помощью которого все шифруется, то это потоковый шифр RC4. Ключи разной длины от 40 до 168 бит, все зависит от редакции операционной системы Windows, например в Windows 2008 Server – 168 бит. Как только сервер и клиент определились с длиной ключа, генерируются два новых различных ключа, для шифрования данных.

Если вы спросите про целостность данных, то тут она достигается за счет алгоритма MAC (Message Authentication Code) базируемого на SHA1 и MD5

Enhanced RDP Security

RDP протокол при данном методе аутентификации использует два внешних модуля безопасности:

TLS поддерживается с 6 версии RDP. Когда вы используете TLS, то сертификат шифрования можно создать средствами терминального сервера, самоподписный сертификат или выбрать из хранилища.

Когда вы задействуете CredSSP протокол, то это симбиоз технологий Kerberos, NTLM и TLS. При данном протоколе сама проверка, при которой проверяется разрешение на вход на терминальный сервер осуществляется заранее, а не после полноценного RDP подключения, и тем самым вы экономите ресурсы терминального сервера, плюс тут более надежное шифрование и можно делать однократный вход в систему (Single Sign On), благодаря NTLM и Kerberos. CredSSP идет только в ОС не ниже Vista и Windows Server 2008. Вот эта галка в свойствах системы

Читайте также:  Смогут обновится до windows 10

Изменить порт rdp

Для того, чтобы изменить порт rdp, вам потребуется:

  1. Открываем редактор реестра (Пуск -> Выполнить -> regedit.exe)
  2. Переходим к следующему разделу:

Находим ключ PortNumber и меняем его значение на номер порта, который Вам нужен.

Выберите обязательно десятичное значение, я для примера поставлю порт 12345.

Как только вы это сделали, то перезапустите службу удаленных рабочих столов, через командную строку, вот такими командами:

Далее не забудьте в брандмауэре Windows после изменения порта RDP открыть его, для этого жмем WIN+R и в окне выполнить пишем firewall.cpl.

Далее переходим в пункт Дополнительные параметры

И создаем новое входящее правило для нового rdp порта. Напоминаю, что порт rdp по умолчанию 3389.

Выбираем, что правило будет для порта

Протокол оставляем TCP и указываем новый номер RDP порта.

Правило у нас будет разрешающее RDP соединение по не стандартному порту

При необходимости задаем нужные сетевые профили.

Ну и назовем правило, понятным для себя языком.

Для подключения с клиентских компьютеров Windows адрес пишите с указанием порта. Например, если порт Вы изменили на 12345, а адрес сервера (или просто компьютера, к которому подключаетесь): myserver, то подключение по MSTSC будет выглядеть так:
mstsc -v:myserver:12345

или через командную строку.

Как видите изменить порт rdp совсем не трудная задача, все тоже самое можно проделать средствами групповой политики.

Change the listening port for Remote Desktop on your computer

Applies to: Windows 10, Windows 8.1, Windows 8, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2

When you connect to a computer (either a Windows client or Windows Server) through the Remote Desktop client, the Remote Desktop feature on your computer «hears» the connection request through a defined listening port (3389 by default). You can change that listening port on Windows computers by modifying the registry.

  1. Start the registry editor. (Type regedit in the Search box.)
  2. Navigate to the following registry subkey: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  3. Find PortNumber
  4. Click Edit > Modify, and then click Decimal.
  5. Type the new port number, and then click OK.
  6. Close the registry editor, and restart your computer.

The next time you connect to this computer by using the Remote Desktop connection, you must type the new port. If you’re using a firewall, make sure to configure your firewall to permit connections to the new port number.

You can check the current port by running the following PowerShell command:

You can also change the RDP port by running the following PowerShell command. In this command, we’ll specify the new RDP port as 3390.

Читайте также:  Блокиратор приложений windows 10

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

По умолчанию во всех операционных системах Windows для подключения по протоколу RDP (Remote Desktop Protocol / Удаленный рабочий стол) использует порт TCP 3389.

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

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

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

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

Полный код 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 «New RDP Port $RDPPort» -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName «New RDP Port $RDPPort» -Direction Inbound –LocalPort $RDPPort -Protocol UDP -Action Allow
Restart-Service termservice -force
Write-host «Номер RDP порта изменен на $RDPPort » -ForegroundColor Magenta

Можно изменить номер RDP удаленно на нескольких компьютерах в домене AD (определенной OU) с помощью Invoke-Command и 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 10 (Windows Server 2019).

Оцените статью