Развертывание Active Directory

В сценарии приводится пример развертывания Active Directory в Яндекс.Облаке.

Чтобы развернуть инфраструктуру Active Directory:

  1. Подготовьте облако к работе
  2. Необходимые платные ресурсы
  3. Создайте облачную сеть и подсети
  4. Создайте скрипт для управления локальной учетной записью администратора
  5. Создайте ВМ для Active Directory
  6. Создайте ВМ для бастионного хоста
  7. Установите и настройте Active Directory
  8. Настройте второй контроллер домена
  9. Проверьте работу Active Directory
  10. Удалите созданные ресурсы

Подготовьте облако к работе

Перед тем, как разворачивать серверы, нужно зарегистрироваться в Облаке и создать платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Облако или зарегистрируйтесь, если вы еще не зарегистрированы.
  2. На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.

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

Подробнее об облаках и каталогах.

В стоимость инсталляции Active Directory входят:

Создайте облачную сеть и подсети

Создайте облачную сеть ad-network с подсетями во всех зонах доступности, где будут находиться виртуальные машины.

  1. Создайте облачную сеть:

    Чтобы создать облачную сеть:

    1. Откройте раздел Virtual Private Cloud в каталоге, где требуется создать облачную сеть.
    2. Нажмите кнопку Создать сеть.
    3. Задайте имя сети: ad-network.
    4. Нажмите кнопку Создать сеть.

    Чтобы создать облачную сеть, выполните команду:

    $ yc vpc network create --name ad-network
    
  2. Создайте три подсети в сети ad-network:

    Чтобы создать подсеть:

    1. Откройте раздел Virtual Private Cloud в каталоге, где требуется создать подсеть.
    2. Нажмите на имя облачной сети.
    3. Нажмите кнопку Добавить подсеть.
    4. Заполните форму: введите имя подсети ad-subnet-a, выберите зону доступности ru-central1-a из выпадающего списка.
    5. Введите CIDR подсети: IP-адрес и маску подсети: 10.1.0.0/16. Подробнее про диапазоны IP-адресов в подсетях читайте в разделе Облачные сети и подсети.
    6. Нажмите кнопку Создать подсеть.

    Повторите шаги еще для двух подсетей ad-subnet-b и ad-subnet-c в зонах доступности ru-central1-b и ru-central1-c с CIDR 10.2.0.0/16 и 10.3.0.0/16 соответственно.

    Чтобы создать подсети, выполните команды:

    yc vpc subnet create \
      --name ad-subnet-a \
      --zone ru-central1-a \
      --network-name ad-network \
      --range 10.1.0.0/16
    
    yc vpc subnet create \
      --name ad-subnet-b \
      --zone ru-central1-b \
      --network-name ad-network \
      --range 10.2.0.0/16
    
    yc vpc subnet create \
      --name ad-subnet-c \
      --zone ru-central1-c \
      --network-name ad-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 читайте на сайте разработчика.

Создайте ВМ для Active Directory

Создайте две виртуальных машины для контроллеров домена Active Directory. Эти машины не будут иметь доступа в интернет.

  1. На странице каталога в консоли управления нажмите кнопку Создать ресурс и выберите Виртуальная машина.

  2. В поле Имя введите имя виртуальной машины: ad-vm-a.

  3. Выберите зону доступности ru-central1-a.

  4. В блоке Публичные образы нажмите кнопку Выбрать. В открывшемся окне выберите образ 2016 Datacenter.

  5. В блоке Диски укажите размер загрузочного диска 35 ГБ.

  6. В блоке Вычислительные ресурсы:

    • Выберите платформу: Intel Cascade Lake.
    • Укажите необходимое количество vCPU и объем RAM:
      • vCPU — 4.
      • Гарантированная доля vCPU — 100%.
      • RAM — 8 ГБ.
  7. В блоке Сетевые настройки нажмите кнопку Добавить сеть и выберите сеть exchange-network. Выберите подсеть exchange-subnet-a. В блоке Публичный адрес выберите вариант Без адреса.

  8. В блоке Доступ укажите данные для доступа на виртуальную машину:

    • В поле Пароль укажите ваш пароль.
  9. Нажмите кнопку Создать ВМ.

Повторите операцию для ВМ с именем ad-vm-b в зоне доступности ru-central1-a и подключите ее к подсети exchange-subnet-b

$ yc compute instance create \
    --name ad-vm-a \
    --hostname ad-vm-a \
    --memory 8 \
    --cores 4 \
    --zone ru-central1-a \
    --network-interface subnet-name=exchange-subnet-a,ipv4-address=10.1.0.3 \
    --create-boot-disk image-folder-id=standard-images,image-family=windows-2016-gvlk \
    --metadata-from-file user-data=setpass

$ yc compute instance create \
    --name ad-vm-b \
    --hostname ad-vm-b \
    --memory 8 \
    --cores 4 \
    --zone ru-central1-b \
    --network-interface subnet-name=exchange-subnet-b,ipv4-address=10.2.0.3 \
    --create-boot-disk image-folder-id=standard-images,image-family=windows-2016-gvlk \
    --metadata-from-file user-data=setpass

Создайте ВМ для бастионного хоста

