RD Gateway: безопасный доступ к множеству серверов через один 443 Print

  • rdp, windows, ubuntu, debian
  • 1

RD Gateway (RDG) проксирует RDP-трафик по HTTPS. Клиенты подключаются к одному внешнему имени по 443/TCP (и опционально 3391/UDP для ускорения), а RDG уже ходит к внутренним серверам по RDP. Это решает публикацию множества серверов без проброса 3389 наружу.

Короткий план
- Спроектировать: FQDN, сертификат, группы доступа, порты.
- Установить роли RD Gateway и NPS.
- Выпустить и привязать сертификат к RDG.
- Создать политики CAP (кто может) и RAP (куда можно).
- Открыть нужные порты и проверить.
- Настроить клиентов или GPO.
- Включить аудит и подготовить отладку.

Планирование
- Внешнее имя RDG: например, rdg.example.com.
- Сертификат: выпуск на rdg.example.com, в локальное хранилище компьютера.
- Группы в AD:
- RDG_Users — пользователи, кому разрешён доступ.
- RDG_Servers — серверы-назначения (группа компьютеров).
- Порты и направления:
- Вход в RDG снаружи: 443/TCP обязательно, 3391/UDP опционально.
- Выход из RDG к серверам: 3389/TCP и при желании 3389/UDP внутри сети.
- Минимальные требования на серверах-назначениях:
- Включён RDP, требуется NLA.
- Фаервол разрешает вход с RDG по 3389.

Установка ролей на Windows Server 2019/2022/2025

В PowerShell от имени администратора:

# Установить RD Gateway и NPS (политики авторизации RDG хранятся в NPS)
Install-WindowsFeature -Name RDS-Gateway,NPAS -IncludeManagementTools

# (Опционально) инструменты AD для управления группами с RDG
Install-WindowsFeature -Name RSAT-AD-PowerShell -IncludeAllSubFeature

Создаем группы доступа в AD

# Пример: создать группы в контейнере Users домена
New-ADGroup -Name "RDG_Users" -GroupScope Global -GroupCategory Security
New-ADGroup -Name "RDG_Servers" -GroupScope Global -GroupCategory Security

# Добавить пользователей и серверы
Add-ADGroupMember -Identity "RDG_Users" -Members user1,user2
Add-ADGroupMember -Identity "RDG_Servers" -Members srv-app01$,srv-db01$

Примечание: имена серверов добавляются как учетные записи компьютеров (с суффиксом $).

Сертификат для RD Gateway

В бою используйте сертификат от доверенного УЦ на имя rdg.example.com. Для стенда можно сгенерировать самоподписанный:

# Самоподписанный на 3 года (для теста)
$cert = New-SelfSignedCertificate -DnsName "rdg.example.com" `
-CertStoreLocation "Cert:\LocalMachine\My" -KeyLength 2048 `
-KeyAlgorithm RSA -HashAlgorithm SHA256 -NotAfter (Get-Date).AddYears(3)

Привязка сертификата выполняется в «Remote Desktop Gateway Manager»:
- Откройте RD Gateway Manager → имя сервера → Properties → вкладка SSL Certificate.
- Нажмите Import/Select Existing Certificate → выберите сертификат на rdg.example.com → Apply.

Если сертификат в PFX:

$pwd = ConvertTo-SecureString 'P@ssw0rd!' -AsPlainText -Force
Import-PfxCertificate -FilePath 'C:\certs\rdg.pfx' -Password $pwd -CertStoreLocation 'Cert:\LocalMachine\My'

Политики CAP и RAP

RD Gateway опирается на NPS-политики:
- CAP (Connection Authorization Policy) — кто может подключаться.
- RAP (Resource Authorization Policy) — к каким ресурсам и на какие порты.

Через графику:
- Откройте RD Gateway Manager → Policies.
- Создайте RD CAP:
- User Groups: добавьте группу RDG_Users.
- Authentication: Password, при необходимости Smart card.
- Device Redirection: при желании запретить перенаправление дисков/буфера.
- Создайте RD RAP:
- Network Resource Groups: создайте группу и добавьте в неё RDG_Servers.
- Allowed Ports: 3389.
- User Groups: RDG_Users.

Советы по политике:
- Делите пользователей по ролям и создавайте несколько RAP для разных «зон» серверов.
- Для критичных систем делайте RAP на конкретные FQDN/хосты.
- В CAP можно задать ограничения по времени и клиентскому адресу (через условия NPS).

Брандмауэр и публикация

На RDG-сервере:

# Разрешить вход снаружи
New-NetFirewallRule -DisplayName "RDG HTTPS 443" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
# Ускоренный транспорт RDP по UDP (опционально)
New-NetFirewallRule -DisplayName "RDG UDP 3391" -Direction Inbound -Protocol UDP -LocalPort 3391 -Action Allow

