ActiveDirectory/Migration/Replace

Материал из ALT Linux Wiki

Сценарий замещающей миграции доменной инфраструктуры MS AD на Samba.

Описание

Данный сценарий подразумевает единовременное замещение имеющихся MS AD контроллеров домена на контроллеры домена Samba. При этом основная часть учётных данных из базы MS AD сохраняется.

Вначале база данных MS AD переносится в закрытое окружение, где, на её основе, разворачивается КД (контроллер домена) Samba. Следующим этапом разворачиваются другие контроллеры (реплики первого), соответствующие своим MS AD оригиналам. В зависимости от конфигурации сетевой инфраструктуры (DNS, DHCP), новые контроллеры могут дублировать имена и IP-адреса своих MS AD прототипов.

Особенности:

  • Имя домена остаётся прежним
  • SID домена остаётся прежним
  • Сохраняются аккаунты и пароли пользователей
  • Сохраняются группы
  • Сохраняются подразделения
  • Сохраняются машинные аккаунты
  • Сохраняются DNS записи

Процесс проходит в несколько этапов:

  • Подготовка закрытого окружения.
  • Выгрузка слепка базы из MS AD
  • Разворачивание первого КД samba-dc с использованием полученной базы.
  • Дублирование структуры парка КД MS AD, но уже на samba-dc.
  • Публикация полученной доменной инфраструктуры.
Примечание: КД - контроллер домена


Подготовка закрытого окружения

Под закрытым окружением здесь подразумевается сетевое окружение, отрезанное от оригинальной MS AD инфраструктуры и позволяющее использовать IP-адреса MS AD контроллеров домена без конфликтов.

Такое окружение позволяет свободно построить доменную инфраструктуру на базе samba-dc дублирующую оригинальную инфраструктуру MS AD, отработать процесс переноса слепка базы MS AD на КД с samba-dc и проверить получившийся результат.

В окружении рекомендуется развернуть следующие машины:

  • Промежуточный КД MS AD (если необходим)
  • Сервер с samba-dc на базе ALT Server
  • Рабочая станция на базе MS Windows
  • Рабочая станция c ALT Workstation

Для наглядности представим, что присутствующие в закрытом окружении машины имеют следующую конфигурацию.

Машина Hostname IP Domain short name (NetBIOS name) Domain DNS
Промежуточный КД MS AD ORIGIN_DC 172.16.0.10/24 MIGRATION migration.alt
Сервер с samba-dc ALT_DC.migration.alt 172.16.0.20/24
Рабочая станция на базе MS Windows WIN_WS.migration.alt 172.16.0.100 MIGRATION migration.alt
Рабочая станция c ALT Workstation ALT_WS.migration.alt 172.16.0.101 MIGRATION migration.alt
Внимание! IP-адрес промежуточного КД MS AD в закрытом окружении должно совпадать с его адресом в реальной инфраструктуре
Примечание: Промежуточный КД MS AD необходим только в случае реализации сценария выгрузки слепка базы из MS AD в закрытом окружении
Примечание: Выше приведённый набор машин носить рекомендательный характер. В зависимости от особенностей конкретной инфраструктуры имеет смысл расширить его


Выгрузка слепка базы из MS AD

Создание полного слепка базы MS AD является ключевым этапом миграции доменной инфраструктуры. Для создания этого слепка существует два варианта:

  • Выгрузка базы в закрытом окружении
    Подразумевает создание промежуточного КД MS AD, его очистку и перенос в закрытое окружение. Затем производится выгрузка базы.
  • Выгрузка базы в рабочем окружении
    Выгрузка базы производится напрямую с одного из КД рабочей MS AD инфраструктуры. В процессе производится исключительно чтение данных с КД, потому оригинальная MS AD инфраструктура не будет затронута.

Подготовка к выгрузка базы в закрытом окружении

Примечание: Данную секцию можно проигнорировать, если вы планируете выгружать базу с рабочего КД MS AD


Подготовка промежуточного КД

Необходимо ввести в MS AD домен машину (ORIGIN_DC) с Windows Server подходящей версии (с поддержкой необходимой версии леса) и дождаться полного завершения репликации. Затем машину можно переносить в закрытое окружение, а в MS AD сделать для неё offline demote.

Размещение в закрытом окружении промежуточного КД MS AD и машины с samba-dc