Для настройки машин с Active Directory будет использоваться файловый сервер с выходом в интернет.

  1. На странице каталога в консоли управления нажмите кнопку Создать ресурс и выберите Виртуальная машина.

  2. В поле Имя введите имя виртуальной машины: jump-server-vm.

  3. Выберите зону доступности ru-central1-с.

  4. В блоке Публичные образы нажмите кнопку Выбрать. В открывшемся окне выберите образ 2016 Datacenter.

  5. В блоке Диски укажите размер загрузочного диска 35 ГБ.

  6. В блоке Вычислительные ресурсы:

    • Выберите платформу: Intel Cascade Lake.
    • Укажите необходимое количество vCPU и объем RAM:
      • vCPU — 2.
      • Гарантированная доля vCPU — 100%.
      • RAM — 4 ГБ.
  7. В блоке Сетевые настройки нажмите кнопку Добавить сеть и выберите сеть exchange-network. Выберите подсеть exchange-subnet-c. В блоке Публичный адрес выберите вариант Без адреса.

  8. В блоке Доступ укажите данные для доступа на виртуальную машину:

    • В поле Пароль укажите ваш пароль.
  9. Нажмите кнопку Создать ВМ.

$ yc compute instance create \
    --name jump-server-vm \
    --hostname jump-server-vm \
    --memory 4 \
    --cores 2 \
    --zone ru-central1-c \
    --network-interface subnet-name=exchange-subnet-c,nat-ip-version=ipv4 \
    --create-boot-disk image-folder-id=standard-images,image-family=windows-2016-gvlk \
    --metadata-from-file user-data=setpass

Установите и настройте Active Directory

У машин с Active Directory нет доступа в интернет, поэтому их следует настраивать через ВМ jump-server-vm с помощью RDP.

  1. Подключитесь к ВМ jump-server-vm с помощью RDP. Используйте логин Administrator и ваш пароль.

  2. Запустите RDP и подключитесь к виртуальной машине ad-vm-a.

  3. Запустите PowerShell и задайте статический адрес:

    netsh interface ip set address "Ethernet 2" static 10.1.0.3 255.255.255.0 10.1.0.1
    
  4. Создайте временную папку:

    mkdir C:\Windows\temp
    
  5. Установите роли Active Directory:

    Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
    
    Success Restart Needed Exit Code      Feature Result
    ------- -------------- ---------      --------------
    True    No             Success        {Active Directory Domain Services, Group P...
    
  6. Создайте лес Active Directory:

    Install-ADDSForest -DomainName 'yantoso.net' -Force:$true
    

    Windows перезапустится автоматически. Снова откройте PowerShell.

  7. Переименуйте сайт по умолчанию в ru-central1-a:

    Get-ADReplicationSite 'Default-First-Site-Name' | Rename-ADObject -NewName 'ru-central1-a'
    
  8. Создайте еще два сайта для других зон доступности:

    New-ADReplicationSite 'ru-central1-b'
    New-ADReplicationSite 'ru-central1-c'
    
  9. Создайте подсети и привяжите их к сайтам:

    New-ADReplicationSubnet -Name '10.1.0.0/16' -Site 'ru-central1-a'
    New-ADReplicationSubnet -Name '10.2.0.0/16' -Site 'ru-central1-b'
    New-ADReplicationSubnet -Name '10.3.0.0/16' -Site 'ru-central1-c'
    
  10. Переименуйте сайт-линк и настройте репликацию:

    Get-ADReplicationSiteLink 'DEFAULTIPSITELINK' | `
        Set-ADReplicationSiteLink -SitesIncluded @{Add='ru-central1-b'} -ReplicationFrequencyInMinutes 15 -PassThru | `
        Set-ADObject -Replace @{options = $($_.options -bor 1)} -PassThru | `
        Rename-ADObject -NewName 'ru-central1'
    
  11. Укажите сервер переадресации DNS:

    Set-DnsServerForwarder '10.1.0.2'
    
  12. Настройте DNS-клиент:

    Get-NetAdapter | Set-DnsClientServerAddress -ServerAddresses "10.2.0.3,127.0.0.1"
    

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

  1. Подключитесь к ВМ jump-server-vm с помощью RDP.

  2. С помощью RDP подключитесь к виртуальной машине ad-vm-b. Используйте логин Administrator и ваш пароль.

  3. Создайте временную папку:

    mkdir C:\Windows\temp
    
  4. Установите роли Active Directory:

    Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
    
    Success Restart Needed Exit Code      Feature Result
    ------- -------------- ---------      --------------
    True    No             Success        {Active Directory Domain Services, Group P...
    
  5. Настройте DNS-клиент:

    Get-NetAdapter | Set-DnsClientServerAddress -ServerAddresses "10.1.0.3,127.0.0.1"
    
  6. Настройте статический IP-адрес:

    netsh interface ip set address "Ethernet 2" static 10.2.0.3 255.255.255.0 10.2.0.1
    
  7. Добавьте контроллер в домен:

    Install-ADDSDomainController `
        -Credential (Get-Credential "yantoso\Administrator") `
        -DomainName 'yantoso.net' `
        -Force:$true
    

    Windows перезапустится автоматически. Снова откройте PowerShell.

  8. Укажите сервер переадресации DNS:

    Set-DnsServerForwarder '10.2.0.2'
    

Проверьте работу Active Directory

  1. Подключитесь к ВМ jump-server-vm с помощью RDP.

  2. С помощью RDP подключитесь к виртуальной машине ad-vm-b. Используйте логин Administrator и ваш пароль. Запустите PowerShell.

  3. Создайте тестового пользователя:

    New-ADUser testUser
    
  4. Убедитесь, что пользователь присутствует на обоих серверах:

    Get-ADUser testUser -Server yadc-b
    Get-ADUser testUser -Server yadc-a
    

Удалите созданные ресурсы

Чтобы перестать платить за развернутые серверы, достаточно удалить все созданные виртуальные машины.