Доступ к RDP через авторизацию RADIUS
Т.к. многие организации для удаленного подключения сотрудников из вне к ресурсам компании используют «Проброс порта
«, как правило до терминального сервера, но я хочу рулить доступом. А доступ может быть организован через Remote Desktop Gateway
— это не просто проброс RDP
порта, но еще защита. Защита — использует только один порт входа из вне в вашу локальную сеть, не зная куда через Remote Desktop Gateway
можно подключиться и не авторизовавшись на нем подключения не будет. К тому же чем меньше портов во вне открыто нет лучше. Серверная система на базе Windows Server 2012 R2 Std Eng
Тестовый стенд на котором данная заметка прорабатывается — это Debian 10 + Proxmox 6
Gateway:
srv-gw.polygon.com
IP (LAN): 10.90.90.2/24
IP (WAN): 172.33.33.11/24
Domain Controller:
srv-ad.polygon.com (AD,DNS,DHCP,)
IP (LAN): 10.90.90.3
Terminal Server:
srv-ts.polygon.com
IP (LAN): 10.90.90.10
RDG:
srv-rdsg.polygon.com
IP (LAN): 10.90.90.11
Workstation:
W10X64.polygon.com
IP (LAN): 10.90.90.12
Тестовый стенд на базе гипервизора Debian 10 + Proxmox 6 с задействованным железом:
Motherboard: Gigabyte 970A-DS3P
RAM: CORSAIR Vengeance CMZ8GX3M1A1600C10 DDR3 — 8Гб 1600, DIMM, Ret x4
CPU: AMD FX(tm)-6300 Six-Core Processor
HDD: SSD накопитель SILICON POWER M-Series SP512GBP34A80M28 512Гб, M.2 2280, PCI-E x4, NVMe, WDC_WD5003ABYX-0, WD Blue WDS100T2B0A 1Тб, 2.5" SATA III
Шаг №1:
На определенном железе поднят гипервизор Debian 10 + Proxmox 6
Шаг №2:
Создана VM
которая будет шлюзом сети домена во вне, в качестве оси будет выступать PfSense 2.4.4.
Шаг №3:
На VM
которая является домен контроллером под управлением Windows Server 2012 R2 Std English
VM ID: 101 (srv-s2012r2a)
srv-dc.polygon.com 10.90.90.3/24
Роли: Active Directory,DNS,DHCP
Создаю доменную группу RDPVPNTS (в нее включен srv-ts)
Создаю доменную группу RDPVPNAllow (в нее включен alektest)
Шаг №4:
Поднимаю еще одну VM
которая будет являться шлюзом, т.е. система (srv-rdsg.polygon.com
) с ролью
Win + X - Control Panel - View by: Category - Small icons - Administrative Tools - Server Manager - Add roles and features
— отмечаю галочкой роль Remote Desktop Services
, затем галочкой Remote Desktop Gateway
, соглашаюсь на установку необходимых дополнений в которые входит роль:
Network Policy and Access Services
Web Server (IIS)
и нажимаю «Add Features
«, далее нажимаю везде «Next
«, а после «Install
»
Шаг №5:
Настраиваю работу NPS
в паре с Remote Desktop Gateway (RDGW)
srv-rdsg.polygon.com
Win + X - Control Panel - Administrative Tools - Remote Desktop Services - Remote Desktop Gateway Manager - RD Gateway Manager - SRV-RDSG (Local) - Policies
(сконфигурируем авторизованные подключения) — Connection Authorization Policies - Create New Policy - Wizard
— выбираю Create a RD CAP and a RD RAP (recommended)
и нажимаю Next
Type a name for the RD CAP (задаем имя шаблону): RDPVPN
и нажимаю Next
Select at least one supported Windows authentication method: Password
User group membership (required): Add Group... - добавляю группу RDPVPNAllow
и нажимаю Next
Device Redirection: Enable device redirection for all client devices
и нажимаю Next, Next (Session Timeout), Next
Type a name for the RDP RAP (задаем имя шаблону): RDPVPNTO
и нажимаю Next
User Groups: подставляется ранее добавленная группа POLYGON\RDPVPNAllow
и нажимаю Next
Network Resources: (Select an Active Directory Domain Services network resource group) Browse - если не указать, то через сервис Remote Desktop Gateway можно будет подключаться из вне к любой системе, но я же ограничиваю доступ к группе в которую у меня включен Terminal Server (srv-ts.polygon.local): RDPVPNTS
и нажимаю Next
Allowed Ports: Allow connections only to port 3389
и нажимаю Next, Finish
Политики созданы:
и нажимаю Close
Шаг №6:
Дабы активировать Remote Desktop Gateway
необходим сертификат:
Win + X - Control Panel - Administrative Tools - Remote Desktop Services - Remote Desktop Gateway Manager - RD Gateway Manager
— через правый клик мышью на SRV-RDSG (Local)
открываю Properties (Свойства)
, перехожу на вкладке SSL Certificate
сейчас нет сертификата
Create a self-signed certificate: нажимаю на Create and Import Certificate
, и нажимаю «ОК
«
Следующее окно говорит, что для службы RD Gateway
был успешно создан самоподписанный сертификат и сохранен.
нажимаю Apply
для его применения к серверу srv-rdsg.polygon.com
нажимаю Apply
для его применения к серверу srv-rdsg.polygon.com
Шаг №7:
Можно увеличить безопасность изменив порт подключения через Remote Desktop Protocol
, по умолчанию он 443
, изменяем он в окне Properties
вкладка Transport Settings
. Я пока оставлю по дефолту.
Шаг №8:
Проверяю, что из доменной сети могу обратиться на 443/tcp
Так Web
-сервер IIS
работает.
Шаг №9:
Произвожу установку терминального сервера на srv-ts.polygon.com
опираясь на заметку «Терминальный сервер в Server 2012 R2»
после открываю
Win + X - Control - Administrative Tools - Computer Management - Computer Management (Local) - System Tools - Local Users and Groups - Group
— и в группу RDS Management Server
добавляю систему на которой будет развернута роль Remote Desktop Gateway
, у меня это srv-rdsg.polygon.com
Win + X - Control - Administrative Tools - Computer Management - Computer Management (Local) - System Tools - Local Users and Groups - Group - и в группу Remote Desktop Users
добавляю группу RDPVPNAllow
Шаг №10:
Теперь, как же подключиться к терминальному серверу если точка входа это система с ролью Remote Desktop Gateway
К примеру из локальной сети
W10X64.polygon.com
— авторизуюсь на ней под учетной записью alektest
, запускаю Win + R -> mstsc.exe
вкладка Общие
Компьютер: srv-ts.polygon.com
Пользователь: alektest
вкладка Дополнительно
перехожу в «Параметры
«, отмечаю «Использовать следующие параметры сервера шлюза удаленных рабочих столов
»
Имя сервера: srv-rdsg.polygon.com
Метод входа: Выбрать позднее
Не использовать сервер шлюза удаленных рабочих столов для локальных адресов: снимаю галочку
Использовать мои учетные данные шлюза удаленных рабочих столов для удаленного компьютера: отмечаю галочкой
и нажимаю «ОК
«, для удобства сохраняю настройки подключения на рабочий стол, как srv-ts.rdp
и нажимаю «Сохранить
«. Затем нажимаю «Подключить
«.
Окно говорит, что сейчас будет инициализировано подключение: подтверждаю нажатием на «Подключить
»
Далее нужно указать учетные данные для подключения к srv-rdsg.polygon.com
Имя пользователя: alektest
Пароль: Aa1234567
Запомнить меня: отмечаю галочкой
и нажимаю «ОК
»
Происходит инициализация подключения
в ответ окно «Компьютеру не удается проверить удостоверение шлюза удаленных рабочих столов «srv-rdsg.polygon.com
«. Подключаться к серверам без удостоверение небезопасно. Обратитесь за помощью к администратору сети.»
А все потому что сертификат который я создал для сервера srv-rdsg.polygon.com
самоподписанный и не распространен на все клиентские станции домена.
Шаг №11:
Как добавить самоподписанный сертификат сервера srv-rdsg.polygon.com
на клиентские станции, я буду использовать помощь GPO
, копирую его с системы srv-rdsg.polygon.com
на srv-dc.polygon.com
к примеру в каталог C:\1
srv-dc.polygon.local - Win + X - Control Panel - Administrative Tools - Group Policy Management
— и создаю GPO: RDPVPNTS
, нацелена она на
Location: polygon.com
Security Filtering: Authentication Users
после редактирую политику
Computer Configuration - Policies - Windows Settings - Security Settings - Public Key Policies
— и добавляю данный сертификат в «Trusted Publishers
» — Import
— указываю его.
Computer Configuration - Policies - Windows Settings - Security Settings - Public Key Policies
— и добавляю данный сертификат в «Trusted Root Certification Authorities
» — Import
— указываю его.
Итог настроенной политики
Теперь когда рабочие станции и узлы домена polygon.com
сделаю перезагрузку и политика к ним применится подключение к терминальному серверу через шлюз будет возможно.
Шаг №12:
Проверяю, что на клиентской рабочей станции W10X64 (Version 10.0.18362.356)
сертификат присутствует
Win + R - control - Свойства браузера - вкладка "Содержание" - Сертификаты
, тут нужно проверить наличие сертификата в «Доверенные корневые центры сертификации
» и «Доверенные издатели
»
у меня сертификат присутствует
Шаг №13:
Проверяю, что теперь с добавленным сертификатом на клиентской рабочей станции W10X64 (Version 10.0.18362.356)
я могу подключиться к терминальному серверу. Увы подключение не проходит
Разбираюсь почему?
Я забыл добавить в группу RDPVPNAllow
учетную запись alektest
Шаг №14:
Более вдумчиво проанализировал ошибку и пришел к выводу, что мой сервер аутентификации srv-rdsg.polygon.com
не зарегистирирован в Active Directory
Win + X - Control Panel - Administrative Tools - Network Policy Server
и через правый клик мышью на NPS (Local)
регистрирую его нажатием на Register server in Active Directory, OK, OK
Шаг №15:
Возвращаюсь к «Шаг №10
«, запускаю сохраненный ярлык на рабочем столе srv-ts.rdp
и нажимаю «Подключить
«. Подключение проходит успешно.
если же просто создать подключение к srv-ts
без указания шлюза, то соединение будет также установлено, т.к. группу RDPVPNAllow
состоит в группе Remote Desktop Users
, но это уже обычная авторизация в доменной сети.
Шаг №16:
У системного администратора при использовании RD Gateway Manager
появился инструмент посредством которого он может отключать удаленные сеансы прошедшие через через него, смотреть кто подключается, нет ли лишних.
Win + X - Control Panel - Administrative Tools - Remote Desktop Services - Remote Desktop Gateway Manager - RD Gateway Manager - SRV-RDSG (Local) - Monitoring
Итого всей этой заметкой я разобрался кстати снова, я когда ее только начал оформлять вспомнил, что уже делал такое, но использовал везде Windows Server 2016
. Итог теперь в любой организации где я буду работать, то обязательно буду делать доступ из вне к Windows
системам через роль Remote Desktop Gateway
. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.