ActiveDirectory/Migration/ADMT/Intermediary DC: различия между версиями
Olga kmv (обсуждение | вклад) (Новая страница: «Миграция подразделений, групп и пользователей из домена MS AD в Samba с использованием промежуточного контроллера домена на Windows. '''Исходные данные:''' #'''DC1''' - Windows Server 2016, контроллер домена wind.old на MS AD #'''DC2''' - Windows Server 2019, контроллер домена samba.new на MS AD #'''DC3''' - ALT...») |
Olga kmv (обсуждение | вклад) Нет описания правки |
||
Строка 12: | Строка 12: | ||
#На втором этапе сделаем ALT Server вторичным контроллером домена samba.new и выведем Windows Server 2019 из состава домена. | #На втором этапе сделаем ALT Server вторичным контроллером домена samba.new и выведем Windows Server 2019 из состава домена. | ||
==Миграция с использованием ADMT из домена wind.old в samba.new== | ==Миграция с использованием ADMT из домена wind.old в samba.new== | ||
===Подготовка к миграции | ===Подготовка к миграции=== | ||
#Для выполнения миграции необходимо настроить двустороннее доверительное отношение между доменами '''wind.old''' и '''samba.new'''. Подробное описание процесса можно найти в статье по следующей ссылке:[https://www.altlinux.org/ActiveDirectory/Trusts Настройка доверительных отношений между доменами]. | #Для выполнения миграции необходимо настроить двустороннее доверительное отношение между доменами '''wind.old''' и '''samba.new'''. Подробное описание процесса можно найти в статье по следующей ссылке:[https://www.altlinux.org/ActiveDirectory/Trusts Настройка доверительных отношений между доменами]. | ||
#На контроллере домена Windows Server 2016 необходимо установить SQL Server 2016 Express. Скачать можно по следующей ссылке: [https://www.microsoft.com/ru-ru/download/details.aspx?id=56840 SQL Server 2016 Express]. | #На контроллере домена Windows Server 2016 необходимо установить SQL Server 2016 Express. Скачать можно по следующей ссылке: [https://www.microsoft.com/ru-ru/download/details.aspx?id=56840 SQL Server 2016 Express]. | ||
Строка 64: | Строка 64: | ||
#:В выводе видно, что 2 записи успешно обновлены, и команда завершена без ошибок. Также в RSAT (Remote Server Administration Tools) можно увидеть подразделения из старого домена. | #:В выводе видно, что 2 записи успешно обновлены, и команда завершена без ошибок. Также в RSAT (Remote Server Administration Tools) можно увидеть подразделения из старого домена. | ||
#:Миграция подразделений ''OU1'' и ''OU2'' успешно выполнена. | #:Миграция подразделений ''OU1'' и ''OU2'' успешно выполнена. | ||
===Миграция групп=== | |||
Для выполнения миграции групп в данном примере используется Active Directory Migration Tool (ADMT). Один из важных моментов при работе с ADMT заключается в том, что группу можно мигрировать вместе с её пользователями, без необходимости выполнения отдельных действий для переноса пользователей. Однако если миграция группы выполняется одновременно с её участниками, все пользователи будут перемещены в то же подразделение (OU), что и группа. | |||
Например, в исходном домене: | |||
*OU1 содержит трёх пользователей: test1, test2, test3. | |||
*OU2 содержит группу Group1. | |||
Если при миграции группы Group1 в новый домен её участники будут переноситься одновременно, то все пользователи (test1, test2, test3) окажутся в том же OU, что и группа, а именно в OU2 на целевом сервере Samba. Это может нарушить исходную структуру домена. Поэтому целесообразно мигрировать группы и пользователей раздельно, если они не принадлежат одному и тому же подразделению. | |||
'''Пошаговая инструкция по миграции групп с использованием ADMT''' | |||
#'''Запуск ADMT и выбор параметров миграции''' | |||
#:*Откройте ADMT на сервере с Windows Server 2016. | |||
#:*На панели программы выберите «Action» → Group Account Migration Wizard. | |||
#:*В появившемся окне выберите: | |||
#:*:*Исходный домен: wind.old (контроллер: \DC1.wind.old). | |||
#:*:*Целевой домен: samba.new (контроллер: \DC2.samba.new). | |||
#:*Нажмите Далее. | |||
#'''Выбор группы для миграции''' | |||
#:*В разделе Select Groups from Domain выберите группу, которую нужно перенести, например, Group1. | |||
#:*Нажмите Далее. | |||
#'''Указание целевого OU''' | |||
#:*Укажите целевое подразделение (OU) для миграции группы. В данном примере это OU2. | |||
#:*Нажмите Далее. | |||
#'''Настройка параметров группы''' | |||
#:*В разделе Group Options: Если необходимо перенести группу вместе с её участниками, установите галочку Copy Group Members. Если перенос пользователей вместе с группой не требуется, оставьте параметры по умолчанию. | |||
#:*При миграции SID будет предложено включить аудит и создание специальной группы с чем необходимо согласиться. | |||
#:*Нажмите Далее. | |||
#'''Исключение атрибутов''' | |||
#:*В разделе Object Property Exclusion можно исключить определённые атрибуты группы из процесса миграции. | |||
#:*В данном примере оставьте настройки по умолчанию и нажмите Далее. | |||
#'''Управление конфликтами''' | |||
#:*В окне Conflict Management задаются параметры для разрешения конфликтов при миграции. Например, при совпадении имён объектов. | |||
#:*Оставьте настройки по умолчанию и нажмите Далее. | |||
#'''Завершение миграции''' | |||
#:*После проверки настроек нажмите Готово. | |||
#:*В появившемся окне будет отображён процесс миграции, а также статус её завершения. Убедитесь, что миграция завершилась без ошибок. | |||
#'''Проверка на целевом домене''' | |||
#:*Выполните проверку наличия в RSAT на целевом домене samba.new в подразделении OU2 группы Group1. | |||
===Миграция пользователей=== | |||
Миграция пользователей осуществляется с помощью Active Directory Migration Tool (ADMT). Этот процесс включает перенос учетных записей пользователей из исходного домена в целевой, с возможностью настройки паролей, сохранения членства в группах и других параметров. | |||
'''Пошаговая инструкция по миграции пользователей''' | |||
#'''Запуск ADMT и настройка параметров миграции''' | |||
#:*Запустите ADMT на сервере с Windows Server 2016. | |||
#:*На панели программы выберите «Action» → User Account Migration Wizard. | |||
#:*В появившемся окне укажите: | |||
#:*:*Исходный домен: wind.old (контроллер: \DC1.wind.old). | |||
#:*:*Целевой домен: samba.new (контроллер: \DC2.samba.new). | |||
#:*Нажмите Далее. | |||
#'''Выбор пользователей для миграции''' | |||
#:*В разделе Select Users from Domain выберите учетные записи, которые необходимо перенести. Например, test1, test2, test3. | |||
#:*Нажмите Далее. | |||
#'''Указание целевого OU''' | |||
#:*Укажите целевое подразделение (OU) для миграции пользователей. В данном примере это OU1. | |||
#:*Нажмите Далее. | |||
#'''Настройка параметров паролей''' | |||
#:*В разделе Password Options выберите Migrate Passwords. | |||
#:*Нажмите Далее. | |||
#'''Настройка перехода учетных записей''' | |||
#:*В окне Account Transition Options выберите параметр Target same as source, если нет необходимости применять другие настройки. | |||
#:*Нажмите Далее. | |||
#'''Настройка членства в группах''' | |||
#:*В разделе User Options выберите Fix Users' Membership. Эта настройка автоматически добавляет пользователей в группы целевого домена, соответствующие их участию в исходных группах. | |||
#:*Нажмите Далее. | |||
#'''Исключение атрибутов''' | |||
#:*В разделе Object Property Exclusion можно исключить определённые атрибуты учетных записей из процесса миграции. | |||
#:*В данном примере оставьте настройки по умолчанию. Нажмите Далее. | |||
#'''Управление конфликтами''' | |||
#:*В разделе Conflict Management задайте параметры для разрешения конфликтов, например, при совпадении имён учетных записей. | |||
#:*Оставьте настройки по умолчанию. | |||
#:*Нажмите Далее. | |||
#'''Завершение миграции''' | |||
#:*Проверьте параметры, нажмите Готово. | |||
#:*В появившемся окне отобразится процесс миграции и статус её завершения. Убедитесь, что миграция завершилась без ошибок. | |||
#'''Проверка наличия пользователей в целевом домене''' | |||
#:*В RSAT в домене samba.new в OU1 проверьте наличие пользователей и принадлежность их к группам. | |||
#:*По умолчанию у пользователей после миграции будет выставлен атрибут «требовать смены пароля при следующем входе в систему», для того что бы продолжить использовать такой же пароль для учётной записи пользователя как в старом домене, необходимо сменить на атрибут «срок действия пароля не ограничен». | |||
==Создание второго контроллера домена на Samba AD и вывод первого контроллера из домена== | |||
В данном разделе рассматривается процесс добавления второго контроллера домена (DC3) в существующий домен Samba AD (samba.new) и замены первого контроллера домена (DC2) на новый. Этот процесс включает установку необходимых пакетов, настройку Kerberos, ввод нового сервера в домен, проверку репликации, передачу ролей FSMO и удаление старого контроллера. | |||
#'''Установка и настройка второго контроллера домена (DC3)''' | |||
#:#'''Установка пакетов''' | |||
#:#:Для корректной работы второго контроллера домена на сервере DC3 необходимо установить пакет '''task-samba-dc''', который включает поддержку Heimdal Kerberos.<source lang="text" highlight="1"># apt-get install task-samba-dc</source>Samba на базе Heimdal Kerberos использует KDC, несовместимый с MIT Kerberos. Поэтому на контроллере домена на базе Heimdal Kerberos из пакета samba-dc, для совместимости с клиентской библиотекой libkrb5, в файле ''krb5.conf'' (в блоке '''libdefaults''') необходимо отключить использование ядерного кеша ключей — '''KEYRING:persistent:%{uid}:'''<source lang="text" highlight="1"># control krb5-conf-ccache default</source> | |||
#:#'''Отключение конфликтующих сервисов''' | |||
#:#:Перед настройкой нового контроллера отключаем ненужные службы:<source lang="text" highlight="1"># for service in bind krb5kdc nmb smb slapd; do chkconfig $service off; service $service stop; done</source> | |||
#:#'''Очистка предыдущих данных''' | |||
#:#:Удаляем конфигурационные файлы и создаём каталог:<source lang="text" highlight="1,2,3,4">#rm -f /etc/samba/smb.conf | |||
#rm -rf /var/lib/samba | |||
#rm -rf /var/cache/samba | |||
#mkdir -p /var/lib/samba/sysvol | |||
</source> | |||
#:#'''Настройка Kerberos''' | |||
#:#:Редактируем файл {{path|/etc/krb5.conf}}, чтобы задать параметры домена SAMBA.NEW:<source lang="text">[libdefaults] | |||
dns_lookup_kdc = true | |||
dns_lookup_realm = false | |||
default_realm = SAMBA.NEW</source> | |||
#:#'''Получение билета администратора''' | |||
#:#:Аутентифицируемся в домене с помощью Kerberos:<source lang="text" highlight="1"># kinit Администратор</source>Проверяем билет:<source lang="text" highlight="1"># klist</source>Вывод должен содержать информацию о выданном билете Kerberos. | |||
#:#'''Ввод DC3 в домен''' | |||
#:#:Теперь вводим сервер DC3 в домен Samba:<source lang="text" highlight="1"># samba-tool domain join --option="ad dc functional level = 2016" samba.new DC -U SAMBA\\Администратор --realm=samba.new</source>После успешного ввода в домен в файле ''resolv.conf'' необходимо сменить адрес PDC на адрес вторичного DC. | |||
#:#'''Настройка Kerberos''' | |||
#:#:В момент создания домена Samba автоматически конфигурирует шаблон файла {{path|/var/lib/samba/private/krb5.conf}} для вашего домена. Его можно просто скопировать с заменой:<source lang="text" highlight="1"># cp /var/lib/samba/private/krb5.conf /etc/krb5.conf</source> | |||
#:#'''Запуск и проверка сервиса Samba''' | |||
#:#:Включаем автоматический запуск Samba и проверяем её работу:<source lang="text" highlight="1"># systemctl enable --now samba</source>Проверяем информацию о домене:<source lang="text" highlight="1"># samba-tool domain info 127.0.0.1 | |||
Forest : samba.new | |||
Domain : samba.new | |||
Netbios domain : SAMBA | |||
DC name : dc3.samba.new | |||
DC netbios name : DC3 | |||
Server site : Default-First-Site-Name | |||
Client site : Default-First-Site-Name</source>Просмотр предоставляемых служб:<source lang="text" highlight="1"># smbclient -L localhost -U Администратор | |||
Password for [SAMBA\Администратор]: | |||
Sharename Type Comment | |||
--------- ---- ------- | |||
sysvol Disk | |||
netlogon Disk | |||
IPC$ IPC IPC Service (Samba 4.20.6-alt3) | |||
SMB1 disabled -- no workgroup available</source>Проверяем имена хостов:<source lang="text" highlight="1,4,7"># host -t SRV _kerberos._udp.samba.new | |||
_kerberos._udp.samba.new has SRV record 0 100 88 dc2.samba.new. | |||
_kerberos._udp.samba.new has SRV record 0 100 88 dc3.samba.new. | |||
# host -t SRV _ldap._tcp.samba.new. | |||
_ldap._tcp.samba.new has SRV record 0 100 389 dc2.samba.new. | |||
_ldap._tcp.samba.new has SRV record 0 100 389 dc3.samba.new. | |||
# host -t A samba.new. | |||
samba.new has address 10.64.238.200 | |||
samba.new has address 10.64.238.173</source> | |||
#:#'''Проверка репликации''' | |||
#:#:Проверяем статус репликации между контроллерами:<source lang="text" highlight="1"># samba-tool drs showrepl</source>Если репликация успешна, переходим к следующему шагу. | |||
#:#'''Проверка наличия целевых объектов для миграции''' | |||
#:#:*Проверяем наличие пользователей:<source lang="text" highlight="1"># samba-tool user list | |||
Гость | |||
test2 | |||
Администратор | |||
test3 | |||
test1 | |||
krbtgt</source> | |||
#:#:*Проверяем группы:<source lang="text" highlight="1"># samba-tool group list | |||
Группа с запрещением репликации паролей RODC | |||
Пользователи журналов производительности | |||
Гости | |||
Пользователи | |||
Пользователи системного монитора | |||
Администраторы основного уровня предприятия | |||
Администраторы предприятия | |||
Group1 | |||
…</source> | |||
#:#:*Проверяем членов группы Group1:<source lang="text" highlight="1"># samba-tool group listmembers Group1 | |||
test3 | |||
test1 | |||
test2</source> | |||
#:#'''Передача ролей FSMO и удаление DC2''' | |||
#:#:Перед тем как удалить DC2, необходимо убедиться, что он не является владельцем ролей FSMO. Проверяем текущее состояние:<source lang="text" highlight="1"># samba-tool fsmo show | |||
SchemaMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new</source>Все роли принадлежат DC2. | |||
#:#:Передаем все роли FSMO на DC3:<source lang="text" highlight="1"># samba-tool fsmo seize --force --role=all</source>После выполнения команды проверяем ещё раз:<source lang="text" highlight="1"># samba-tool fsmo show | |||
SchemaMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new | |||
ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new</source>Теперь все роли FSMO принадлежат контроллеру домена ALT Server c именем DC3, что необходимо для последующих действий по выводу из домена контроллере DC2. | |||
#'''Вывод контроллера на базе Windows Server 2019 из домена''' | |||
#:#'''Удаление DC2 из домена''' | |||
#:#:Выводим контроллер домена из эксплуатации, удаляя всю информацию о нём. Для этого на контроллере домена ALT Server выполните команду:<source lang="text" highlight="1"># samba-tool domain demote --remove-other-dead-server=dc2 -U Администратор</source>Если процесс прошёл успешно, DC2 больше не будет числиться в домене. | |||
#:#:Проверяем отсутствие записей о DC2:<source lang="text" highlight="1,4,7"># host -t SRV _ldap._tcp.samba.new. | |||
_ldap._tcp.samba.new has SRV record 0 100 389 dc3.samba.new. | |||
# host -t SRV _kerberos._udp.samba.new. | |||
_kerberos._udp.samba.new has SRV record 0 100 88 dc3.samba.new. | |||
# host -t A samba.new. | |||
samba.new has address 10.64.238.200</source> | |||
#:#'''Очистка метаданных старого контроллера''' | |||
#:#:После удаления DC2 необходимо очистить его записи в AD. | |||
#:#:Проверяем список компьютеров:<source lang="text" highlight="1"># samba-tool computer list | |||
DC3$ | |||
DC2$</source>Удаляем DC2 из базы LDAP:<source lang="text" highlight="1,4"># ldbdel -H /var/lib/samba/private/sam.ldb "CN=DC2,OU=Domain Controllers,DC=samba,DC=new" | |||
Deleted 1 record | |||
# samba-tool computer list | |||
DC3$</source> | |||
==Заключение== | |||
Процесс миграции включает несколько ключевых этапов, таких как подготовка доверительных отношений, настройка инструментов для миграции и перенос данных и ролей на новую платформу. Применение промежуточного контроллера домена на Windows Server 2019 позволяет обеспечить плавную миграцию от Windows AD к Samba AD, минимизируя риски потери данных и нарушений в структуре домена. Поскольку использование инструмента ADMT не поддерживает миграцию паролей учётных записей в Samba AD, для решения этой задачи был использован дополнительный сервер на базе Windows, что позволило корректно перенести пароли пользователей и сохранить их работоспособность в новом домене. |
Версия от 16:36, 31 января 2025
Миграция подразделений, групп и пользователей из домена MS AD в Samba с использованием промежуточного контроллера домена на Windows.
Исходные данные:
- DC1 - Windows Server 2016, контроллер домена wind.old на MS AD
- DC2 - Windows Server 2019, контроллер домена samba.new на MS AD
- DC3 - ALT Server, контроллер домена samba.new на MS AD
Цель: произвести миграцию подразделений, групп и пользователей из домена wind.old, размещённого на контроллере домена Windows Server 2016 с MS AD, в домен samba.new, размещённый на контроллере ALT Server с Samba AD, используя промежуточный контроллер на Windows Server 2019.
Мы имеем старый домен wind.old, размещённый на контроллере домена Windows Server 2016 с MS AD, и необходимо заменить его новым доменом samba.new на контроллере ALT Server с Samba AD. Миграцию будем выполнять в два этапа:
- На Windows Server 2019 развернём домен samba.new и с помощью ADMT (Active Directory Migration Tool) проведём миграцию подразделений, групп и пользователей из домена wind.old в домен samba.new.
- На втором этапе сделаем ALT Server вторичным контроллером домена samba.new и выведем Windows Server 2019 из состава домена.
Миграция с использованием ADMT из домена wind.old в samba.new
Подготовка к миграции
- Для выполнения миграции необходимо настроить двустороннее доверительное отношение между доменами wind.old и samba.new. Подробное описание процесса можно найти в статье по следующей ссылке:Настройка доверительных отношений между доменами.
- На контроллере домена Windows Server 2016 необходимо установить SQL Server 2016 Express. Скачать можно по следующей ссылке: SQL Server 2016 Express.
- После установки SQL Server, нужно установить ADMT 3.2 (Active Directory Migration Tool). Скачайте его по следующему адресу:ADMT 3.2.
- Установите и запустите Password Export Server в сервисах Windows. Инструкции и скачивание доступны по ссылке: Password Export Server.
- Администратор домена wind.old должен быть добавлен в группу «Администраторы» в домене samba.new в разделе «Builtin».
Миграция подразделений
В ADMT не предусмотрена возможность миграции подразделений (OU). Однако подразделения можно экспортировать. Для этого необходимо выполнить следующие шаги:
- На контроллере домена Windows Server 2016 с помощью утилиты ldifde создадим файл для экспорта, содержащий информацию о подразделениях в домене wind.old.
- Для этого выполните следующую команду:
C:\Users\Администратор> ldifde -f C:\OUExport.ldif -d "DC=wind,DC=old" -p subtree -r "(objectClass=organizationalUnit)" -l "dn,objectClass" Подключение к "DC1.wind.old" Вход от имени текущего пользователя с помощью SSPI Экспорт каталога в файл C:\OUExport.ldif Поиск элементов... Записываются элементы... 3 элементов экспортировано Команда успешно выполнена
- Для этого выполните следующую команду:
- Полученный текстовый файл OUExport.ldif необходимо отправить на контроллер домена ALT Server, воспользовавшись общим диском или любым другим доступным способом передачи файлов.
- Для работы с файлом OUExport.ldif в новом домене, необходимо внести изменения в файл. В файле OUExport.ldif необходимо удалить информацию о подразделении Domain Controllers во избежание конфликтов при экспорте, а также заменить имя домена. Для замены имени домена выполните следующую команду в PowerShell:
(Get-Content -Path "C:\OUExport.ldif") -replace "wind", "samba" -replace "old", "new" | Set-Content -Path "C:\OUExport.ldif"
- Пример содержания файла до изменений:
dn: OU=Domain Controllers,DC=wind,DC=old changetype: add objectClass: top objectClass: organizationalUnit dn: OU=OU1,DC=wind,DC=old changetype: add objectClass: top objectClass: organizationalUnit dn: OU=OU2,DC=wind,DC=old changetype: add objectClass: top objectClass: organizationalUnit
- Пример содержания файла после изменений:
dn: OU=OU1,DC=samba,DC=new changetype: add objectClass: top objectClass: organizationalUnit dn: OU=OU2,DC=samba,DC=new changetype: add objectClass: top objectClass: organizationalUnit
- Пример содержания файла до изменений:
- После выполнения всех необходимых изменений в файле можно произвести импорт данных в новый AD. Для этого откройте командную строку от имени администратора и выполните следующую команду:
C:\Users\Администратор> ldifde -i -f C:\OUExport.ldif Connecting to "DC2.samba.new" Logging in as current user using SSPI Importing directory from file "C:\OUExport.ldif" Loading entries... 2 entries modified successfully. The command has completed successfully
- В выводе видно, что 2 записи успешно обновлены, и команда завершена без ошибок. Также в RSAT (Remote Server Administration Tools) можно увидеть подразделения из старого домена.
- Миграция подразделений OU1 и OU2 успешно выполнена.
Миграция групп
Для выполнения миграции групп в данном примере используется Active Directory Migration Tool (ADMT). Один из важных моментов при работе с ADMT заключается в том, что группу можно мигрировать вместе с её пользователями, без необходимости выполнения отдельных действий для переноса пользователей. Однако если миграция группы выполняется одновременно с её участниками, все пользователи будут перемещены в то же подразделение (OU), что и группа.
Например, в исходном домене:
- OU1 содержит трёх пользователей: test1, test2, test3.
- OU2 содержит группу Group1.
Если при миграции группы Group1 в новый домен её участники будут переноситься одновременно, то все пользователи (test1, test2, test3) окажутся в том же OU, что и группа, а именно в OU2 на целевом сервере Samba. Это может нарушить исходную структуру домена. Поэтому целесообразно мигрировать группы и пользователей раздельно, если они не принадлежат одному и тому же подразделению.
Пошаговая инструкция по миграции групп с использованием ADMT
- Запуск ADMT и выбор параметров миграции
- Откройте ADMT на сервере с Windows Server 2016.
- На панели программы выберите «Action» → Group Account Migration Wizard.
- В появившемся окне выберите:
- Исходный домен: wind.old (контроллер: \DC1.wind.old).
- Целевой домен: samba.new (контроллер: \DC2.samba.new).
- Нажмите Далее.
- Выбор группы для миграции
- В разделе Select Groups from Domain выберите группу, которую нужно перенести, например, Group1.
- Нажмите Далее.
- Указание целевого OU
- Укажите целевое подразделение (OU) для миграции группы. В данном примере это OU2.
- Нажмите Далее.
- Настройка параметров группы
- В разделе Group Options: Если необходимо перенести группу вместе с её участниками, установите галочку Copy Group Members. Если перенос пользователей вместе с группой не требуется, оставьте параметры по умолчанию.
- При миграции SID будет предложено включить аудит и создание специальной группы с чем необходимо согласиться.
- Нажмите Далее.
- Исключение атрибутов
- В разделе Object Property Exclusion можно исключить определённые атрибуты группы из процесса миграции.
- В данном примере оставьте настройки по умолчанию и нажмите Далее.
- Управление конфликтами
- В окне Conflict Management задаются параметры для разрешения конфликтов при миграции. Например, при совпадении имён объектов.
- Оставьте настройки по умолчанию и нажмите Далее.
- Завершение миграции
- После проверки настроек нажмите Готово.
- В появившемся окне будет отображён процесс миграции, а также статус её завершения. Убедитесь, что миграция завершилась без ошибок.
- Проверка на целевом домене
- Выполните проверку наличия в RSAT на целевом домене samba.new в подразделении OU2 группы Group1.
Миграция пользователей
Миграция пользователей осуществляется с помощью Active Directory Migration Tool (ADMT). Этот процесс включает перенос учетных записей пользователей из исходного домена в целевой, с возможностью настройки паролей, сохранения членства в группах и других параметров.
Пошаговая инструкция по миграции пользователей
- Запуск ADMT и настройка параметров миграции
- Запустите ADMT на сервере с Windows Server 2016.
- На панели программы выберите «Action» → User Account Migration Wizard.
- В появившемся окне укажите:
- Исходный домен: wind.old (контроллер: \DC1.wind.old).
- Целевой домен: samba.new (контроллер: \DC2.samba.new).
- Нажмите Далее.
- Выбор пользователей для миграции
- В разделе Select Users from Domain выберите учетные записи, которые необходимо перенести. Например, test1, test2, test3.
- Нажмите Далее.
- Указание целевого OU
- Укажите целевое подразделение (OU) для миграции пользователей. В данном примере это OU1.
- Нажмите Далее.
- Настройка параметров паролей
- В разделе Password Options выберите Migrate Passwords.
- Нажмите Далее.
- Настройка перехода учетных записей
- В окне Account Transition Options выберите параметр Target same as source, если нет необходимости применять другие настройки.
- Нажмите Далее.
- Настройка членства в группах
- В разделе User Options выберите Fix Users' Membership. Эта настройка автоматически добавляет пользователей в группы целевого домена, соответствующие их участию в исходных группах.
- Нажмите Далее.
- Исключение атрибутов
- В разделе Object Property Exclusion можно исключить определённые атрибуты учетных записей из процесса миграции.
- В данном примере оставьте настройки по умолчанию. Нажмите Далее.
- Управление конфликтами
- В разделе Conflict Management задайте параметры для разрешения конфликтов, например, при совпадении имён учетных записей.
- Оставьте настройки по умолчанию.
- Нажмите Далее.
- Завершение миграции
- Проверьте параметры, нажмите Готово.
- В появившемся окне отобразится процесс миграции и статус её завершения. Убедитесь, что миграция завершилась без ошибок.
- Проверка наличия пользователей в целевом домене
- В RSAT в домене samba.new в OU1 проверьте наличие пользователей и принадлежность их к группам.
- По умолчанию у пользователей после миграции будет выставлен атрибут «требовать смены пароля при следующем входе в систему», для того что бы продолжить использовать такой же пароль для учётной записи пользователя как в старом домене, необходимо сменить на атрибут «срок действия пароля не ограничен».
Создание второго контроллера домена на Samba AD и вывод первого контроллера из домена
В данном разделе рассматривается процесс добавления второго контроллера домена (DC3) в существующий домен Samba AD (samba.new) и замены первого контроллера домена (DC2) на новый. Этот процесс включает установку необходимых пакетов, настройку Kerberos, ввод нового сервера в домен, проверку репликации, передачу ролей FSMO и удаление старого контроллера.
- Установка и настройка второго контроллера домена (DC3)
- Установка пакетов
- Для корректной работы второго контроллера домена на сервере DC3 необходимо установить пакет task-samba-dc, который включает поддержку Heimdal Kerberos.Samba на базе Heimdal Kerberos использует KDC, несовместимый с MIT Kerberos. Поэтому на контроллере домена на базе Heimdal Kerberos из пакета samba-dc, для совместимости с клиентской библиотекой libkrb5, в файле krb5.conf (в блоке libdefaults) необходимо отключить использование ядерного кеша ключей — KEYRING:persistent:%{uid}:
# apt-get install task-samba-dc
# control krb5-conf-ccache default
- Для корректной работы второго контроллера домена на сервере DC3 необходимо установить пакет task-samba-dc, который включает поддержку Heimdal Kerberos.
- Отключение конфликтующих сервисов
- Перед настройкой нового контроллера отключаем ненужные службы:
# for service in bind krb5kdc nmb smb slapd; do chkconfig $service off; service $service stop; done
- Перед настройкой нового контроллера отключаем ненужные службы:
- Очистка предыдущих данных
- Удаляем конфигурационные файлы и создаём каталог:
#rm -f /etc/samba/smb.conf #rm -rf /var/lib/samba #rm -rf /var/cache/samba #mkdir -p /var/lib/samba/sysvol
- Удаляем конфигурационные файлы и создаём каталог:
- Настройка Kerberos
- Редактируем файл /etc/krb5.conf, чтобы задать параметры домена SAMBA.NEW:
[libdefaults] dns_lookup_kdc = true dns_lookup_realm = false default_realm = SAMBA.NEW
- Редактируем файл /etc/krb5.conf, чтобы задать параметры домена SAMBA.NEW:
- Получение билета администратора
- Аутентифицируемся в домене с помощью Kerberos:Проверяем билет:
# kinit Администратор
Вывод должен содержать информацию о выданном билете Kerberos.# klist
- Аутентифицируемся в домене с помощью Kerberos:
- Ввод DC3 в домен
- Теперь вводим сервер DC3 в домен Samba:После успешного ввода в домен в файле resolv.conf необходимо сменить адрес PDC на адрес вторичного DC.
# samba-tool domain join --option="ad dc functional level = 2016" samba.new DC -U SAMBA\\Администратор --realm=samba.new
- Теперь вводим сервер DC3 в домен Samba:
- Настройка Kerberos
- В момент создания домена Samba автоматически конфигурирует шаблон файла /var/lib/samba/private/krb5.conf для вашего домена. Его можно просто скопировать с заменой:
# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
- В момент создания домена Samba автоматически конфигурирует шаблон файла /var/lib/samba/private/krb5.conf для вашего домена. Его можно просто скопировать с заменой:
- Запуск и проверка сервиса Samba
- Включаем автоматический запуск Samba и проверяем её работу:Проверяем информацию о домене:
# systemctl enable --now samba
Просмотр предоставляемых служб:# samba-tool domain info 127.0.0.1 Forest : samba.new Domain : samba.new Netbios domain : SAMBA DC name : dc3.samba.new DC netbios name : DC3 Server site : Default-First-Site-Name Client site : Default-First-Site-Name
Проверяем имена хостов:# smbclient -L localhost -U Администратор Password for [SAMBA\Администратор]: Sharename Type Comment --------- ---- ------- sysvol Disk netlogon Disk IPC$ IPC IPC Service (Samba 4.20.6-alt3) SMB1 disabled -- no workgroup available
# host -t SRV _kerberos._udp.samba.new _kerberos._udp.samba.new has SRV record 0 100 88 dc2.samba.new. _kerberos._udp.samba.new has SRV record 0 100 88 dc3.samba.new. # host -t SRV _ldap._tcp.samba.new. _ldap._tcp.samba.new has SRV record 0 100 389 dc2.samba.new. _ldap._tcp.samba.new has SRV record 0 100 389 dc3.samba.new. # host -t A samba.new. samba.new has address 10.64.238.200 samba.new has address 10.64.238.173
- Включаем автоматический запуск Samba и проверяем её работу:
- Проверка репликации
- Проверяем статус репликации между контроллерами:Если репликация успешна, переходим к следующему шагу.
# samba-tool drs showrepl
- Проверяем статус репликации между контроллерами:
- Проверка наличия целевых объектов для миграции
- Проверяем наличие пользователей:
# samba-tool user list Гость test2 Администратор test3 test1 krbtgt
- Проверяем группы:
# samba-tool group list Группа с запрещением репликации паролей RODC Пользователи журналов производительности Гости Пользователи Пользователи системного монитора Администраторы основного уровня предприятия Администраторы предприятия Group1 …
- Проверяем членов группы Group1:
# samba-tool group listmembers Group1 test3 test1 test2
- Проверяем наличие пользователей:
- Передача ролей FSMO и удаление DC2
- Перед тем как удалить DC2, необходимо убедиться, что он не является владельцем ролей FSMO. Проверяем текущее состояние:Все роли принадлежат DC2.
# samba-tool fsmo show SchemaMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new
- Передаем все роли FSMO на DC3:После выполнения команды проверяем ещё раз:
# samba-tool fsmo seize --force --role=all
Теперь все роли FSMO принадлежат контроллеру домена ALT Server c именем DC3, что необходимо для последующих действий по выводу из домена контроллере DC2.# samba-tool fsmo show SchemaMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samba,DC=new
- Перед тем как удалить DC2, необходимо убедиться, что он не является владельцем ролей FSMO. Проверяем текущее состояние:
- Установка пакетов
- Вывод контроллера на базе Windows Server 2019 из домена
- Удаление DC2 из домена
- Выводим контроллер домена из эксплуатации, удаляя всю информацию о нём. Для этого на контроллере домена ALT Server выполните команду:Если процесс прошёл успешно, DC2 больше не будет числиться в домене.
# samba-tool domain demote --remove-other-dead-server=dc2 -U Администратор
- Проверяем отсутствие записей о DC2:
# host -t SRV _ldap._tcp.samba.new. _ldap._tcp.samba.new has SRV record 0 100 389 dc3.samba.new. # host -t SRV _kerberos._udp.samba.new. _kerberos._udp.samba.new has SRV record 0 100 88 dc3.samba.new. # host -t A samba.new. samba.new has address 10.64.238.200
- Выводим контроллер домена из эксплуатации, удаляя всю информацию о нём. Для этого на контроллере домена ALT Server выполните команду:
- Очистка метаданных старого контроллера
- После удаления DC2 необходимо очистить его записи в AD.
- Проверяем список компьютеров:Удаляем DC2 из базы LDAP:
# samba-tool computer list DC3$ DC2$
# ldbdel -H /var/lib/samba/private/sam.ldb "CN=DC2,OU=Domain Controllers,DC=samba,DC=new" Deleted 1 record # samba-tool computer list DC3$
- Удаление DC2 из домена
Заключение
Процесс миграции включает несколько ключевых этапов, таких как подготовка доверительных отношений, настройка инструментов для миграции и перенос данных и ролей на новую платформу. Применение промежуточного контроллера домена на Windows Server 2019 позволяет обеспечить плавную миграцию от Windows AD к Samba AD, минимизируя риски потери данных и нарушений в структуре домена. Поскольку использование инструмента ADMT не поддерживает миграцию паролей учётных записей в Samba AD, для решения этой задачи был использован дополнительный сервер на базе Windows, что позволило корректно перенести пароли пользователей и сохранить их работоспособность в новом домене.