- Порт для rdp windows server 2012 r2
- Что такое RDP протокол
- Порт rdp по умолчанию
- Принцип работы протокола rdp
- Этапы RDP соединения
- Безопасность в RDP протоколе
- Standard RDP Security
- Enhanced RDP Security
- Изменить порт rdp
- Изменение порта прослушивания для удаленного рабочего стола на компьютере Change the listening port for Remote Desktop on your computer
- Установка и использование Remote Desktop Gateway
- Установка роли
- Настройка RDG
- Создание групп для терминальных серверов
- Настройка политик
- Настройка сертификата
- Подключение к серверу терминалов через шлюз
- Настройка Remoteapp через Gateway
- Несколько терминальных серверов и dns round robin
- Возможные ошибки
Порт для rdp windows server 2012 r2
Добрый день уважаемые читатели и гости блога, сегодня у нас с вами вот такая задача: изменить входящий порт службы 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. Он используется для индексации пользовательских сессий, благодаря именно этому серверу у пользователя получиться войти на удаленный рабочий стол терминальных серверов в распределенной среде. Так же обязательными компонентами идут сервер лицензирования.
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. Вот эта галка в свойствах системы
Изменить порт rdp
Для того, чтобы изменить порт rdp, вам потребуется:
- Открываем редактор реестра (Пуск -> Выполнить -> regedit.exe)
- Переходим к следующему разделу:
Находим ключ 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
Применяется к: Windows 10, Windows 8.1, Windows 8, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2 Applies to: Windows 10, Windows 8.1, Windows 8, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2
При подключении компьютера (клиентской версии Windows или Windows Server) с помощью клиента удаленного рабочего стола функции удаленного рабочего стола на компьютере «слышат» запрос на соединение через заданный порт прослушивания (по умолчанию — 3389). 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). Этот порт прослушивания на компьютерах Windows можно изменить путем изменения реестра. You can change that listening port on Windows computers by modifying the registry.
- Откройте редактор реестра. Start the registry editor. (В поле поиска введите «regedit»). (Type regedit in the Search box.)
- Перейдите к следующему разделу реестра: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp Navigate to the following registry subkey: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- Найдите параметр PortNumber. Find PortNumber
- Нажмите кнопку Редактировать > Изменить, а затем выберите пункт Десятичное. Click Edit > Modify, and then click Decimal.
- Введите новый номер порта, а затем нажмите кнопку ОК. Type the new port number, and then click OK.
- Закройте редактор реестра и перезагрузите компьютер. 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.
Номер текущего порта можно проверить с помощью следующей команды PowerShell: You can check the current port by running the following PowerShell command:
Пример: For example:
Номер порта RDP можно изменить с помощью следующей команды PowerShell. You can also change the RDP port by running the following PowerShell command. В этой команде укажите новый порт RDP 3390. In this command, we’ll specify the new RDP port as 3390.
Чтобы добавить новый порт RDP в реестр, выполните следующую команду: To add a new RDP Port to the registry:
Установка и использование Remote Desktop Gateway
В данном руководстве мы рассмотрим развертывание роли шлюза удаленных рабочих столов (Remote Desktop Gateway или RDG) на отдельном сервере с Windows Server 2019. Действия будут аналогичны для Windows Server 2012 и 2016 (даже, в основных моментах, 2008 R2). Предполагается, что в нашей инфраструктуре уже имеются:
1. Служба каталогов Active Directory — настроено по инструкции Как установить роль контроллера домена на Windows Server.
Пошагово, мы выполним следующие действия:
Установка роли
Открываем Диспетчер серверов:
Переходим в Управление — Добавить роли и компоненты:
При появлении окна приветствия нажимаем Далее (при желании, можно поставить галочку Пропускать эту страницу по умолчанию):
На страницы выбора типа установки оставляем выбор на Установка ролей или компонентов:
Выбираем целевой сервер — если установка выполняется на сервере локально, то мы должны увидеть один сервер для выбора:
Ставим галочку Службы удаленных рабочих столов:
Дополнительные компоненты нам не нужны:
. просто нажимаем Далее.
На странице служб удаленных рабочих столов идем дальше:
Выбираем конкретные роли — нам нужен Шлюз удаленных рабочих столов. После установки галочки появится предупреждение о необходимости поставить дополнительные пакеты — кликаем по Добавить компоненты:
Откроется окно для настроек политик:
. нажимаем Далее.
Откроется окно роли IIS:
. также нажимаем Далее.
При выборе служб ролей веб-сервера ничего не меняем:
В последнем окне ставим галочку Автоматический перезапуск конечного сервера, если требуется:
Нажимаем Установить:
Дожидаемся окончания установки роли:
Сервер может уйти в перезагрузку.
Настройка RDG
Для настройки Microsoft Remote Desktop Gateway мы создадим группу компьютеров в Active Directory, настроим политику для RDG и создадим сертификат.
Создание групп для терминальных серверов
Политика ресурсов позволит задать нам конкретные серверы, на которые терминальный шлюз позволит нам подключаться. Для этого мы откроем консоль Active Directory — Users and computers (Пользователи и компьютеры Active Directory) и создаем группу:
* в данном примере мы создаем группу All terminals в организационном юните Servers Group. Это группа безопасности (Security), локальная в домене (Domain local).
Добавим в нашу группу терминальные серверы:
* в данном примере у нас используются два сервера — Terminal-1 и Terminal-2.
Закрываем консоль Active Directory — Users and computers.
Настройка политик
Для предоставления доступа к нашим терминальным серверам, создадим политики для подключений и ресурсов.
В диспетчере сервера переходим в Средства — Remote Desktop Services — Диспетчер шлюза удаленных рабочих столов:
Раскрываем сервер — кликаем правой кнопкой по Политики — выбираем Создание новых политик безопасности:
Устанавливаем переключатель в положении Создать политику авторизации подключений к удаленным рабочим столам и авторизации ресурсов удаленных рабочих столов (рекомендуется):
Даем название политике:
Задаем параметры авторизации:
* мы указали, что пользователи должны подтверждать право вводом пароля, также мы указали, что для применения политики они должны принадлежать группе Domain Users.
В следующем окне есть возможность настроить ограничения использования удаленного рабочего стола. При желании, можно их настроить:
* в нашем случае ограничений нет. При необходимости, устанавливаем переключатель в положение Отключить перенаправление для следующих типов клиентских устройств и оставляем галочки пункты для ограничений.
Далее настраиваем временные ограничения использования удаленного подключения. Если в этом есть необходимость, оставляем галочки в состоянии Включить и указываем количество минут, по прошествии которых сеанс будет отключен:
В следующем окне мы увидим вне введенные настройки:
Откроется страница создания политики для авторизации ресурса — задаем для нее название:
Указываем группу пользователей, для которой будет применяться политика:
* как и при создании первой политики, мы добавили группу Domain Users.
Теперь выбираем группу ресурсов, на которую будет разрешен доступ со шлюза терминалов:
* мы выбрали группу, созданную нами ранее в AD.
Указываем разрешенный для подключения порт или диапазон портов:
* в данном примере мы разрешим подключение по порту 3389, который используется по умолчанию для RDP.
Нажимаем Готово:
Политики будут созданы.
Настройка сертификата
Для работы системы нам необходим сертификат, который можно купить или получить бесплатно от Let’s Encrypt. Однако, с некоторыми неудобствами, будет работать и самоподписанный. Мы рассмотрим вариант настройки с ним.
Запускаем «Диспетчер шлюза удаленных рабочих столов» — кликаем правой кнопкой по названию нашего сервера — выбираем Свойства:
Переходим на вкладку Сертификат SSL:
Выбираем вариант Создать сомозаверяющий сертификат и кликаем по Создать и импортировать сертификат:
Задаем или оставляем имя для сертификата — нажимаем OK:
Мы увидим информацию о создании сертификата:
Консоль диспетчера шлюза перестанет показывать ошибки и предупреждения:
Сервер готов к работе.
Подключение к серверу терминалов через шлюз
Выполним первое подключение с использованием шлюза. В качестве клиентской операционной системы могут использоваться Windows, Linux, Mac OS. Рассмотрим пример на Windows 10.
Запускаем «Подключение к удаленному рабочему столу» (приложение можно найти в Пуск или ввести команду mstsc). На вкладке Общие вводим локальное имя конечного сервера, к которому мы хотим подключиться:
* в нашем случае мы будем подключаться к серверу terminal-1.dmosk.local.
Переходим на вкладку Дополнительно и кликаем по Параметры:
Переключаем параметр приложения в положение Использовать следующие параметры сервера шлюза удаленных рабочих столов и указываем внешнее имя сервера:
* важно указать именно имя сервера, а не IP-адрес. В моем примере имя сервера rdp.dmosk.local (данное имя не является правильным внешним, но это только пример).
Кликаем Подключить:
Если мы используем самозаверенный сертификат, приложение выдаст ошибку. Кликаем по Просмотреть сертификат:
Переходим на вкладку Состав и кликаем Копировать в файл:
Указываем путь для выгрузки файла:
Открываем папку, куда сохранили сертификат. Кликаем по сохраненному файлу правой кнопкой и выбираем Установить сертификат:
Выбираем Локальный компьютер — Далее:
В качестве размещения сертификата выбираем Доверенные корневые центры сертификации:
После снова пробуем подключиться к удаленному рабочему столу через шлюз:
Система запросит логин и пароль для подключения (возможно, дважды) — вводим данные для учетной записи с правами на подключение (на основе настройки политики RDG).
Настройка Remoteapp через Gateway
Предположим, у нас есть опубликованное приложение Remoteapp и мы хотим подключаться к терминальному серверу через настроенный шлюз. Для этого открываем rdp-файл приложения на редактирование (например, блокнотом) и вносим в него изменения:
- gatewayhostname:s:rdg.dmosk.local — добавленная строка. Настройка говорит, что если при подключении к серверу нужно использовать шлюз, то это должен быт rdg.dmosk.local.
- gatewayusagemethod:i:1 — отредактированная строка. Указывает, что необходимо использовать шлюз.
Несколько терминальных серверов и dns round robin
При наличие нескольких серверов терминалов, мы можем создать несколько записей в DNS, чтобы получать по round robin разные серверы:
Однако, при попытке подключиться к незарегистрированному серверу мы увидим ошибку:
Для решения переходим в настройку шлюза — кликаем правой кнопкой по Политики авторизации ресурсов и выбираем Управление локальными группами компьютеров:
Выбираем нужную группу компьютеров и нажимаем Свойства:
* в моем случае это была единственная группа, созданная по умолчанию.
На вкладке Сетевые ресурсы добавляем имя, созданное в DNS:
Теперь подключение будет выполняться без ошибок.
Возможные ошибки
При подключении мы можем столкнуть со следующими ошибками.
1. Учетная запись пользователя не указана в списке разрешений шлюза удаленных рабочих столов.
Причиной является отсутствие пользователя, под которым идет подключение к шлюзу, в группе, которой разрешено использование политики. Для решения проблемы проверяем настройки политики — группы пользователей, которым разрешено использование политики и к каким ресурсам разрешено подключение. В итоге, наш пользователь должен быть в нужной группе, а терминальный сервер, к которому идет подключение должен быть указан в соответствующей группе ресурсов.
2. Возможно, удаленный компьютер указан в формате NetBIOS (например, computer1), но шлюз удаленных рабочих столов ожидает полное доменное имя или IP-адрес (например, computer1.fabrikam.com или 157.60.0.1).
Обращение к терминальному серверу выполняется по незарегистрированному имени. Необходимо проверить настройку в клиенте подключения или зарегистрировать ресурс, как мы это делали при настройке нескольких терминальных серверов.
3. Сертификат шлюза удаленных рабочих столов просрочен или отозван.
В данном случае нужно проверить, какой сертификат привязан к RDG. Также нужно убедиться, что привязанный сертификат, на самом деле, не просрочен или отозван. В крайнем случае, можно заново создать сертификат.