Установка и использование Remote Desktop Gateway

Обновлено и опубликовано Опубликовано:

Используемые термины: Remote Desktop Gateway, Active Directory, Терминальный сервер.

В данном руководстве мы рассмотрим развертывание роли шлюза удаленных рабочих столов (Remote Desktop Gateway или RDG) на отдельном сервере с Windows Server 2019. Действия будут аналогичны для Windows Server 2012 и 2016 (даже, в основных моментах, 2008 R2). Предполагается, что в нашей инфраструктуре уже имеются:

1. Служба каталогов Active Directory — настроено по инструкции Как установить роль контроллера домена на Windows Server.

2. Два терминальных сервера — настроено по инструкции Установка и настройка терминального сервера на Windows Server.

Пошагово, мы выполним следующие действия:

Установка роли

Открываем Диспетчер серверов:

Открываем диспетчер серверов

Переходим в Управление - Добавить роли и компоненты:

Переход к добавлению ролей и компонентов

При появлении окна приветствия нажимаем Далее (при желании, можно поставить галочку Пропускать эту страницу по умолчанию):

Пропускаем страницу приветствия

На страницы выбора типа установки оставляем выбор на Установка ролей или компонентов:

Выбираем установку ролей или компонентов

Выбираем целевой сервер — если установка выполняется на сервере локально, то мы должны увидеть один сервер для выбора:

Выбираем наш сервер

Ставим галочку Службы удаленных рабочих столов:

Ставим галочку для установки удаленных рабочих столов

Дополнительные компоненты нам не нужны:

Пропускаем страницу с выбором компонентов

... просто нажимаем Далее.

На странице служб удаленных рабочих столов идем дальше:

Переход к настройкам роли во время установки

Выбираем конкретные роли — нам нужен Шлюз удаленных рабочих столов. После установки галочки появится предупреждение о необходимости поставить дополнительные пакеты — кликаем по Добавить компоненты

Ставим галочку для установки шлюза удаленных рабочих столов

Откроется окно для настроек политик:

Пропускаем службы политики сети и доступа

... нажимаем Далее.

Откроется окно роли IIS:

Переход к настройке роли веб-сервера

... также нажимаем Далее.

При выборе служб ролей веб-сервера ничего не меняем:

Выбираем службы ролей для веб-сервера

... и идем дальше.

В последнем окне ставим галочку Автоматический перезапуск конечного сервера, если требуется:

Ставим галочку для автоматической перезагрузки после установки

Нажимаем Установить:

Устанавливаем роль

Дожидаемся окончания установки роли:

Завершение установки роли RDG

Сервер может уйти в перезагрузку.

Настройка 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.

В следующем окне есть возможность настроить ограничения использования удаленного рабочего стола. При желании, можно их настроить:

Задаем настройки подключения по RDP

* в нашем случае ограничений нет. При необходимости, устанавливаем переключатель в положение Отключить перенаправление для следующих типов клиентских устройств и оставляем галочки пункты для ограничений.

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

Настройка таймаутов

В следующем окне мы увидим вне введенные настройки:

Заданные настройки

Идем далее.

Откроется страница создания политики для авторизации ресурса — задаем для нее название:

Задаем имя для авторизации ресурсов

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

Указываем группу, связанную с политикой ресурсов

* как и при создании первой политики, мы добавили группу Domain Users.

Теперь выбираем группу ресурсов, на которую будет разрешен доступ со шлюза терминалов:

Группа серверов, на которые разрешаем доступ через шлюз удаленных рабочих столов

* мы выбрали группу, созданную нами ранее в AD.

Указываем разрешенный для подключения порт или диапазон портов:

Разрешаем только порт 3389 для подключений

* в данном примере мы разрешим подключение по порту 3389, который используется по умолчанию для RDP.

Нажимаем Готово:

Применяем настройки

Политики будут созданы.

Настройка сертификата

Для работы системы нам необходим сертификат, который можно купить или получить бесплатно от Let's Encrypt. Однако, с некоторыми неудобствами, будет работать и самоподписанный. Мы рассмотрим вариант настройки с ним.

Запускаем «Диспетчер шлюза удаленных рабочих столов» - кликаем правой кнопкой по названию нашего сервера - выбираем Свойства:

Переходим к свойствам RDG

Переходим на вкладку Сертификат SSL:

Переходим на вкладку для настройки сертификата

Выбираем вариант Создать сомозаверяющий сертификат и кликаем по Создать и импортировать сертификат:

Создаем новый сертификат

Задаем или оставляем имя для сертификата - нажимаем OK:

Задаем название для сертификата и указываем путь его хранения

