Развертывание Microsoft Remote Desktop Services
- Подготовьте облако к работе
- Создайте облачную сеть и подсети
- Создайте скрипт для управления локальной учетной записью администратора
- Создайте ВМ для Windows Server with Remote Desktop Services
- Установите и настройте службу контроллера домена (Active Directory)
- Настройте правила файрвола
- Настройте сервер лицензирования в домене
- Настройте роль Remote Desktop Session Host
- Добавьте сервер в группу безопасности AD и зарегистрируйте его как SCP
- Создайте пользователей
- Как удалить созданные ресурсы
Важно
В Yandex Cloud продукты Microsoft можно использовать только с вашими собственными лицензиями и только на выделенных хостах. Подробнее см. Использование своей лицензии для продуктов Microsoft.
В сценарии описывается развертывание Microsoft Windows Server Datacenter с предустановленной службой Remote Desktop Services в Yandex Cloud. Инсталляция Microsoft Windows Server with Remote Desktop Services будет состоять из одного сервера, на котором будут установлены службы Remote Desktop Services и Active Directory. Образы представлены с подготовленными квотами на 5, 10, 25, 50 и 100 пользователей. Выберите версию с необходимой квотой. Все примеры приводятся для сервера с квотой на 5 пользователей.
Важно
Для увеличения квоты необходимо пересоздать ВМ.
Чтобы развернуть инфраструктуру Remote Desktop Services:
- Подготовьте облако к работе.
- Создайте облачную сеть и подсети.
- Создайте скрипт для управления локальной учетной записью администратора.
- Создайте ВМ для Remote Desktop Services.
- Установите и настройте службу контроллера домена (Active Directory).
- Настройте правила файрвола.
- Настройте сервер лицензирования в домене.
- Настройте роль Remote Desktop Session Host.
- Создайте пользователей.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Примечание
Проверьте, что в платежном аккаунте указаны пользовательские данные, необходимые для выполнения требований лицензионной политики Microsoft. Без этих данных вы не сможете запустить продукт.
Необходимые платные ресурсы
В стоимость инсталляции Microsoft Windows Server with Remote Desktop Services входят:
- плата за постоянно запущенные виртуальные машины (см. тарифы Yandex Compute Cloud);
- плата за использование динамических или статических публичных IP-адресов (см. тарифы Yandex Virtual Private Cloud);
- стоимость исходящего трафика из Yandex Cloud в интернет (см. тарифы Yandex Compute Cloud).
Создайте облачную сеть и подсети
Создайте облачную сеть my-network
с подсетями во всех зонах доступности, где будут находиться виртуальные машины.
-
Создайте облачную сеть:
Консоль управленияCLIAPIЧтобы создать облачную сеть:
- Откройте раздел Virtual Private Cloud в каталоге, где требуется создать облачную сеть.
- Нажмите кнопку Создать сеть.
- Задайте имя сети:
my-network
. - Нажмите кнопку Создать сеть.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра
--folder-name
или--folder-id
.Чтобы создать облачную сеть, выполните команду:
yc vpc network create --name my-network
Воспользуйтесь методом REST API create для ресурса Network или вызовом gRPC API NetworkService/Create.
-
Создайте подсеть в сети
my-network
:Консоль управленияCLIAPIЧтобы создать подсеть:
- Откройте раздел Virtual Private Cloud в каталоге, где требуется создать подсеть.
- Нажмите на имя облачной сети.
- Нажмите кнопку Добавить подсеть.
- Заполните форму: введите имя подсети
my-subnet-a
, выберите зону доступностиru-central1-a
из выпадающего списка. - Введите CIDR подсети: IP-адрес и маску подсети:
10.1.0.0/16
. Подробнее про диапазоны IP-адресов в подсетях читайте в разделе Облачные сети и подсети. - Нажмите кнопку Создать подсеть.
Чтобы создать подсеть, выполните команду:
yc vpc subnet create \ --name my-subnet-a \ --zone ru-central1-a \ --network-name my-network \ --range 10.1.0.0/16
Воспользуйтесь методом REST API create для ресурса Subnet или вызовом gRPC API SubnetService/Create.
Создайте скрипт для управления локальной учетной записью администратора
Создайте файл setpass
, содержащий скрипт, который будет устанавливать пароль для локальной учетной записи администратора при создании виртуальных машин через CLI:
#ps1
Get-LocalUser | Where-Object SID -like *-500 | Set-LocalUser -Password (ConvertTo-SecureString "<ваш пароль>" -AsPlainText -Force)
Пароль должен соответствовать требованиям к сложности
Подробные рекомендации по защите Active Directory читайте на сайте разработчика
Создайте ВМ для Windows Server with Remote Desktop Services
Создайте виртуальную машину для Windows Server with Remote Desktop Services. Эта машина будет иметь доступ в интернет.
-
На странице каталога в консоли управления
нажмите кнопку Создать ресурс и выберите Виртуальная машина. -
В поле Имя введите имя виртуальной машины:
my-rds-vm
. -
Выберите зону доступности
ru-central1-a
. -
В блоке Cloud Marketplace нажмите кнопку Посмотреть больше. В открывшемся окне выберите образ RDS.
-
В блоке Диски укажите размер загрузочного диска 50 ГБ.
-
В блоке Вычислительные ресурсы:
- Выберите платформу: Intel Ice Lake.
- Укажите необходимое количество vCPU и объем RAM:
- vCPU — 4.
- Гарантированная доля vCPU — 100%.
- RAM — 8 ГБ.
-
В блоке Сетевые настройки нажмите кнопку Добавить сеть и выберите сеть
my-network
. Выберите подсетьmy-subnet-a
. В блоке Публичный адрес выберите вариант Автоматически. -
Нажмите кнопку Создать ВМ.
Дождитесь, когда статус ВМ сменится на Running
, и сбросьте пароль:
- Выберите виртуальную машину.
- Нажмите кнопку Сбросить пароль.
- Укажите Имя пользователя, для которого нужно сбросить пароль. Если у ВМ не существует пользователя с таким именем, он будет создан с правами администратора.
- Нажмите кнопку Сгенерировать пароль.
- Сохраните Новый пароль. После закрытия окна он будет недоступен.
yc compute instance create \
--name my-rds-vm \
--hostname my-rds-vm \
--memory 8 \
--cores 4 \
--zone ru-central1-a \
--network-interface subnet-name=my-subnet-a,ipv4-address=10.1.0.3,nat-ip-version=ipv4 \
--create-boot-disk image-folder-id=standard-images,image-family=windows-2022-dc-gvlk-rds-5 \
--metadata-from-file user-data=setpass
Воспользуйтесь методом REST API create для ресурса Instance или вызовом gRPC API InstanceService/Create.
Установите и настройте службу контроллера домена (Active Directory)
-
Перезапустите ВМ
my-rds-vm
:Консоль управленияCLIAPI- На странице каталога в консоли управления
выберите сервис Compute Cloud. - Выберите виртуальную машину
my-rds-vm
. - Нажмите
и выберите пункт Перезапустить.
yc compute instance restart my-rds-vm
Воспользуйтесь методом REST API restart для ресурса Instance или вызовом gRPC API InstanceService/Restart.
- На странице каталога в консоли управления
-
Подключитесь к ВМ
my-rds-vm
с помощью RDP. Используйте логинAdministrator
и ваш пароль. -
Установите роли Active Directory:
PowerShellInstall-WindowsFeature AD-Domain-Services -IncludeManagementTools Restart-Computer -Force
-
Создайте лес Active Directory:
PowerShellInstall-ADDSForest -DomainName 'yantoso.net' -Force:$true
Windows перезапустится автоматически. Снова подключитесь к ВМ
my-rds-vm
. Используйте логинyantoso\Administrator
и ваш пароль. Снова откройте PowerShell.
Настройте правила файрвола
-
Добавьте правила файрвола, защищающие службу Active Directory от запросов из внешних сетей:
PowerShellSet-NetFirewallRule ` -DisplayName 'Active Directory Domain Controller - LDAP (UDP-In)' ` -RemoteAddress:Intranet Set-NetFirewallRule ` -DisplayName 'Active Directory Domain Controller - LDAP (TCP-In)' ` -RemoteAddress:Intranet Set-NetFirewallRule ` -DisplayName 'Active Directory Domain Controller - Secure LDAP (TCP-In)' ` -RemoteAddress:Intranet
Настройте сервер лицензирования в домене
-
Добавьте системного пользователя Network Service в Terminal Server License Servers, группу безопасности Active Directory:
PowerShellnet localgroup "Terminal Server License Servers" /Add 'Network Service'
-
Установите тип лицензирования.
Примечание
Доступны только
User CAL
лицензии.PowerShellNew-ItemProperty ` -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' ` -Name 'LicensingMode' ` -Value 4 ` -PropertyType 'DWord'
-
Укажите службу лицензирования RDS:
PowerShellNew-ItemProperty ` -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' ` -Name 'LicenseServers' ` -Value 'localhost' ` -PropertyType 'String'
-
(Опционально) Ограничьте количество разрешенных одновременных сессий к серверу:
PowerShellNew-ItemProperty ` -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' ` -Name 'MaxInstanceCount' ` -Value 5 ` -PropertyType 'DWord'
Настройте роль Remote Desktop Session Host
Установите роль Remote Desktop Session Host на сервер:
Install-WindowsFeature RDS-RD-Server -IncludeManagementTools
Restart-Computer -Force
Добавьте сервер в группу безопасности AD и зарегистрируйте его как SCP
Добавьте сервер в Terminal Server License Servers, группу безопасности Active Directory, и зарегистрируйте его как точку подключения пользователей к сервису лицензирования (service connection point, SCP):
- Нажмите Start.
- В поле поиска введите
Remote Desktop Licensing Manager
. - Нажмите правой кнопкой мыши на сервер в списке и выберите Review Configuration...
- Напротив первого предупреждения, о группе
Terminal Server License Servers
, нажмите Add to Group, а затем — Continue. - Напротив второго предупреждения, о точке подключения к сервису, нажмите Register as SCP.
- Нажмите OK.
- Перезапустите ВМ.
Создайте пользователей
-
Создайте тестовых пользователей:
PowerShellNew-ADUser ` -Name ru1 ` -PasswordNeverExpires $true ` -Enabled $true ` -AccountPassword ("P@ssw0rd!1" | ConvertTo-SecureString -AsPlainText -Force ) New-ADUser ` -Name ru2 ` -PasswordNeverExpires $true ` -Enabled $true ` -AccountPassword ("P@ssw0rd!1" | ConvertTo-SecureString -AsPlainText -Force ) New-ADUser ` -Name ru3 ` -PasswordNeverExpires $true ` -Enabled $true ` -AccountPassword ("P@ssw0rd!1" | ConvertTo-SecureString -AsPlainText -Force ) New-ADUser ` -Name ru4 ` -PasswordNeverExpires $true ` -Enabled $true ` -AccountPassword ("P@ssw0rd!1" | ConvertTo-SecureString -AsPlainText -Force ) New-ADUser ` -Name ru5 ` -PasswordNeverExpires $true ` -Enabled $true ` -AccountPassword ("P@ssw0rd!1" | ConvertTo-SecureString -AsPlainText -Force )
-
Выдайте пользователям права
Remote Desktop Users
:PowerShellAdd-ADGroupMember -Members 'ru1' -Identity 'Remote Desktop Users' Add-ADGroupMember -Members 'ru2' -Identity 'Remote Desktop Users' Add-ADGroupMember -Members 'ru3' -Identity 'Remote Desktop Users' Add-ADGroupMember -Members 'ru4' -Identity 'Remote Desktop Users' Add-ADGroupMember -Members 'ru5' -Identity 'Remote Desktop Users'
-
Настройте права доступа по RDP для группы
Remote Desktop Users
:PowerShell& secedit /export /cfg sec_conf_export.ini /areas user_rights $secConfig = Get-Content sec_conf_export.ini $SID = 'S-1-5-32-555' $secConfig = $secConfig -replace '^SeRemoteInteractiveLogonRight .+', "`$0,*$SID" $secConfig | Set-Content sec_conf_import.ini & secedit /configure /db secedit.sdb /cfg sec_conf_import.ini /areas user_rights Remove-Item sec_conf_import.ini Remove-Item sec_conf_export.ini
Как удалить созданные ресурсы
Если вам больше не нужны созданные ресурсы, удалите виртуальные машины и сети.