Утилита "migrate-tool" предназначена для миграции из Microsoft Active Directory в Avanpost DS объектов следующего типа:
- Пользователи (Users)
- Группы безопасности (Security groups)
- Подразделения (Organizational Unit)
В Avanpost DS используется два механизма авторизации:
- Для доменных пользователей с Linux-компьютеров - Kerberos.
- Для фронтенд LDAP Bind - пароль в аттрибуте "userpassword".
В рамках задачи по переносу паролей работа осуществляется только с хешами паролей и солью. Никаких расшифровок не происходит.
По умолчанию используется алгоритм шифрования BCrypt.
Дополнительный алгоритм шифрования для фронтенд LDAP Bind - NTLMv2. Он используется для работы с хеш-паролями пользователей, перенесенных из Microsoft AD.
Для получения хешей пароля пользователя и ключей Kerberos используется протокол MS-DRSR.
Утилита "migrate-tool" подключается к стандартному сервису репликации Microsoft AD по порту 135 для получения необходимых данных для дальнейшей конвертации и загрузки в Avanpost DS.
1. Процесс миграции из Microsoft AD в Avanpost DS
Для миграции из Microsoft AD в Avanpost DS необходимо подключиться к контроллеру домена и выполнить шаги:
Шаг 1.1. Подготовить конфигурационный файл
Требуется подготовить конфигурационный файл "config.yaml" и поместить его в директорию с утилитой "migrate-tool". (Утилита находится в директории "/opt/avanpost/tools/migratetool/")
Для этого необходимо в шаблон файла "config.yaml" подставить свои значения вместо комментариев, указанных в скобках <>.
source:
address: "<IP-адрес или доменное имя сервера источника>"
port: "389" # Порт для подключения к Windows AD, по умолчанию LDAP. Сейчас поддерживается работа только по протоколу LDAP, который работает на порту 389
login: "<Логин для подключения к Windows AD. Пример: sas@winexample.local>"
password: "<Пароль для подключения к Windows AD>"
ad_page_size: "<Количество запрашиваемых записей в одном запросе>"
target:
address: "<IP-адрес или доменное имя сервера назначения>"
port: "<Порт для подключения к ADS>"
login: "<Логин для подключения к ADS>" # Пример: cn=Administrator,ou=users,dc=avanpost,dc=com
password: "<Пароль для подключения к ADS>"
home_directory: "/home" # Директория, которая будет служить для хранения папок пользователей
default_group_uid: "eb04ddca-a960-11ed-bedf-ff5041429012" # UUID группы `All Users` в Avanpost DS
upload_count: "<Количество одновременно запускаемых загрузок в DS. Тип: Число>"
# Опциональный параметр
# Вы можете указать атрибуты для маппинга между WindowsAD и ADS.
# Маппинг реализован для пользователей и групп
mapping_attributes:
group:
- ad_attr: "mail"
ds_attr: "description"
user:
- ad_attr: "telephonenumber"
ds_attr: "homePhone"
source:
address: "192.168.10.2"
port: "389"
login: "admin"
password: "Avanp0st"
ad_page_size: "2"
target:
address: "127.0.0.1"
port: "389"
login: "cn=Administrator,ou=users,dc=avanpost,dc=com"
password: "Avanp0st"
home_directory: "/home"
default_group_uid: "eb04ddca-a960-11ed-bedf-ff5041429012"
upload_count: "2"
# Опциональный параметр
# Вы можете указать аттрибуты для маппинга между WindowsAD и ADS.
# Маппинг реализован для пользователей и групп
mapping_attributes:
group:
- ad_attr: "mail"
ds_attr: "description"
user:
- ad_attr: "telephonenumber"
ds_attr: "homePhone"
Шаг 1.2. Запустить утилиту "migrate-tool"
Параметры запуска:
- --entry-type → Обязательный! Тип объектов для миграции: user, group, ou
- --source-ou → Обязательный! Адрес источника (OU): ou=branch,dc=winexample,dc=com
- --target-ou → Обязательный! Адрес назначения (OU): ou=branch,dc=winexample,dc=com
- --config → Путь до файла конфигурации (по умолчанию: "./config.yaml")
- --default-password → Указать пароль по умолчанию
- --save-hierarchy → Перенос с сохранением иерархии
1.2.1. Сначала требуется импортировать подразделения. Для этого в шаблон команды запуска необходимо подставить свои значения вместо [Подразделение], [Домен1ур], [Домен2ур]:
./migrate-tool --source-ou="ou=[Подразделение],dc=[Домен2ур],dc=[Домен1ур]" --target-ou="ou=[Подразделение],dc=[Домен2ур],dc=[Домен1ур]" --entry-type="[Тип объектов]" --config="config.yaml" --save-hierarchy
./migrate-tool --source-ou="ou=Department,dc=windomen,dc=adds" --target-ou="ou=Department,dc=avanpost,dc=local" --entry-type="ou" --config="config.yaml" --save-hierarchy
1.2.2. Затем требуется импортировать группы. Для этого в шаблон команды запуска необходимо подставить свои значения вместо [Домен1ур], [Домен2ур]:
./migrate-tool --save-hierarchy --source-ou="dc=[Домен2ур],dc=[Домен1ур]" --target-ou="dc=[Домен2ур],dc=[Домен1ур]" --entry-type="group" --config="config.yaml"
./migrate-tool --save-hierarchy --source-ou="dc=windomen,dc=adds" --target-ou="dc=avanpost,dc=local" --entry-type="group" --config="config.yaml"
1.2.3. И затем требуется импортировать пользователей. Для этого в шаблон команды запуска необходимо подставить свои значения вместо [Домен1ур], [Домен2ур]:
./migrate-tool --save-hierarchy --source-ou="dc=[Домен2ур],dc=[Домен1ур]" --target-ou="dc=[Домен2ур],dc=[Домен1ур]" --entry-type="user" --config="config.yaml"
./migrate-tool --save-hierarchy --source-ou="dc=windomen,dc=adds" --target-ou="dc=avanpost,dc=local" --entry-type="user" --config="config.yaml"
2. Дополнительные параметры
В конфигурационном файле "config.yaml" можно переопределить встроенные фильтры для поиска объектов.
По умолчанию фильтры имеют следующий вид:
Organizational units filter: "(&(objectClass=organizationalUnit)(!(isCriticalSystemObject=TRUE)))" Security groups filter: "(&(objectClass=group)(groupType=-2147483646)(!(isCriticalSystemObject=TRUE)))" Users filter: "(&(!(objectclass=computer))(!(userAccountControl:1.2.840.113556.1.4.803:=2))(objectClass=person)(objectClass=user)(objectClass=organizationalPerson))"
Для их переопределения необходимо добавить в конфигурационный файл "config.yaml" в раздел "source", следующие поля с необходимыми фильтрами:
- organizational_units_filter
- security_groups_filter
- users_filter