Мы увидим информацию о создании сертификата:

Сертификат создан

Консоль диспетчера шлюза перестанет показывать ошибки и предупреждения:

Ошибок и предупреждений нет

Сервер готов к работе.

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

Выполним первое подключение с использованием шлюза. В качестве клиентской операционной системы могут использоваться Windows, Linux, Mac OS. Рассмотрим пример на Windows 10.

Запускаем «Подключение к удаленному рабочему столу» (приложение можно найти в Пуск или ввести команду mstsc). На вкладке Общие вводим локальное имя конечного сервера, к которому мы хотим подключиться:

Вводим название локального терминального сервера

* в нашем случае мы будем подключаться к серверу terminal-1.dmosk.local.

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

Переходим на вкладку Дополнительно для настройки Remote Desktop Gateway

Переключаем параметр приложения в положение Использовать следующие параметры сервера шлюза удаленных рабочих столов и указываем внешнее имя сервера:

Задаем внешнее имя для сервера RDG

* важно указать именно имя сервера, а не IP-адрес. В моем примере имя сервера rdp.dmosk.local (данное имя не является правильным внешним, но это только пример).

Кликаем Подключить:

Подключаемся к серверу по RDP

Если мы используем самозаверенный сертификат, приложение выдаст ошибку. Кликаем по Просмотреть сертификат:

Переходим к просмотру сертификата

Переходим на вкладку Состав и кликаем Копировать в файл:

Копируем данные сертификата в файл

Указываем путь для выгрузки файла:

Указываем путь к файлу для выгрузки

Открываем папку, куда сохранили сертификат. Кликаем по сохраненному файлу правой кнопкой и выбираем Установить сертификат:

Переходим к установке сертификата

Выбираем Локальный компьютер - Далее:

Установка сертификата для локального компьютера

В качестве размещения сертификата выбираем Доверенные корневые центры сертификации:

Помещаем сертификат в корневые центры сертификации

Импортируем сертификат.

После снова пробуем подключиться к удаленному рабочему столу через шлюз:

Снова подключаемся к серверу терминалов

Система запросит логин и пароль для подключения (возможно, дважды) — вводим данные для учетной записи с правами на подключение (на основе настройки политики RDG).

Настройка Remoteapp через Gateway

Предположим, у нас есть опубликованное приложение Remoteapp и мы хотим подключаться к терминальному серверу через настроенный шлюз. Для этого открываем rdp-файл приложения на редактирование (например, блокнотом) и вносим в него изменения:

...
gatewayhostname:s:rdg.dmosk.local
gatewayusagemethod:i:1
...

* где:

  • gatewayhostname:s:rdg.dmosk.local — добавленная строка. Настройка говорит, что если при подключении к серверу нужно использовать шлюз, то это должен быт rdg.dmosk.local.
  • gatewayusagemethod:i:1 — отредактированная строка. Указывает, что необходимо использовать шлюз.

Пробуем подключиться.

Несколько терминальных серверов и dns round robin

При наличие нескольких серверов терминалов, мы можем создать несколько записей в DNS, чтобы получать по round robin разные серверы:

Созданные записи в DNS для разных терминалок

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

Ошибка при подключении к серверу по новой записи через шлюз

Для решения переходим в настройку шлюза - кликаем правой кнопкой по Политики авторизации ресурсов и выбираем Управление локальными группами компьютеров:


Переход к управлению локальными группами компьютеров в RDG

Выбираем нужную группу компьютеров и нажимаем Свойства:

Переход к свойствам групп компьютеров в RDG

* в моем случае это была единственная группа, созданная по умолчанию.

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

Добавляем новое имя, созданное в DNS

Теперь подключение будет выполняться без ошибок.

Возможные ошибки

При подключении мы можем столкнуть со следующими ошибками.

1. Учетная запись пользователя не указана в списке разрешений шлюза удаленных рабочих столов.

Причиной является отсутствие пользователя, под которым идет подключение к шлюзу, в группе, которой разрешено использование политики. Для решения проблемы проверяем настройки политики — группы пользователей, которым разрешено использование политики и к каким ресурсам разрешено подключение. В итоге, наш пользователь должен быть в нужной группе, а терминальный сервер, к которому идет подключение должен быть указан в соответствующей группе ресурсов.

2. Возможно, удаленный компьютер указан в формате NetBIOS (например, computer1), но шлюз удаленных рабочих столов ожидает полное доменное имя или IP-адрес (например, computer1.fabrikam.com или 157.60.0.1).

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

3. Сертификат шлюза удаленных рабочих столов просрочен или отозван.

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

# Windows # Безопасность # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет