2026-09-16
Windows Server 2019

Remote Desktop Gateway на Windows Server: RDP в интернет без VPN

Remote Desktop Gateway (RD Gateway) — компонент Windows Server, который публикует RDP-доступ через HTTPS (порт 443). Пользователям не нужен VPN: они подключаются к серверу напрямую через браузер или mstsc, а трафик зашифрован SSL. Это удобная альтернатива связке «VPN + RDP» из серии про DSCP. Разберём установку и настройку на Windows Server 2019/2022.


Зачем RD Gateway вместо VPN

Критерий RD Gateway VPN + RDP
Пользователь Просто mstsc + порт 443 Настроить VPN-клиент
Безопасность трафика TLS поверх 443 Зависит от VPN
Фильтрация По AD, группам, OTP По VPN-группам
NAT/DDoS 443 везде открыт, меньше атак Открытые VPN-порты
Для 1С/RemoteAPP Отлично сочетается Ок

Для сценария «терминальный сервер без домена» (есть статья на сайте) GW тоже работает, но полнее — с Active Directory. Здесь даём оба варианта.


Шаг 1. Устанавливаем роль RD Gateway

Включите роли на сервере-шлюзе (может быть сам RDS-сервер):

Install-WindowsFeature -Name RDS-Gateway

Для RemoteAPP/управления — лучше RDS-Gateway, RDS-Web-Access:

Install-WindowsFeature -Name RDS-Gateway,RDS-Web-Access

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

Get-WindowsFeature RDS-Gateway | Select Name, InstallState

Шаг 2. HTTPS-сертификат

RD Gateway требует сертификат для SSL. Проще всего — Let’s Encrypt через win-acme:

  1. Установите win-acme (WACS) на Windows Server.
  2. Выпустите сертификат на DNS-имя rds.example.ru.
  3. Войдите в Certificate Store (Local Machine).

Ручная проверка сертификата:

Get-ChildItem Cert:LocalMachineMy | Select Subject, NotAfter, Thumbprint

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


Шаг 3. Настройка через Server Manager (графическая)

  1. Server Manager → Tools → Remote Desktop Services.
  2. На стойке RD Gateway Manager → правый клик по серверу → Properties.
  3. Вкладка SSL: выбрать сертификат.
  4. Вкладка Policies: создать политику доступа.

Политика авторизации (RD CAP)

CAP (Connection Authorization Policy) решает, КТО может заходить:

  • Groups: выберите AD-группу (например RDS-Users)
  • или для сценария без домена — локальную группу

Политика ресурсов (RD RAP)

RAP (Resource Authorization Policy) решает, НА КАКИЕ серверы можно:

  • Allow users to connect to any computer
  • или ограничить конкретными IP/именами

Шаг 4. Настройка через PowerShell (быстрый вариант)

Тот же результат полностью через скрипт:

$thumb = (Get-ChildItem Cert:LocalMachineMy | Where-Object {$_.Subject -like "*rds.example.ru*"}).Thumbprint

# Создаём политики доступа
New-RDRemoteAppCertificate -SSLCertificateThumbprint $thumb

# CAP
New-RDPolicyConfiguration -ConnectionAuthPolicyName "Allow RDS Users" `

# Работает через RD Provider:
Set-Item wsman:localhostClientTrustedHosts *

Более полный вариант через RDGateway cmdlets:

# Добавить группы в CAP
Set-RDCertificate -Role RDGateway -Thumbprint $thumb
Set-RDAuthorizationPolicy -Role RDGateway -EnableIntermediateCertificateStore 1

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


Шаг 5. Настройка на клиенте (Windows 10/11)

Пользователь добавляет подключение обычным mstsc:

  1. mstsc → Параметры → Подключение через RD Gateway:
  2. Server name: rds.example.ru
  3. Logon method: As username-password
  4. Или через RD Web Access (браузер):
    https://rds.example.ru/RDWeb
    Пользователь логинится и запускает RemoteAPP / удалённый рабочий стол прямо из браузера.

Шаг 6. NAT на Mikrotik (связка со статьями про роутер)

Связка с Mikrotik из других статей сайта:

/ip firewall nat add chain=dstnat protocol=tcp dst-port=443 
    action=dst-nat to-addresses=192.168.10.50 to-ports=443 
    comment="RD Gateway"
/ip firewall filter add chain=input protocol=tcp dst-port=443 
    action=accept place-before=0
/ip firewall nat add chain=srcnat src-address=192.168.0.0/24 
    dst-address=192.168.10.50 dst-port=443 protocol=tcp 
    action=masquerade comment="SRCNAT RDP-GW"

VPN не нужен: GW публикуется напрямую через 443. Но WAN-фильтр (Fail2ban/rate-limit) желателен — снизит перебор.


Шаг 7. 2FA (связка со статьёй про двухфакторку)

RD Gateway можно дополнить двухфакторной аутентификацией — но классически OTP для RDGW делается через NPS/Radius. Подробнее в отдельной статье про FreeRADIUS. Быстрый вариант:

  1. Установить Remote Access роль NPS.
  2. Настроить Radius-client на RD Gateway.
  3. FreeRADIUS + OTP — проверяет пользователя.

Экономный вариант — комбинация Windows-пароля + сертификат и ограничение по IP с Fail2ban/GeoIP.


Проверка

  1. С телефона/внешнего ПК запустите mstsc, подключитесь к rds.example.ru:443.
  2. Введите доменный логин/пароль.
  3. Должно открыться окно входа в терминальный сервер.
  4. В Event Viewer → RDP session — видно успешные подключения:
    Get-WinEvent -LogName "Microsoft-Windows-TerminalServices-Gateway/Operational"

Tонкости и подводные камни

  • Сертификат у локального CA/самодельный — клиенты увидят предупреждение. Используйте общедоступный (Let’s Encrypt).
  • RD Gateway без AD — CAP/RAP на локальных группах работают, но RAP на конкретные компьютеры ограничен. Для одного RDS-сервера — ок.
  • 443 занят другим (например, nginx) — на одном IP с IIS нельзя делить 443. Разные IP или SNI.
  • Windows Firewall — обязательно разрешить TCP 443 входящий:
    powershell
    New-NetFirewallRule -DisplayName "RD Gateway 443" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
  • Двойная авторизация (GW + RDS) — нормально, ожидайте два окна входа.
  • Session timeout — по умолчанию у GW нет жёсткого таймаута; настройте CAP timeouts под политику безопасности.

Шпаргалка

Install-WindowsFeature RDS-Gateway,RDS-Web-Access
# RD Gateway Manager -> настроить сертификат + CAP + RAP
# Клиент: mstsc -> RD Gateway: rds.example.ru
# NAT на Mikrotik: dstnat 443 -> 192.168.10.50:443

Проверено на: Windows Server 2019/2022.
Дата: Сентябрь 2026.

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

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