# Разрешить исходящее к серверам-назначениям
New-NetFirewallRule -DisplayName "To Targets RDP 3389 TCP" -Direction Outbound -Protocol TCP -RemotePort 3389 -Action Allow
New-NetFirewallRule -DisplayName "To Targets RDP 3389 UDP" -Direction Outbound -Protocol UDP -RemotePort 3389 -Action Allow

На периметре/балансировщике:
- Пробросите внешний 443/TCP на RDG.
- Если используете UDP-ускорение, пробросите 3391/UDP.
- Настройте ограничения по исходным IP, где возможно.

Настройки на серверах-назначениях

На каждом целевом сервере Windows:
- Включите RDP и NLA:
- System Properties → Remote → «Allow remote connections» и «Allow connections only with NLA».
- Разрешите вход из внутренней сети и от RDG по 3389/TCP (и 3389/UDP при желании).
- Убедитесь, что сервер входит в группу RDG_Servers.

Настройка клиентов

Вручную через mstsc:
- Откройте mstsc → Show Options → вкладка Advanced → Settings.
- Выберите «Use these RD Gateway server settings».
- Server name: rdg.example.com.
- Отметьте «Bypass RD Gateway server for local addresses» при необходимости.
- На вкладке General укажите Target computer, например srv-app01.example.com.

Через GPO для доменных ПК:
- Computer Configuration → Policies → Administrative Templates → Windows Components → Remote Desktop Services → RD Gateway.
- Включите «Specify RD Gateway server settings» и задайте rdg.example.com.
- При необходимости включите «Set RD Gateway authentication method» и «Bypass for local addresses».

Проверка с клиента

# С рабочей станции
Test-NetConnection rdg.example.com -Port 443
# Если включили UDP
Test-NetConnection rdg.example.com -Port 3391 -Udp

Высокая доступность и масштабирование


- RD Gateway статичен по состоянию, хорошо масштабируется горизонтально.
- Поставьте 2+ узла RDG за L4/L7-балансировщиком.
- На всех узлах используйте один и тот же сертификат и FQDN.
- Настройте «persistence» по исходному IP на балансировщике.
- Политики NPS можно централизовать на отдельном NPS-сервере, сделав RDG RADIUS-клиентами.

Журналы и отладка

Журналы:
- Event Viewer → Applications and Services Logs → Microsoft → Windows → TerminalServices-Gateway → Operational.
- NPS: Event Viewer → Custom Views → Server Roles → Network Policy and Access Services.
- Текстовые NPS-логи: %SystemRoot%\System32\LogFiles.

Быстрая диагностика:

# Состояние службы RDG
Get-Service -Name TSGateway

# Проверка привязки сертификата RDG (через GUI она уже выполнена)
Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Subject -like "*rdg.example.com*"}

# Тест TCP 443 с RDG-сервера до себя и изнутри
Test-NetConnection -ComputerName localhost -Port 443

Типичные ошибки:


- Клиент жалуется на недоверенный сертификат — установите сертификат от доверенного УЦ ровно на FQDN RDG, проверьте цепочку и время.
- «Your computer can’t connect to the RD Gateway server» — проверьте 443 снаружи, CAP/RAP, членство в группах RDG_Users и RDG_Servers, часы (Kerberos), и логи в TS-Gateway.
- Черный экран после входа — чаще вопрос целевого сервера: драйвер видео, политики, NLA, лицензирование RDS CAL не при чём для базового прохождения через RDG.
- Медленно по WAN — включите UDP 3391 на RDG и 3389/UDP внутри, убедитесь, что файрволлы их пропускают.

Cоветы по усилению безопасности


- Обязательно включайте NLA в CAP и на целевых серверах.
- Ограничивайте RDG по исходным IP на периметре.
- Отключите перенаправление локальных ресурсов в CAP, если не требуется.
- Регулярно обновляйте сервер и следите за криптографическими протоколами TLS и наборами шифров.
- Для критичных окружений используйте отдельный jump-segment, а доступ к самим серверам ограничивайте только с RDG.


Was this answer helpful?

Related Articles

Как использовать свои подсети /24 на серверах Hetzner. Использование на Windows Server   Hetzner выдаёт только один белый IP. Хочется RDP на несколько ВМ, собственный почтовый пул или... Какие есть боты/сервисы, которые стоит добавить в исключения? Практический гайд для защиты сайта и бизнеса В современных условиях кибербезопасности настройка блокировок и фильтров — обязательная мера для... Какие есть боты/сервисы, которые стоит добавить в исключения? Практический гайд для защиты сайта и бизнеса В современных условиях кибербезопасности настройка блокировок и фильтров — обязательная мера для... Что делать, если сертификаты Let’s Encrypt не обновляются? Простое решение за 5 минут Сертификаты от Let’s Encrypt стали стандартом для бесплатной автоматической защиты сайтов по... Какие сервисы и решения реально помогают? Топ-10 инструментов Почему взламывают сайты и что самое опасное? Современный сайт на WordPress, Битрикс, Joomla,...
« Back

Powered by WHMCompleteSolution


Knowledgebase