ActiveDirectory/Migration/Replace
Сценарий замещающей миграции доменной инфраструктуры 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 |
Выгрузка слепка базы из 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>
Если выгрузка произошла успешно, то, в результате, получаем архив с базой в понятном 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>