Развертывание Microsoft Remote Desktop Services
- Подготовьте облако к работе
- Создайте облачную сеть и подсети
- Создайте скрипт для управления локальной учетной записью администратора
- Создайте ВМ для Windows Server with Remote Desktop Services
- Установите и настройте службу контроллера домена (Active Directory)
- Настройте правила файрвола
- Настройте сервер лицензирования в домене
- Настройте роль Remote Desktop Session Host
- Создайте пользователей
В сценарии описывается развертывание Microsoft Windows Server 2019 Datacenter с предустановленной службой Remote Desktop Services в Yandex.Cloud. Инсталляция Microsoft Windows Server with Remote Desktop Services будет состоять из одного сервера, на котором будут установлены службы Remote Desktop Services и Active Directory. Образы представлены с подготовленными квотами на 5/10/25/50/100/250/500 пользователей. Выберите версию с необходимой квотой. Все примеры приводятся для сервера с квотой на 5 пользователей.
Важно
Для увеличения квоты необходимо пересоздать ВМ.
Чтобы развернуть инфраструктуру Remote Desktop Services:
- Подготовьте облако к работе.
- Необходимые платные ресурсы.
- Создайте облачную сеть и подсети.
- Создайте скрипт для управления локальной учетной записью администратора.
- Создайте ВМ для Remote Desktop Services.
- Установите и настройте службу контроллера домена (Active Directory).
- Настройте правила файрвола.
- Настройте сервер лицензирования в домене.
- Настройте роль Remote Desktop Session Host.
- Создайте пользователей.
Подготовьте облако к работе
Перед тем, как разворачивать серверы, нужно зарегистрироваться в Yandex.Cloud и создать платежный аккаунт:
- Перейдите в консоль управления, затем войдите в Yandex.Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
- На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе
ACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша виртуальная машина, на странице облака.
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость инсталляции Microsoft Windows Server with Remote Desktop Services входят:
- плата за постоянно запущенные виртуальные машины (см. тарифы Yandex Compute Cloud);
- плата за использование динамических или статических публичных IP-адресов (см. тарифы Yandex Virtual Private Cloud);
- стоимость исходящего трафика из Yandex.Cloud в интернет (см. тарифы Yandex Compute Cloud).
Создайте облачную сеть и подсети
Создайте облачную сеть my-network
с подсетями во всех зонах доступности, где будут находиться виртуальные машины.
-
Создайте облачную сеть:
Консоль управленияCLIЧтобы создать облачную сеть:
- Откройте раздел Virtual Private Cloud в каталоге, где требуется создать облачную сеть.
- Нажмите кнопку Создать сеть.
- Задайте имя сети:
my-network
. - Нажмите кнопку Создать сеть.
Чтобы создать облачную сеть, выполните команду:
$ yc vpc network create --name my-network
-
Создайте три подсети в сети
my-network
:Консоль управленияCLIЧтобы создать подсеть:
- Откройте раздел Virtual Private Cloud в каталоге, где требуется создать подсеть.
- Нажмите на имя облачной сети.
- Нажмите кнопку Добавить подсеть.
- Заполните форму: введите имя подсети
my-subnet-a
, выберите зону доступностиru-central1-a
из выпадающего списка. - Введите CIDR подсети: IP-адрес и маску подсети:
10.1.0.0/16
. Подробнее про диапазоны IP-адресов в подсетях читайте в разделе Облачные сети и подсети. - Нажмите кнопку Создать подсеть.
Повторите шаги еще для двух подсетей
my-subnet-b
иmy-subnet-c
в зонах доступностиru-central1-b
иru-central1-c
с CIDR10.2.0.0/16
и10.3.0.0/16
соответственно.Чтобы создать подсети, выполните команды:
yc vpc subnet create \ --name my-subnet-a \ --zone ru-central1-a \ --network-name my-network \ --range 10.1.0.0/16 yc vpc subnet create \ --name my-subnet-b \ --zone ru-central1-b \ --network-name my-network \ --range 10.2.0.0/16 yc vpc subnet create \ --name my-subnet-c \ --zone ru-central1-c \ --network-name my-network \ --range 10.3.0.0/16
Создайте скрипт для управления локальной учетной записью администратора
Создайте файл 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 нажмите кнопку Выбрать. В открывшемся окне выберите образ Windows RDS.
-
В блоке Диски укажите размер загрузочного диска 50 ГБ.
-
В блоке Вычислительные ресурсы:
- Выберите платформу: Intel Cascade Lake.
- Укажите необходимое количество vCPU и объем RAM:
- vCPU — 4.
- Гарантированная доля vCPU — 100%.
- RAM — 8 ГБ.
-
В блоке Сетевые настройки нажмите кнопку Добавить сеть и выберите сеть
my-network
. Выберите подсетьmy-subnet-a
. В блоке Публичный адрес выберите вариант Без адреса. -
В блоке Доступ укажите данные для доступа на виртуальную машину:
- В поле Пароль укажите ваш пароль.
-
Нажмите кнопку Создать ВМ.
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-2019-dc-gvlk-rds-5 \
--metadata-from-file user-data=setpass
Установите и настройте службу контроллера домена (Active Directory)
-
Подключитесь к ВМ
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
Настройте сервер лицензирования в домене
-
Авторизуйте сервер лицензирования в домене.
Роль находится на контроллере домена, поэтому в
BUILTIN
группу необходимо добавитьNetwork Service
: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
Создайте пользователей
-
Создайте тестовых пользователей:
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