Необходимо, чтобы в закрытом окружении оказались машина с промежуточным КД MS AD и машина с samba-dc. В этом же окружении можно развернуть клиентские машины с MS Windows и Linux для предварительного тестирования результатов миграции.

Подготовка ORIGIN_DC

Запускаем ORIGIN_DC, а затем перехватываем на нём FSMO роли (инструкция).

Теперь необходимо удалить все прочие недоступные из закрытого окружения КД (инструкция).

ORIGIN_DC готов к выгрузке базы.

Выгрузка базы

Выгрузка слепка базы домена MS AD должна производиться на машине с ОС ALT с последними обновлениями.

Устанавливаем samba-dc:

# apt-get install task-samba-dc

Выгружаем слепок базы:

# samba-tool domain backup online --server <FQDN КД> --targetdir=/tmp -U<domain admin>
Примечание: <FQDN КД> - полное доменное имя КД MS AD
Примечание: <domain admin> - пользователь с максимальными правами администратора домена, желательно Administrator или Администратор


Если выгрузка произошла успешно, то, в результате, получаем архив с базой в понятном samba-dc формате:

# ls /tmp/samba-backup-<domain DNS name>-<timestamp>.tar.bz2

Разворачивание первого КД samba-dc с использованием полученной базы

Этап восстановления из файла резервной копии аналогичен разворачиванию домена, который выполнялся при первой настройке сети Samba, за исключением того, что резервная копия содержит в себе все объекты базы данных, которые были добавлены с момента создания домена. Как и при создании нового домена, при запуске команды восстановления домена потребуется указать новый контроллер домена. Этот контроллер домена не должен был существовать ранее в сети Samba.

Подготовка ОС

# apt-get install task-samba-dc
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
# rm -f /etc/samba/smb.conf
# rm -rf /var/lib/samba
# rm -rf /var/cache/samba
# mkdir -p /var/lib/samba/sysvol

Команда для восстановления из файла бэкапа:

# samba-tool domain backup restore --backup-file=<tar-file> --newservername=<DC-name> --targetdir=<new-samba-dir>

Следует обратить внимание, что указанный целевой каталог должен быть пустым (или не должен существовать).

Восстановленный DC будет добавлен на сайт 'Default-First-Site-Name'. Этот сайт будет создан в восстановленной БД, если он еще не существует. Можно указать альтернативный сайт для добавления восстановленного контроллера домена с помощью параметра --site.

# samba-tool domain backup restore --site=<newsite> --backup-file=<tar-file> --newservername=<DC-name> --targetdir=<new-samba-dir>


Скопировать smb.conf и krb5.conf

# cp /var/lib/samba/etc/smb.conf /etc/samba/
# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

Запустить Samba и проверить ее работу

# systemctl enable --now samba
# samba-tool domain info 127.0.0.1
Forest           : <domain.tld>
Domain           : <domain.tld>
Netbios domain   : <DOMAIN>
DC name          : newdc.<domain.tld>
DC netbios name  : NEWDC
Server site      : Default-First-Site-Name
Client site      : Default-First-Site-Name
# smbclient -L localhost -U<domain admin>
Password for [<DOMAIN>\<domain admin>]:

   Sharename       Type      Comment
   ---------       ----      -------
   sysvol          Disk
   netlogon        Disk
   share           Disk      Commonplace
   Free            Disk
   IPC$            IPC       IPC Service (Samba 4.16.10)
SMB1 disabled -- no workgroup available

# host -t SRV _kerberos._udp.<domain.tld>.
_kerberos._udp.<domain.tld> has SRV record 0 100 88 newdc.<domain.tld>.
# host -t SRV _ldap._tcp.<domain.tld>.
_ldap._tcp.<domain.tld> has SRV record 0 100 389 newdc.<domain.tld>.
#  samba-tool fsmo show 
SchemaMasterRole owner: CN=NTDS Settings,CN=DC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=<domain>,DC=<tld>
InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=<domain>,DC=<tld>
RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=<domain>,DC=<tld>
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=<domain>,DC=<tld>
DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=<domain>,DC=<tld>
DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=<domain>,DC=<tld>
ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=<domain>,DC=<tld>

Дублирование структуры парка КД MS AD, но уже на samba-dc

Публикация полученной доменной инфраструктуры