Миграция домена с windows на linux

Добрый день!
Коллеги, есть Active Directory на 500 пользователей. Есть желание мигрировать на Linux-овый контроллер домена.
Была идея поднять secondary DC на Samba, но при миграции данных идет ошибка по какому-то старому ключу, связанному с Exchange (у нас не используется) и потом переключить его на Primary. Возникли мысли, а нужно ли весь этот хлам тащить на новый сервер.
Возник вопрос
А как вы мигрировали? Есть ли какие-то best practices для этой задачи?


  • Вопрос задан

  • 1297 просмотров

Лучшая практика не делать этого. Ад очень хороший инструмент, ну а самба это кривое поделие. Причём очень старое. В общем не ввязывайтесь, через полгода вернётесь к тому что было. ИМХО

ADD

Для каждой задачи используйте свой инструмент.

Это очень плохая идея.

Тут только один Бэст практика.
Не лепить горбатого к стене и продолжать пользоватся Windows.

Ибо ад под линухом совсем не равноценная замена ад под виндой.

Если таки замените
Предвижу вопросы
А почему оно отваливается…
А почему оно не авторизует …
А почему самбовские шары работают сильно медленнее чем под виндой и почему с этим ничего нельзя сделать….
И так далее.

Ну и если потерять 500 учеток юзеров а потом бегать вытаскивать данные из профилей в экстренной порядке не критично. То можно ниче не тащить :) А по новой АД настроить с нуля )
Логин+Пароль — не равно юзеру ад в общем-то.

Пригласить эксперта

Есть ли какие-то best practices для этой задачи?

Сразу после миграции AD на линукс и все пользовательские компы тоже перевести на линукс, а Самбу потом выключить к чертям.

Я бы к решению этого вопроса зашёл с другой стороны, более долгий путь.
1) Начал бы перевод компов на линукс с подключением к существующему AD у фокус-группы (20-30 штук)
2) Потом бы поднял FreeIPA и связал его с контроллером домена. Посмотрел как будут себя вести компы в домене и линуксовые и виндовые, а то много всяких косяков может вылезти.
3) Если мелкие проблемы будут решены, продолжил бы постепенный перевод ПК на линукс.
4) И только когда все сервисы и пользователи будут перенесены на линукс системы и будет стабильная работа, только тогда выводим виндовый контроллер домена

Войдите, чтобы написать ответ


  • Показать ещё
    Загружается…

Минуточку внимания

Сценарий замещающей миграции доменной инфраструктуры 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

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

Разработчики ОС «Альт» создали решение для управления ИТ-инфраструктурой с операционными системами Windows и «Альт» из единого центра на основе единых групповых политик. Решение включено в каждый комплект поставки ОС и позволяет избежать двойных затрат на поддержку ИТ-инфраструктуры в переходный период.

Разработчики ОС «Альт» создали решение для управления ИТ-инфраструктурой с операционными системами Windows и «Альт» из единого центра на основе единых групповых политик. Решение включено в каждый комплект поставки ОС и позволяет избежать двойных затрат на поддержку ИТ-инфраструктуры в переходный период. 

Сегодня тысячам государственных и коммерческих организаций необходимо перевести свои цифровые инфраструктуры на российское ПО. Многие зарубежные вендоры покинули российский рынок, приостановив продажу и поддержку своих систем. У заказчиков возникли трудности с обновлением программных продуктов, с приобретением дополнительных лицензий и продлением текущих, с получением техподдержки. Эти риски особенно опасны для критической информационной инфраструктуры (КИИ). На их устранение направлен Указ Президента Российской Федерации №166 от 30 марта 2022 г. «О мерах по обеспечению технологической независимости и безопасности критической информационной инфраструктуры Российской Федерации», а также Постановление Правительства Российской Федерации №1236 от 16 ноября 2015 «Об установлении запрета на допуск программного обеспечения, происходящего из иностранных государств, для целей осуществления закупок перевод КИИ на российское программное обеспечение». 

Проекты перехода на российское ПО длятся не один год, и в этот период в ИТ-инфраструктуре должны одновременно работать компьютеры с ОС Windows и какой-либо из российских ОС, большинство которых создано на ядре Linux. Как интегрировать их в единое информационное пространство, чтобы избежать потери работоспособности цифровых ресурсов и исключить двойные расходы на администрирование корпоративной сети и обучение ИТ-персонала?

Как устроено централизованное управление ИТ-инфраструктурой и пользователями 

Корпоративная цифровая инфраструктура объединяет серверы, рабочие станции, периферийные и сетевые устройства, а также пользователей. Для управления всеми этими объектами существует база службы каталогов: в ней хранится информация о каждом из объектов и иерархических связях между ними. База размещена на специальном сервере — контроллере домена1.

_______________________

1 Домен — это структурная единица (участок) сетевой инфраструктуры организации. Он объединяет различные сетевые объекты: компьютеры, принтеры, пользователей и др. Управление доменом осуществляет контроллер домена — сервер, на котором размещены база данных с описанием всех объектов и инструменты управления ими, включая свод правил управления.

Как перейти с Windows на российские ОС безопасно и экономно? Замена Active Directory от «Базальт СПО» 1

Первые проприетарные реализации службы каталогов появились еще в прошлом веке у Novell (Novell Directory Services) и Microsoft, есть также и свободные решения, построенные на openLDAP или Samba.

До недавнего времени практически все организации использовали службу каталогов Active Directory (MS AD) — проприетарное решение компании Microsoft. MS AD позволяет объединить пользователей и компьютеры в группы («Рабочие места в бухгалтерии», «Инженеры-проектировщики» и т. п.) и управлять ими по единым правилам. Такие правила называются групповыми политиками. Групповой подход существенно упрощает изменение существующих настроек — они применяются сразу ко всей группе компьютеров или пользователей, а добавленный пользователь автоматически получает установленные для его группы настройки. 

Active Directory поддерживает файлообмен и служит для сквозной идентификации пользователей. Сотрудник вводит логин и пароль один раз — при входе в сеть — и получает доступ к программам и сервисам в соответствии с назначенными ему правами. Причем не важно, работает пользователь в офисе или удалённо. 

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

Чем заменить инструменты Microsoft при переходе на российскую ОС

Когда встает задача миграции с Windows на российскую ОС на ядре Linux, требуется найти замену Active Directory. Причем такую, которая способна одновременно применять групповые политики к компьютерам с Windows и Linux, а также к их пользователям. Однако ни одна из свободных систем не позволяет решить эту задачу, в том числе и широко распространенные в мире свободного ПО Samba и FreeIPA. 

FreeIPA разработан Red Hat — американской компанией, которая является одним из ведущих мировых производителей операционных систем на ядре Linuх. Решение работает только с компьютерами под ОС на ядре Linux, но не умеет управлять пользователями, а Samba предназначена для замены контроллера домена Windows и управления Windows-машинами и пользователями этой ОС. Для организации совместимого с Windows файлохранилища FreeIPA использует механизмы Samba. Как видим, ни одно из этих решений не является полноценной заменой Active Directory. 

Проблему решили разработчики компании «Базальт СПО». Они дополнили линейку операционных систем «Альт» набором инфраструктурного ПО, которое реализует групповые политики для компьютеров и пользователей ОС «Альт», тем самым обеспечивая единое управление ОС «Альт» и Windows. Решение представляет собой модификацию свободной разработки проекта Samba, дополненную инструментарием управления групповыми политиками. Это современный российский, не имеющий аналогов на отечественном и международном рынке программный комплекс.

Инженеры «Базальт СПО» реализовали уже довольно большой список групповых политик. Среди них — управление внешним видом рабочего стола пользователя, выполнение скриптов при входе в систему и выходе, управление всеми политиками браузеров Firefox и Chromium, а также отечественным Яндекс-браузером, создание ярлыков общих папок, установкой и удалением ПО, управление службами и сервисами компьютера и многие другие. Список постоянно расширяется вслед за потребностями пользователей, которых становится все больше и больше. 

Как перейти с Windows на российские ОС безопасно и экономно? Замена Active Directory от «Базальт СПО» 2

Шаблоны групповых политик ОС «Альт» доступны международному сообществу разработчиков свободного ПО. Они размещены на международном ресурсе admx.help. Здесь публикуют свои политики Microsoft, Citrix, Google, VMware и другие компании. 

Для формирования и реализации групповых политик специалисты «Базальт СПО» разработали и включили в ОС «Альт» графические приложения, которые позволяют решать эти задачи так же, как в Windows. Администраторам понадобится минимум времени, чтобы их освоить. 

Сценарии миграции доменной инфраструктуры на ОС «Альт»

Инструмент управления доменной инфраструктурой, интегрированный в ОС «Альт», позволяет выполнить переход плавно, бесшовно. Интеграция рабочих мест с российской ОС в инфраструктуру Active Directory выполняется с сохранением возможностей управления инфраструктурой и пользователями, которые предоставлял MS AD. 

Преимущество плавного способа миграции в том, что он не требует «революционных» одномоментных замен компьютеров с Windows на компьютеры с ОС «Альт». Можно поэтапно переводить пользователей на «Альт», управляя рабочим окружением и правами доступа пользователей с помощью общего инструментария. Пользователи практически не заметят изменений. 

Чтобы подобрать оптимальный сценарий миграции, необходимо проконсультироваться со специалистами «Базальт СПО» или Системного интегратора, имеющими опыт внедрения ОС «Альт». 

Инструментарий для создания и применения групповых политик, разработанный «Базальт СПО», успешно применяется в масштабных проектах миграции ИТ-инфраструктур на ОС «Альт». Министерство цифрового развития и связи Новосибирской области реализовало комплексный проект по переводу региональной инфраструктуры на отечественное ПО. В рамках проекта системный интегратор НТЦ «Галэкс» (Galex), партнер компании «Базальт СПО», сформировал программно-аппаратный комплекс «Патриот», в состав которого вошли ОС «Альт» и прикладные программы компаний «Р7-Офис» и «Лаборатория МБК». По мнению руководителей Минцифры Новосибирской области, применение средств миграции позволило осуществить перевод внутренней инфраструктуры на отечественное ПО плавно, без резких изменений, а также внедрить единый техстандарт для обслуживания всех рабочих станций, вне зависимости от установленной операционной системы. Это снизило затраты на обслуживание рабочих мест.

Федеральная таможенная служба России реализует пилотный проект по переводу доменной структуры единой службы каталогов Единой автоматизированной информационной системы таможенных органов на отечественную программную платформу. В рамках проекта отрабатывается схема постепенной замены доменной структуры управления, авторизации и аутентификации на основе Microsoft AD на аналогичную структуру с применением групповых политик ОС «Альт». Эту схему планируют применять в региональных подразделениях ФТС по всей стране. 

Компьютерный парк Нижнетагильской школы №100 превышает 500 единиц, из них около 200 ПК работают под ОС «Альт». Для управления доменом ИТ-специалисты школы применяют программу ADMC, встроенную в ОС «Альт Сервер» 10, и инструментарий RSAT Windows 7. Обе программы имеют схожий интерфейс и внутреннюю логику, что очень упрощает их совместное использование. Заложенные в ADMC возможности уже сейчас перекрывают большую часть задач, возникающих в повседневной работе с доменом: создание и редактирование информации о пользователях и компьютерах, настройка общих папок и т. п. ИТ-специалисты школы планируют в дальнейшем совсем отказаться от использования Windows и RSAT. 

Решение «Базальт СПО» для бесшовной миграции с Windows на ОС «Альт» снижает риски сбоев в работе систем и позволяет избежать двойной нагрузки на ИТ-департамент и двойные расходы на поддержку ИТ-инфраструктуры в переходный период. Протестировать решение можно прямо сейчас. Для этого достаточно бесплатно скачать дистрибутивы ОС с сайта «Базальт СПО» и воспользоваться документацией. 

Введение

Из этого модуля вы узнаете о том, как подступиться к проектам импортозамещения и чем вам помогут доверительные отношения Kerberos. Мы рассмотрим, зачем в ALD Pro нужен модуль глобального каталога и как он работает. В конечном итоге, чем больше инструментов гибридного развертывания вы задействуете, тем проще вам будет выполнить миграцию инфраструктуры.

Стратегии миграции

Возможности гибридного развертывания

В настоящее время многие компании задумываются над миграцией в инфраструктуру Linux и вместо Microsoft AD DS планируют использовать службу каталога с открытым исходным кодом FreeIPA или более функциональные решения на ее основе, такие как ALD Pro. Но сколь бы ни были амбициозны планы по миграции, перевести сразу все сервисы и все рабочие места на Linux может оказаться непосильной задачей даже для очень сильных команд, потому что в один момент нужно сразу очень много ресурсов:

  • Нужны квалифицированные администраторы, чтобы перенастроить информационные системы для работы в Linux-домене. Не всегда есть готовые решения, особенно для корпоративных приложений, поэтому требуются дополнительные исследования и длительное тестирование.

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

  • Нужны инженеры поддержки, чтобы обучить пользователей работе с новыми клиентскими приложениями в новой операционной системе и ответить на все их вопросы.

Учитывая нехватку кадров, при планировании импортозамещения следует максимально полно использовать все доступные механизмы гибридного развертывания для организации поэтапного перехода:

  • Доверительные отношения. Позволяют пользователям одного домена получать доступ к ресурсам другого домена.

    Между доменами MS Active Directory и ALD Pro (FreeIPA) возможно установление одно- и двусторонних транзитивных доверительных отношений лес к лесу и одно- и двусторонних нетранзитивных доверительных отношений домен к домену (external trusts).

    Для полноценной поддержки двусторонних отношений на стороне ALD Pro реализована функция глобального каталога, чего нет в ванильной версии FreeIPA, — это позволяет на стороне Windows при назначении прав доступа в стандартных оснастках Windows выполнять поиск по объектам доверенного леса ALD Pro.

  • Синхронизация данных каталогов. Позволяет обеспечить доступ пользователей к серверным приложениям по логину/паролю вне зависимости от того, к какому каталогу подключена эта система напрямую. В продукте ALD Pro реализован модуль синхронизации, который позволяет поддерживать целостность информации двух доменов, включая пароли. Захват паролей на стороне AD выполняется с помощью фильтра паролей, передача данных выполняется с использованием асимметричного шифрования.

  • Прямая работа Linux машин в домене MS AD. Позволяет пользователям AD входить в Linux машины и выполнять прозрачную аутентификацию при обращении к «керберизированным» сервисам в домене. Реализация сценария возможна с помощью старой клиентской части Winbind или улучшенной альтернативы SSSD. Служба SSSD поддерживает и более экзотические сценарии работы, например, когда машина находится в двух доменах сразу.

  • Прямая работа Windows машин в домене ALD Pro (FreeIPA). Позволяет пользователям ALD Pro входить на рабочие станции Windows и выполнять прозрачную аутентификацию при обращении к «керберизированным» сервисам в домене. Реализация сценария возможна в силу нативной поддержки Kerberos-доменов со стороны Windows и расширенных возможностей FreeIPA, которые дает интеграция с Samba AD.

  • Реализация единого входа для веб-приложений через обмен цифровыми удостоверениями по протоколам OAuth, OpenID, SAML.

Задачи гибридного развертывания следует рассматривать в следующих трех аспектах:

  • серверные приложения,

  • рабочие места клиентов и

  • типы учетных записей пользователей.

Серверные приложения по сложности миграции можно классифицировать на несколько групп:

  • Непереносимые:

    • Приложения, которые работают только с AD DS, например, MS Exchange. Потребуют замены на аналоги (RuPost, CommuniGate или VK WorkMail).

    • Приложения, которые интегрированы с каталогом через NTLM, могут потребовать существенных доработок, хотя на контроллерах домена для работы в доверительных отношениях интегрирован компонент Samba AD, который предоставляет этот интерфейс.

  • Переносимые:

    • Приложения, которые интегрированы с каталогом через Kerberos, например, 1С, и, соответственно, вся линейка этих учетных систем.

    • Приложения, которые интегрированы через LDAP, например, Bitrix24.

    • Web-приложения, которые интегрированы через обмен цифровыми удостоверениями по протоколам OAuth, OpenID, SAML.

../_images/image4.png

рис. 313 Основные способы подключения к информационным системам

В качестве рабочих мест следует рассмотреть следующие варианты:

  • MS Windows в домене MS AD — это исходные данные для начала миграции.

  • Astra Linux в домене MS AD через SSSD или Winbind — промежуточный сценарий, который позволит начать замену клиентских приложений.

  • MS Windows в домене ALD Pro — промежуточный этап, который поможет в тех случаях, когда невозможно заменить или переписать какие-то специфичные клиентские приложения. Вместе с тем не забывайте, что в некоторых случаях может помочь среда для запуска Windows-приложений Wine.

  • Astra Linux в домене ALD Pro через SSSD — это то, к чему рекомендуется прийти.

Учетные записи могут быть:

  • Из домена ALD Pro (FreeIPA);

  • Из домена MS AD (в т.ч. Samba AD DC 4.7+);

  • Локальные (не рекомендуется).

Таким образом, мы получаем множество способов входа в компьютер и подключения к серверным приложениям, причем для каждого приложения и каждой группы пользователей следует прорабатывать свой индивидуальный план миграции, см. рис. 313.

Типовые сценарии развертывания

Сценарий «Сервисный домен»

В домен ALD Pro вводятся только Linux-серверы, обеспечивающие работу корпоративных информационных систем, пользователи и сами корпоративные приложения остаются в домене Active Directory.

../_images/image5.png

рис. 314 Архитектура сервисного домена

Такой сценарий развертывания упрощает администрирование серверной группировки, предоставляя следующие возможности:

  • Централизованное управление учетными записями администраторов системы, включая их SSH-ключи.

  • Автоматизация настройки ОС Astra Linux на серверах через механизм групповых политик ALD Pro (через Salt-скрипты).

  • Контроль доступа к серверам через правила HBAC и SUDO.

Сценарий «Ресурсный домен»

В домен ALD Pro переносятся не только серверы, но и «керберизированные» сетевые приложения (ресурсы), такие как файловые серверы, корпоративные веб-приложения и т.д. Пользователи и рабочие места сотрудников остаются в домене AD, доступ к ресурсам осуществляется через механизм доверительных отношений.

../_images/image6.png

рис. 315 Архитектура ресурсного домена

Такой сценарий развертывания потребует участия разработчиков и квалифицированных администраторов, но станет значительным шагом в
направлении импортозамещения и предоставит следующие возможности:

  • Прозрачная аутентификация пользователей при обращении к ресурсам в Linux-домене через механизм доверительных отношений.

  • Возможность постепенного переноса корпоративных приложений в Linux-инфраструктуру по мере их готовности.

  • Возможность переноса учетных записей пользователей в Linux-домен, как только все нужные приложения окажутся в новой инфраструктуре.

Сценарий «Управление рабочими местами»

Сценарий предполагает, что в домен ALD Pro вводятся только рабочие места, и это позволяет обеспечить централизованное управление инфраструктурой Linux-компьютеров, а пользователи и ресурсы остаются в домене MS AD. Вход пользователей в компьютер осуществляется через механизм доверительных отношений.

../_images/image7.png

рис. 316 Архитектура для управления рабочими местами

Этот сценарий позволит быстро заместить клиентскую инфраструктуру и отлично подходит организациям, у которых большинство корпоративных приложений не имеют толстых клиентов и работают как веб-приложения из браузера. Такой сценарий развертывания предоставит следующие возможности по управлению рабочими местами:

  • Автоматизация настройки рабочих станций через механизм групповых политик.

  • Контроль доступа к рабочим станциям через правила HBAC и SUDO.

  • Установка ОС на рабочие станции пользователей по сети.

Служба каталога FreeIPA поддерживает транзитивные двусторонние доверительные отношения с лесом Active Directory, извлекая информацию обо всех поддоменах. Первый и второй уровни работают по умолчанию, для поддержки третьего и последующих уровней требуется внесение дополнительных настроек.

Права доступа и политики в домене ALD Pro можно будет назначать как на отдельных пользователей доверенных доменов, так и на группы, используя механизм внешних групп (External Groups).

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

При этом централизованное управление инфраструктурой рабочих станций через привычный механизм групповых политик позволит удержать затраты по администрированию на прежнем уровне. Из коробки сотрудникам будут доступны сотни параметров и более 800 атрибутов для конфигурирования рабочих станций Astra Linux, а для управления корпоративными приложениями возможно будет разработать дополнительные параметры.

Если в компании используются толстые клиенты, разработанные под операционную систему Windows, в некоторых случаях их получится запускать из-под Linux, используя среду для запуска Windows-приложений Wine, с пробросом Kerberos-ключей через GSSAPI и связку ключей ядра Linux. Wine — это не самый стабильный продукт, но в случае бизнес-приложений, которые не используют аппаратное ускорение и другие продвинутые API, этот способ может вполне сработать.

Сценарий «Полное развертывание инфраструктуры»

В данном сценарии пользователи и сервисы работают в домене ALD Pro, интеграция с Active Directory не используется. Этот сценарий не является примером гибридного развертывания, его следует считать результатом полного импортозамещения, когда все пользователи и сервисы переведены на Linux и интеграция с инфраструктурой Windows больше не требуется.

../_images/image8.png

рис. 317 Автономное развертывание

Доверительные отношения

Механизм работы доверительных отношений

Доверительные отношения дают возможность пользователям одного домена выполнять прозрачную аутентификацию по протоколу Kerberos V5 при обращении к ресурсам другого домена. Например, вы можете разрешить пользователям из домена AD DS входить в операционную систему компьютеров под управлением Astra Linux из домена ALD Pro или, наоборот, дать возможность пользователям ALD Pro подключаться с компьютеров Astra Linux к общим файловым ресурсам, находящимся в домене AD DS, см. рис. 318.

../_images/image4.png

рис. 318 Схема доверительных отношений ALD Pro — AD DS

Система ALD Pro построена на базе службы каталога FreeIPA, в которой поддержка доверительных отношений с AD DS появилась с версии 3.0 путем интеграции с пакетом программ Samba. Доверительные отношения могут быть установлены как между лесами, где FreeIPA выступает в роли леса с одним доменом (Forest Trust), так и между конкретными доменами (External Trust), что в определенных случаях может быть предпочтительнее, например, чтобы сократить количество рекурсивных запросов на получение cross-realm билетов.

Механизм доверительных отношений реализован в протоколе аутентификации Kerberos V5, и понятие доверия является его фундаментом. Например, когда вы выполняете первый вход в операционную систему, у службы SSSD нет прямого доступа к вашим учетным данным, поэтому она не может выполнить проверку аутентичности самостоятельно и вынуждена доверять сервисному билету, выданному контроллером домена. Основанием для доверия является тот факт, что билет зашифрован паролем учетной записи компьютера, который известен только контроллерам домена и самому компьютеру. На стороне контроллера пароль хранится в LDAP-каталоге в атрибуте krbPrincipalKey учетной записи хоста, а на стороне компьютера в специальном файле на диске, см. klist -k /etc/krb5.keytab.

Доверие между доменами работает похожим образом: в момент установления отношений в каждом из доменов создается специальная учетная запись доверенного домена с общим ключом или так называемый объект доверенного домена (trusted domain object, TDO). С помощью этого ключа «доверенный домен» (англ. trusted domain) шифрует кросс-доменные билеты пользователей, а «доверяющий домен» (англ. trusting domain) эти билеты расшифровывает и проверяет. Для доверяющего домена такое отношение считается исходящим (outgoing), а для доверенного домена оно считается входящим (incoming), т.е. направление доверия и направление доступа
противоположны друг другу, см. рис. 319.

../_images/image10.png

рис. 319 Направление доверия и доступа

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

../_images/image11.png

рис. 320 Поток данных при выполнении Kerberos-аутентификации в доверительных отношениях

Рассмотрим, как работает аутентификация с использованием доверительных отношений, когда пользователю доверенного домена ALD.COMPANY.LAN нужно пройти аутентификацию в службе из доверяющего домена WIN.COMPANY.LAN, см. рис. 320:

  1. Пользователь ALD запрашивает TGT-билет krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN у контроллера из своего родного домена ALD для выполнения последующей аутентификации на контроллерах ALD.

  2. Контроллер ALD располагает учетными данными пользователя из своего домена, поэтому может подтвердить аутентичность запроса и выдать ему TGT-билет. Если пользователь сможет расшифровать ответ, он подтвердит тем самым свою аутентичность.

  3. Пользователь ALD, используя TGT-билет krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN, обращается к контроллеру ALD за билетом cifs/fs-1.win.company.lan@ALD.COMPANY.LAN для последующей аутентификации в службе cifs на файловом сервере fs-1 из доверяющего домена WIN.

  4. Контроллер ALD располагает мастер-ключом домена ALD, поэтому может успешно проверить аутентичность пользователя, но у него нет учетных данных службы из доверяющего домена WIN, поэтому контроллер возвращает ошибку KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN.

  5. Пользователь ALD, используя TGT-билет krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN, обращается к своему контроллеру ALD за кросс-доменным TGT-билетом krbtgt/WIN.COMPANY.LAN@ALD.COMPANY.LAN для последующей аутентификации на контроллерах домена WIN.

  6. Контроллер ALD располагает мастер-ключом домена ALD, поэтому может успешно проверить аутентичность пользователя. Контроллер ALD располагает также паролем доверительных отношений с доменом WIN, поэтому успешно выдает пользователю кросс-доменный TGT-билет.

    Кросс-доменный билет является вспомогательным, поэтому не сохраняется в связке ключей, и вы не сможете увидеть его командой klist, если только не запросите его целевым образом с помощью команды kvno krbtgt/WIN.COMPANY.LAN@ALD.COMPANY.LAN.

    Далее шаги 5 и 6 могут повториться рекурсивно несколько раз по количеству доменов, которые будут стоять на пути между клиентом и сервисом. Если домен A доверяет домену B, а домен B доверяет домену C, то пользователи из домена C могут получить доступ к сервисам из домена A транзитивно через домен B. По умолчанию доверительные отношения между ALD Pro и AD DS устанавливаются транзитивными.

  7. Пользователь ALD, используя TGT-билет krbtgt/WIN.COMPANY.LAN@ALD.COMPANY.LAN, обращается к контроллеру WIN за полноценным TGT-билетом krbtgt/WIN.COMPANY.LAN@WIN.COMPANY.LAN.

  8. Контроллер WIN располагает паролем доверительных отношений, поэтому успешно проверяет запрос, пересчитывает PAC-сертификат с учетом правил фильтрации и выдает пользователю полноценный TGT-билет из своего домена.

  9. Пользователь ALD, используя TGT-билет krbtgt/WIN.COMPANY.LAN@WIN.COMPANY.LAN, обращается к контроллеру WIN за билетом cifs/fs-1.win.company.lan@WIN.COMPANY.LAN для аутентификации в службе cifs на файловом сервере fs-1 из этого домена.

  10. Контроллер WIN располагает мастер-ключом домена WIN, поэтому может успешно проверить аутентичность пользователя. Контроллер WIN располагает также учетными данными сервиса из своего домена, поэтому успешно выдает пользователю TGS-билет cifs/fs-1.win.company.lan@WIN.COMPANY.LAN.

  11. Пользователь ALD, используя TGS-билет cifs/fs-1.win.company.lan@WIN.COMPANY.LAN, обращается к службе cifs на файловом сервере fs-1 из домена WIN.

  12. Файловый сервер располагает паролем службы cifs, поэтому может проверить и подтвердить аутентичность пользователя.

Примечание

В настройках службы SSSD можно задать опцию AD Site, с помощью которой можно настроить географическую балансировку между лесами доменов ALD Pro и AD DS. Опцию следует задать как на клиенте, так и на сервере ALD Pro. В этом случае при выполнении автоматического обнаружения сервисов клиент будет в первую очередь обращаться к SRV-записям указанного сайта.

Протокол Kerberos V5 регламентирует не только порядок аутентификации, но и позволяет передавать внутри билетов авторизационную информацию (поле AuthorizationData). Разработчики Active Directory разработали свой собственный стандарт MS-KILE, в соответствии с которым в этом поле можно передавать сертификат атрибута привилегий (Privilege Attribute Certificate, PAC), который содержит идентификаторы безопасности всех групп, участником которых является пользователь.

Сертификат MS-PAC формируется при выдаче TGT-билета и перекладывается из него во все сервисные билеты, поэтому для того чтобы изменения по участию пользователя в группах вступили в силу, ему нужно обновить свой TGT-билет, т.е. выйти из операционной системы и зайти в нее еще раз.

Для того чтобы пользователь из ALD Pro мог проходить на стороне MS AD не только аутентификацию, но и авторизацию, т. е. получать права доступа в соответствии со своим участием в группах, в службе каталога FreeIPA есть плагин ipa-kdb, который отвечает за формирование сертификата атрибута привилегий по стандарту MS-PAC.

При формировании сертификата используются значения атрибута ipaNTSecurityIdentifier, в котором хранится SID в формате MS Windows. Это значение рассчитывается в момент создания субъекта безопасности в соответствии с настройками текущего диапазона идентификаторов, за что отвечает плагин sidgen.

Посмотреть SID любого объекта можно, например, с помощью команды sudo wbinfo -n 'ALD\\admin', где ALD — это NetBIOS имя домена ald.company.lan, admin — это имя субъекта:

admin@dc-1:~$ sudo wbinfo -n 'ALD\\admin'
S-1-5-21-1724891028-2898148248-1736958143-500 SID_USER (1)

Как мы видим, последний компонент идентификатора RID для пользователя admin из домена ALD Pro равен 500, что по соглашению MS соответствует идентификатору учетной записи Administrator. Можно добавить, что идентификатор группы admins равен 512, что соответствует группе Domain Admins. Относительные идентификаторы обычных пользователей и групп начинаются с 1000.

При желании вы можете исследовать PAC-сертификат Kerberos-билетов пользователей FreeIPA с помощью команды net ads kerberos pac и убедиться, что все необходимые идентификаторы там присутствуют. Но вы не сможете назначить права доступа пользователям FreeIPA, т.к. стандартные оснастки Windows выполняют поиск объектов доверенного леса путем обращения к глобальному каталогу на порт 3268/TCP.

Именно по этой причине довольно часто можно встретить утверждение, что FreeIPA не поддерживает двусторонние доверительные отношения, т.к. с одной стороны они есть, но пользоваться ими невозможно. Для решения этой проблемы в системе ALD Pro был реализован модуль глобального каталога, см. рис. 321:

../_images/image13.png

рис. 321 Иллюстрация работы модуля глобального каталога в ALD Pro

Пользователям ванильных версий FreeIPA можно только предложить пару обходных решений. Во-первых, на объекты файловой системы доступ можно назначить напрямую по идентификатору безопасности субъекта с помощью утилиты ICACLS (Integrity Control Access Control List).

c:\> ICACLS "C:\\Common" /grant:r "\*S-1-5-21-896088827-1417987318-1335504985-500 " /T

Кстати, в стандартном окне свойств файлового менеджера такие пользователи будут отображаться под своими обычными именами, т. к. процедура разрешения имен работает через RPC-вызов по протоколу SMB (445/TCP) без участия глобального каталога.

Во-вторых, можно воспользоваться более универсальным способом и назначать права через группы безопасности с областью действия «Локальный домен» (Domain Local). Добавить пользователей доверенного домена FreeIPA в локальную доменную группу можно следующим образом на powershell:

#SID Из леса ALD_Pro(Пользователь или группа)
$AldSid = 'S-1-5-21-1784717832-1844364183-3442789864-1013'

#Domain Local Group из леса Active Directory
$DomainLocalGroupDN = 'CN=Contoso-Group-DL,CN=Users,DC=contoso,DC=dom'

#Создание нового Directory Entry
$group = New-Object DirectoryServices.DirectoryEntry("LDAP://$($DomainLocalGroupDN)")

#Добавление AldSid в DomainLocal группу
[void]$group.member.Add("<SID=$AldSid>")
$group.CommitChanges()
$group.Close()

В обратном направлении работа с авторизационной информацией поставлена немного иначе. В билетах Kerberos, конечно же, есть PAC-сертификат, но Linux-приложения запрашивают эту информацию через вызовы к системным библиотекам, которые обрабатываются службой SSSD. Например, при вызове утилиты id никакие Kerberos-билеты пользователя не требуются:

admin@dc-1:~$ id Administrator@WIN.COMPANY.LAN
uid=1633600500(administrator@win.company.lan) gid=1633600500(administrator@win.company.lan)
группы=1633600500(administrator@win.company.lan),1633600520(group policy creator
owners@win.company.lan),1633600519(enterprise admins@win.company.lan),1633600512(domain
admins@win.company.lan),1633600518(schema admins@win.company.lan),1633600513(domain
users@win.company.lan),959800006(fs_users)

Для получения авторизационной информации на пользователя Administrator из домена WIN.COMPANY.LAN служба SSSD делает не обычный поисковый LDAP-запрос, а отправляет расширенную операцию, которую на стороне сервера обрабатывает плагин exdom. Учитывая, что в LDAP-каталоге нужной информации нет, плагин обращается к службе SSSD на сервере, которая обрабатывает этот запрос по-разному в зависимости от того, какая роль назначена серверу:

  • На контроллерах доверия служба SSSD напрямую обращается к контроллерам AD DS по протоколу LDAP для преобразования идентификаторов и извлечения информации об участии пользователей доверенного домена в группах.

  • На агентах доверия служба SSSD проксирует такие запросы на один из контроллеров доверия ALD Pro, опять же, путем выполнения расширенной LDAP-операции.

Примечание

В домене ALD Pro всем контроллерам назначается роль контроллеров доверия, поэтому на них устанавливается пакет программ Samba, и вы с любого из них можете установить доверительные отношения с доменом AD DS.

Если при повышении роли сервера пользователь, выполняющий эту операцию, не входил в состав участников группы «ald trust admin», то продвижение завершится с ошибкой и контроллер будет обладать только ролью агента доверия. Для того чтобы завершить установку и назначить серверу роль контроллера доверия, нужно включить пользователя в указанную группу и запустить повторно скрипт ipa-aldtrust-install

Осталось только разобраться с идентификаторами. Учитывая, что в среде Linux используются не SID, а POSIX-идентификаторы, на стороне ALD Pro служба SSSD выполняет сопоставление идентификаторов одним из двух способов:

  1. Если в AD DS установлен компонент Identity Management for UNIX (что маловероятно), то у объектов будут заданы атрибуты uidnumber/gidnumber, и вы сможете их использовать. Для этого в момент установления доверительных отношений следует указать параметр ipa-ad-trust-posix.

  2. Если компонента Identity Management for UNIX нет (что вероятно), то параметр ipa-ad-trust-posix задавать не нужно, и по умолчанию идентификаторы будут рассчитываться математически. Для этого на стороне FreeIPA каждому доверенному домену из леса AD DS будет назначен диапазон POSIX-идентификаторов. Размер этого диапазона по умолчанию составляет 200 тысяч идентификаторов, поэтому для крупных доменов AD DS его нужно будет расширить вручную.

Вы можете назначать права доступа непосредственно на эти идентификаторы или задействовать внешние группы (External groups), которые являются аналогом Domain Local групп AD DS, т.к. позволяют добавлять субъекты из доверенного домена. Единственно, учтите, что у внешних групп нет POSIX-идентификаторов, поэтому для предоставления доступа к файловым ресурсам вам нужно будет включить их в состав обычных POSIX-групп.

Например, в следующем примере показано, как доменных администраторов AD DS можно включить в группу доменных администраторов ALD Pro:

admin@dc-1:~$ ipa group-add 'ad_admins_external' --external --desc='Группа администраторов AD DS'
admin@dc-1:~$ ipa -n group-add-member 'ad_admins_external' --external 'WIN.COMPANY.LAN\\Domain Admins'
admin@dc-1:~$ ipa group-add-member admins --groups='ad_admins_external'
admin@dc-1:~$ id Administrator@WIN.COMPANY.LAN
… 959800000(admins) …

Настройка доверительных отношений

Взаимное перенаправление DNS-зон

Для работы доверительных отношений нужно, чтобы из домена ald.company.lan разрешались доменные имена зоны win.company.lan и наоборот. Для этого нам нужно сделать взаимное перенаправление DNS-зон.

Для создания перенаправителя в домене win.company.lan выполните на контроллере домена AD DS следующую команду PowerShell:

PS> Add-DnsServerConditionalForwarderZone -Name "ald.company.lan" -ReplicationScope "Forest" -MasterServers [IP адрес ALDPro контроллера]

Проверьте возможность разрешения имен из зоны ald.company.lan:

admin@dc-1:~$ ping dc-1.ald.company.lan

Из интерфейса DNS-перенаправитель можно создать в оснастке DNS Manager, см.:numref:mod9_figure_image15:

../_images/image15.png

рис. 322 Создание перенаправителя в DNS Manager Windows

Для создания перенаправителя в домене ald.company.lan выполните на контроллере домена ALD Pro следующую команду bash:

admin@dc-1:~$ ipa dnsforwardzone-add win.company.lan --forwarder=[IP адрес контроллера MS AD] --forward-policy=only

Проверьте возможность разрешения имен из зоны win.company.lan:

admin@dc-1:~$ ping dc-1.win.company.lan

Из интерфейса DNS-перенаправитель можно создать на странице , см. рис. 323:

../_images/image16.png

рис. 323 Создание перенаправителя в портале управления ALD Pro

Настройка DNS-доверительных сетей (необязательно)

Если вы не хотите разрешать полный доступ к DNS на стороне ALD Pro, вам нужно будет настроить доверенные сети на каждом контроллере ALD Pro (FreeIPA). В файле /etc/bind/ipa-options-ext.conf нужно внести trusted_network в список разрешенных сетей:

allow-recursion { trusted_network; };
allow-query-cache { trusted_network; }

listen-on-v6 { any; };

dnssec-validation no;

В файле /etc/bind/ipa-ext.conf перечислите доверенные сети:

acl "trusted_network" {
  localnets;
  localhost;
  192.168.88.0/24;
  172.19.3.0/24;
  172.19.4.0/24;
};

Проверка настройки времени

Для работы протокола Kerberos требуется, чтобы время на контроллерах домена ALD Pro и MS AD отличалось не более, чем на 5 минут. Виртуальные машины по умолчанию берут время с хостовой машины, поэтому при запуске стенда на одной физической машине проблем обычно не возникает, а в реальной инфраструктуре синхронизация времени является прямой задачей администратора.

Примечание

Протокол Kerberos использует время в формате UTC, т.е. без временных зон, поэтому, если в Windows временные зоны работают некорректно из-за отсутствия актуального обновления системы, то вы должны использовать неправильною зону, но ни в коем случае не сбивать фактическое значение времени по UTC на эмуляторе PDC.

На стороне ALD Pro используйте команды:

admin@dc-1:~$ systemctl status chrony.service
admin@dc-1:~$ chronyc sources -v
admin@dc-1:~$ chronyc tracking

На стороне MS AD используйте в терминале PowerShell команды:

c:\> w32tm.exe /query /configuration
c:\> w32tm.exe /query /status
(Get-Date).ToUniversalTime()

Создание траста между лесами (Forest Trust)

Во всех инструкциях создание траста начинают с выполнения команды ipa-adtrust-install, которая подготавливает домен FreeIPA к работе с доверительными отношениями, в частности добавляет атрибут для хранения windows security identifier (SID). В случае ALD Pro это не требуется. Попробуйте команду ipa trustconfig-show, чтобы убедиться в наличии идентификатора безопасности SID у домена:

admin@dc-1:~$ ipa trustconfig-show
 Домен: ald.company.lan
 Идентификатор безопасности: S-1-5-21-1307086432-2724870100-1147875473
 Имя NetBIOS: ALD
 GUID домена: 7a522ccc-a0d7-4eac-a46a-46b12c93fa0e
 Резервная основная группа: Default SMB Group
 Агенты отношений доверия AD IPA: dc-1.ald.company.lan
 Контролёры отношений доверия AD IPA: dc-1.ald.company.lan

Перед созданием доверительных отношений нужно получить TGT-билет для учетной записи администратора домена admin:

admin@dc-1:~$ kinit admin

Траст можно добавить на стороне ALD Pro из командной строки.

admin@dc-1:~$ ipa -d -v trust-add --type=ad win.company.lan --admin administrator --password --two-way=true
--------------------------------------------------------------------------------
Добавлено отношение доверия Active Directory для области (realm) "win.company.lan"
--------------------------------------------------------------------------------
Имя области (realm): win.company.lan
Имя домена NetBIOS: WIN
Идентификатор безопасности домена: S-1-5-21-292663598-2229028806-4201728183
Направление отношения доверия: Двустороннее отношение доверия
Тип отношения доверия: Домен Active Directory
Состояние отношения доверия: Установлено и проверено

Где:

  • win.company.lan — задает FQDN имя домена AD DS, с которым требуется установить доверительные отношения.

  • Ключ -d — активируют режим отладки.

  • Ключ -v — активирует расширенный режим вывода информации.

  • Ключ --admin — задает имя привилегированной учетной записи из домена AD.

  • Ключ --password — указывает, что у пользователя нужно запросить пароль для учетной записи, которая указана ключом --admin.

    При установлении отношений рекомендуется указывать пароль, так как в этом случае все настройки будут выполнены автоматически. Но, если указанные учетные данные вам недоступны, вы можете попросить администратора домена AD DS создать траст на своей стороне и сообщить вам пароль доверительных отношений (trust password). В этом случае при установлении отношений нужно будет использовать ключ --trust-secret.

  • Ключ --two-way — указывает на то, что доверительные отношения должны быть двусторонними.

Через графический интерфейс создать доверительные отношения можно на странице , см. рис. 324:

../_images/image17.png

рис. 324 Создание доверительных отношений из графического интерфейса ALD Pro

Если в этот момент отслеживать сетевой траффик, то можно будет увидеть, что аутентификация в домене AD DS выполняется по Kerberos, а установление траста выполняется по транспортному протоколу SMB2 путем вызова удаленных команд RPC (да-да, вы уже знаете, что SMB-протокол — это не только файлы и принтеры). В тоже время билет на доступ к службе krbtgt в Windows домене не сохраняется в кэше sssd, поэтому команда klist после установления траста не покажет вам дополнительных билетов.

После создания доверия можно посмотреть информацию о созданном трасте командами ipa trust-find и ipa trust-show:

admin@dc-1:~$ ipa trust-find
---------------------------
найдено 1 отношение доверия
---------------------------
  Имя области (realm): win.company.lan
  Имя домена NetBIOS: WIN
  Идентификатор безопасности домена: S-1-5-21-292663598-2229028806-4201728183
  Тип отношения доверия: Домен Active Directory
---------------------------------
Количество возвращённых записей 1
---------------------------------

admin@dc-1:~$ ipa trust-show win.company.lan
  Имя области (realm): win.company.lan
  Имя домена NetBIOS: WIN
  Идентификатор безопасности домена: S-1-5-21-292663598-2229028806-4201728183
  Направление отношения доверия: Двустороннее отношение доверия
  Тип отношения доверия: Домен Active Directory

И не забудьте, что для больших доменов AD DS нужно расширить диапазон идентификаторов, который по умолчанию составляет 200 тысяч. Для этого нужно воспользоваться командой ipa idrange-mod утилиты ipa. Точное имя диапазона можно посмотреть командой ipa idrange-find.

admin@dc-1:~$ ipa idrange-find
-------------------
найдено 2 диапазона
-------------------
  Имя диапазона: ALD.COMPANY.LAN_id_range
  Первый идентификатор POSIX диапазона: 959800000
  Количество идентификаторов в диапазоне: 200000
  Первый RID соответствующего диапазона RID: 1000
  Первый RID вторичного диапазона RID: 100000000
  Тип диапазона: local domain range

  Имя диапазона: WIN.COMPANY.LAN_id_range
  Первый идентификатор POSIX диапазона: 1633600000
  Количество идентификаторов в диапазоне: 200000
  Первый RID соответствующего диапазона RID: 0
  SID доверенного домена: S-1-5-21-3250248711-3862619044-3424259349
  Тип диапазона: Active Directory domain range

---------------------------------
Количество возвращённых записей 2
---------------------------------
admin@dc-1:~$ ipa idrange-mod --range-size=1000000 WIN.COMPANY.LAN_id_range
ipa: WARNING: Для применения изменений конфигурации необходимо перезапустить службу sssd.service
на IPA-сервере WIN.COMPANY.LAN_id_range.
-------------------------------------------------------------
Изменён диапазон идентификаторов "WIN.COMPANY.LAN_id_range"
-------------------------------------------------------------
  Имя диапазона: WIN.COMPANY.LAN_id_range
  Первый идентификатор POSIX диапазона: 1633600000
  Количество идентификаторов в диапазоне: 1000000
  Первый RID соответствующего диапазона RID: 0
  SID доверенного домена: S-1-5-21-3250248711-3862619044-3424259349
  Тип диапазона: Active Directory domain range

Если со временем в лесу Active Directory появятся дополнительные поддомены, нужно будет выполнить вручную команду trust-fetch-domains утилиты ipa, чтобы для этих доменов были созданы диапазоны идентификаторов:

admin@dc-1:~$ ipa trust-fetch-domains "WIN.COMPANY.LAN"

Создание внешнего траста между доменами (External Trust)

Доверительные отношения можно создать не только «лес к лесу», но и «домен к домену». Такие отношения называются внешними (External) и являются нетранзитивными. Создать такие отношения можно из командной строки, используя дополнительный ключ --external.

admin@dc-1:~$ ipa -d -v trust-add --type=ad win.company.lan --admin administrator --password --two-way=true
--external=true
--------------------------------------------------------------------------------
Добавлено отношение доверия Active Directory для области (realm) "win.company.lan"
--------------------------------------------------------------------------------
  Имя области (realm): win.company.lan
  Имя домена NetBIOS: WIN
  Идентификатор безопасности домена: S-1-5-21-292663598-2229028806-4201728183
  Направление отношения доверия: Двустороннее отношение доверия
  Тип отношения доверия: Нетранзитивное внешнее отношение доверия с доменом в другом лесу Active
Directory
  Состояние отношения доверия: Установлено и проверено

Удаление траста

Удалить траст можно из командной строки и через веб-интерфейс ALD Pro:

admin@dc-1:~$ ipa trust-del win.company.lan

Обратите внимание, что на стороне Windows доверительные отношения нужно будет удалить вручную через оснастку Active Directory Domains and Trusts. Также не будут автоматически удалены диапазоны идентификаторов, что позволит вам повторно создать доверительные отношения с этим лесом/доменом в будущем, сохранив настройки сопоставления идентификаторов.

Проверка работоспособности доверительных отношений

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

Посмотреть настройки доверия можно командой ipa trustconfig-show:

admin@dc-1:~$ ipa trustconfig-show
Домен: ald.company.lan
Идентификатор безопасности: S-1-5-21-1307086432-2724870100-1147875473
Имя NetBIOS: ALD
GUID домена: 7a522ccc-a0d7-4eac-a46a-46b12c93fa0e
Резервная основная группа: Default SMB Group
Агенты отношений доверия AD IPA: dc-1.ald.company.lan dc-XX.ald.company.lan
Контролёры отношений доверия AD IPA: dc-1.ald.company.lan dc-XX.ald.company.lan

Посмотреть все доверительные отношения можно командой ipa trust-find:

admin@dc-1:~$ ipa trust-find
---------------------------
найдено 1 отношение доверия
---------------------------
  Имя области (realm): win.company.lan
  Имя домена NetBIOS: WIN
  Идентификатор безопасности домена: S-1-5-21-3250248711-3862619044-3424259349
  Тип отношения доверия: Домен Active Directory
---------------------------------
Количество возвращённых записей 1
---------------------------------

Детальную информацию о конкретном трасте покажет команда ipa trust-show <REALM>:

admin@dc-1:~$ ipa trust-show win.company.lan
  Имя области (realm): win.company.lan
  Имя домена NetBIOS: WIN
  Идентификатор безопасности домена: S-1-5-21-3250248711-3862619044-3424259349
  Направление отношения доверия: Двустороннее отношение доверия
  Тип отношения доверия: Домен Active Directory

Проверить возможность извлечения авторизационной информации из доверенного домена можно с помощью команды id. Предварительно целесообразно очистить кэш службы SSSD как на клиенте, так и на сервере:

admin@dc-1:~$ rm -rf /var/lib/sss/db/\* /var/lib/sss/mc/\* && systemctl restart sssd
admin@dc-1:~$ id 'win\\administrator'
admin@dc-1:~$ id administrator@win.company.lan

Пример результата:

admin@dc-1:~$ id administrator@win.company.lan
uid=1131400500(administrator@win.company.lan) gid=1131400500(administrator@win.company.lan)
группы=1131400500(administrator@win.company.lan),1131400520(group policy creator
owners@win.company.lan),1131400513(domain users@win.company.lan),1131400519(enterprise
admins@win.company.lan),1131400518(schema admins@win.company.lan),1131400512(domain admi
ns@win.company.lan)

Проверять работу аутентификации в доверительных отношениях, выполняя kinit на машине ALD Pro пользователем из доверенного домена AD DS, на самом деле совершенно бесполезно. Доверительные отношения в этом случае не используются. Для корректной работы этого механизма вполне достаточно, чтобы было настроено перенаправление DNS-зон. Вы можете включить расширенную трассировку, чтобы увидеть, что запрос уходит сразу на IP-адрес контроллера домена WIN.

admin@dc-1:~$ KRB5_TRACE=/dev/stderr kinit administrator@win.company.lan
[30804] 1698829046.855690: Resolving unique ccache of type KEYRING
[30804] 1698829046.855691: Getting initial credentials for administrator@win.company.lan
[30804] 1698829046.855693: Sending unauthenticated request
[30804] 1698829046.855694: Sending request (195 bytes) to win.company.lan
[30804] 1698829046.855695: Initiating TCP connection to stream 192.168.88.85:88
[30804] 1698829046.855696: Sending TCP request to stream 192.168.88.85:88
[30804] 1698829046.855697: Received answer (198 bytes) from stream 192.168.88.85:88
[30804] 1698829046.855698: Terminating TCP connection to stream 192.168.88.85:88
[30804] 1698829046.855699: Response was from master KDC
[30804] 1698829046.855700: Received error from KDC: -1765328359/Additional pre-authentication
required
[30804] 1698829046.855703: Preauthenticating using KDC method data
[30804] 1698829046.855704: Processing preauth types: PA-PK-AS-REQ (16), PA-PK-AS-REP_OLD (15),
PA-ETYPE-INFO2 (19), PA-ENC-TIMESTAMP (2)
[30804] 1698829046.855705: Selected etype info: etype aes256-cts, salt "WIN-
F8I3I8FPJ70Administrator", params ""
[30804] 1698829046.855706: PKINIT client has no configured identity; giving up
[30804] 1698829046.855707: PKINIT client has no configured identity; giving up
[30804] 1698829046.855708: Preauth module pkinit (16) (real) returned: 22/Недопустимый аргумент
Password for administrator@win.company.lan:

В проверке доверительных отношений очень помогает утилита kvno. С ее помощью вы можете запросить билет на любой сервис доверенного домена:

admin@dc-1:~$ kinit admin
Password for admin@ALD.COMPANY.LAN:

admin@dc-1:~$ kvno cifs/dc-1.win.company.lan@WIN.COMPANY.LAN
cifs/dc-1.win.company.lan@WIN.COMPANY.LAN: kvno = 5
admin@dc-1:~$ klist
Ticket cache: KEYRING:persistent:959800000:krb_ccache_bkldI6V
Default principal: admin@ALD.COMPANY.LAN

Valid starting       Expires              Service principal
24.04.2024 13:58:37  25.04.2024 23:58:37  cifs/dc-1.win.company.lan@WIN.COMPANY.LAN
24.04.2024 13:58:37  25.04.2024 23:58:37  krbtgt/WIN.COMPANY.LAN@WIN.COMPANY.LAN
24.04.2024 13:58:37  25.04.2024 13:58:32  krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN

Точно также можно получить даже кросс-доменный билет, который обычно не сохраняется в связке ключей:

admin@dc-1:~$ kvno krbtgt/WIN.COMPANY.LAN@ALD.COMPANY.LAN
krbtgt/WIN.COMPANY.LAN@ALD.COMPANY.LAN: kvno = 1

Глобальный каталог

Глобальный каталог AD

В лесу Active Directory может быть много поддоменов, и, чтобы ускорить поиск нужной информации, разработчики Microsoft придумали такую роль, как глобальный каталог (англ. Global Catalog).

Контроллер домена, которому назначена роль глобального каталога, с помощью штатной процедуры репликации извлекает из всех поддоменов краткую информацию об объектах (Partial Attribute Set, PAT) и предоставляет ее приложениям по запросу. При желании вы можете расширить набор реплицируемых атрибутов. Для этого в редакторе схемы для нужного атрибута достаточно установить флажок «Копировать этот атрибут в глобальный каталог» (Replicate this attribute to the Global Catalog).

Глобальный каталог предоставляет данные по протоколу LDAP на портах 3268/tcp (LDAP) и 3269/tcp (LDAPS). В Active Directory первый контроллер автоматически получает роль глобального каталога, но она может быть назначена не всем контроллерам в домене. Автоматическое обнаружение серверов, которым назначена роль глобального каталога, выполняется по SRV-записям вида _ gc._tcp.<DNSDomainName>.

Глобальный каталог ALD Pro

В службе каталога FreeIPA нет глобального каталога, что становится большой проблемой при использовании системы в гибридных сценариях развертывания, поэтому в ALD Pro эта функция была реализована в виде дополнительного модуля.

../_images/image18.png

рис. 325 Архитектура глобального каталога ALD Pro

Модуль глобального каталога устанавливается на всех контроллерах в домене, и за его работу отвечают службы dirsrv@GLOBAL-CATALOG и ipa-gcsyncd, см. рис. 325. Первая служба обеспечивает работу дополнительного LDAP-бэкенда на порту 3268/TCP, а вторая синхронизирует информацию глобального каталога с основным каталогом, выполняя необходимую трансформацию данных.

Синхронизация работает на основе механизма репликации syncrepl. Служба ipa-gcsyncd извлекает из основного LDAP-каталога информацию о пользователях и группах, модифицирует ее с учетом схемы AD DS, которую ожидают увидеть клиенты Windows, и сохраняет в базу глобального каталога. Модификация данных выполняется по следующим шаблонам.

Шаблон модификации учетных записей пользователей

{% macro first_val(attr) -%}
   {{ entry[attr][0] }}
{%- endmacro %}
dn: cn={{ first_val('uid') }},cn=users,{{ suffix }}
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: ad-top
objectClass: ad-organizationalPerson
objectClass: user
objectClass: securityPrincipal
objectClass: posixAccount
objectClass: inetUser
objectClass: gcobject
cn: {{ first_val('uid') }}
sn: {{ first_val('sn') }}
{%- if entry['givenname'] %}
givenName: {{ first_val('givenname') }}
{%- endif %}
instanceType: 4
{%- if entry['displayname'] %}
displayName: {{ entry.single_value['displayname'] }}
{%- endif %}
name: {{ first_val('cn') }}
objectGUID:: {{ guid }}
userAccountControl: 66048
primaryGroupID: 513
objectSid:: {{ sid }}
sAMAccountName: {{ pkey }}
sAMAccountType: 805306368
{%- if entry['krbcanonicalname'] %}
userPrincipalName: {{ entry.single_value['krbcanonicalname'] }}
{%- else %}
userPrincipalName: {{ first_val('krbprincipalname') }}
{%- endif %}
objectCategory: CN=Person,CN=Schema,CN=Configuration,{{ suffix }}
{%- if entry['mail'] %}
mail: {{ first_val('mail') }}
{%- endif %}
uidnumber: {{ first_val('uidnumber') }}
gidnumber: {{ first_val('gidnumber') }}
{%- for uid in entry['uid'] %}
uid: {{ uid }}
{%- endfor %}
homeDirectory: {{ first_val('homedirectory') }}
{%- for group in entry['memberof'] %}
memberof: {{ group }}
{%- endfor %}
nTSecurityDescriptor:
D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(OA;;WP;736e4812-af31-11d2-b7df-00805f48caeb;bf967ab8-0de6-11d0-a285-00aa003049e2;CO)(A;;SD;;;CO)
gcuuid: {{ entryuuid }}

Шаблон модификации групп

{% macro first_val(attr) -%}
   {{ entry[attr][0] }}
{%- endmacro %}
dn: cn={{ pkey }},cn=users,{{ suffix }}
objectClass: top
objectClass: ad-top
objectClass: group
objectClass: securityprincipal
objectClass: nsmemberof
objectClass: gcobject
objectClass: posixGroup
cn: {{ pkey }}
instanceType: 4
name: {{ pkey }}
objectGUID:: {{ guid }}
objectSid:: {{ sid }}
sAMAccountName:  {{ pkey }}
sAMAccountType: 268435456
objectCategory: CN=Group,CN=Schema,CN=Configuration,{{ suffix }}
ntsecuritydescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a55-1e2f-11d0-9819-0aa0040529b;;AU)
{%- for member in entry['member'] %}
member: {{ member }}
{%- endfor %}
{%- for group in entry['memberof'] %}
memberof: {{ group }}
{%- endfor %}
gidnumber: {{ gidnumber }}
groupType: {{ groupType }}
gcuuid: {{ entryuuid }}

Установка глобального каталога ALD Pro

Вы можете поставить модуль глобального каталога при установке первого контроллера домена. Для этого вам необходимо дополнительно установить пакет aldpro-gc и выполнять продвижение с ключом --setup_gc:

sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-mp aldpro-gc
sudo aldpro-server-install -d ald.company.lan -n dc-1 -p 'AstraLinux_174' --ip 10.0.1.11 --no-reboot --setup_gc

В дальнейшем вы можете доустановить модуль, используя подсистему обновления. Достаточно вызвать следующую команду на dc-1, после чего глобальный каталог установится на все контроллеры в домене:

sudo aldpro-update-all --repo 'deb https://dl.astralinux.ru/aldpro/frozen/01/2.2.0 1.7_x86-64 main base'--username admin --password 'AstraLinux_174' --all --setup_gc

Ключ --repo указывает репозиторий, откуда будет взят пакет глобального каталога. Ключ является обязательным, т.е. его нужно указать даже в случае предварительной установки пакета глобального каталога на контроллер домена.

После установки вы можете убедиться, что ГК был установлен, выполнив команду:

До установки ГК:

admin@dc-1:~$ sudo ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
smb Service: RUNNING
winbind Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful

После установки ГК:

admin@dc-1:~$ sudo ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
smb Service: RUNNING
winbind Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
dirsrv@GLOBAL-CATALOG Service: RUNNING
ipa-gcsyncd Service: RUNNING
ipa: INFO: The ipactl command was successful

Далее вы обнаружите systemd службу ipa-gcsyncd.service, которая отвечает за синхронизацию глобального каталога.

admin@dc-1:~$ systemctl status ipa-gcsyncd.service
● ipa-gcsyncd.service - Служба синхронизации Глобального каталога
   Loaded: loaded (/lib/systemd/system/ipa-gcsyncd.service; disabled; vendor preset: enabled)
   Active: active (running) since Fri 2024-03-29 17:09:05 MSK; 35min ago
 Main PID: 2253 (gcsyncd.py)
    Tasks: 1 (limit: 4915)
   Memory: 87.5M
      CPU: 2.978s
   CGroup: /system.slice/ipa-gcsyncd.service
           └─2253 /usr/bin/python3 /opt/gc/exec/gcsyncd.py

мар 29 17:09:05 dc-1.aldpro.mycompany.lan systemd[1]: Started Служба синхронизации Глобального
каталога.
мар 29 17:09:12 dc-1.aldpro.mycompany.lan gcsyncd.py[2253]: ipa: INFO: LDAP bind...
мар 29 17:09:12 dc-1.aldpro.mycompany.lan gcsyncd.py[2253]: ipa: INFO: Commencing sync process
мар 29 17:09:12 dc-1.aldpro.mycompany.lan gcsyncd.py[2253]: ipa: INFO: Initial LDAP dump is done,
now synchronizing

Вы также обнаружите после установки ГК, что в DNS создались дополнительные SRV-записи для автоматического обнаружения сервиса со стороны Windows-клиентов.

_ldap._tcp.Default-First-Site-Name._sites.gc._msdcs
_ldap._tcp.gc._msdcs
_gc._tcp.Default-First-Site-Name._sites
_gc._tcp

Найти их можно с помощью утилиты ipa, отфильтровав по слову «gc» с помощью утилиты grep:

admin@dc-1:~$ ipa dnsrecord-find ald.company.lan | grep gc
  Имя записи: \_ldap._tcp.Default-First-Site-Name._sites.gc._msdcs
  Имя записи: \_ldap._tcp.gc._msdcs
  Имя записи: \_gc._tcp.Default-First-Site-Name._sites
  Имя записи: \_gc._tcp

Потом можно посмотреть каждую по отдельности:

admin@dc-1:~$ sudo ipa dnsrecord-find ald.company.lan --name=_gc._tcp
...
  Имя записи: \_gc._tcp
  SRV record: 0 100 3268 dc-1.ald.company.lan.
---------------------------------
Количество возвращённых записей 1
---------------------------------

Присоединение Windows-машины к домену ALD Pro

Конечная цель проектов импортозамещения в ИТ — полный отказ от операционной системы Windows. Но, как говорится, гладко было на бумаге, да забыли про овраги. Может так оказаться, что быстро заменить какие-то клиентские корпоративные приложения, написанные под эту операционную систему, не получится. В этом случае вам может пригодиться возможность присоединения Windows-компьютеров к домену ALD Pro.

Присоединение Windows-клиентов к домену FreeIPA не находится в фокусе внимания команды разработчиков этой службы каталога, так как проект ставит своей целью не заменить Active Directory для Windows-компьютеров, а создать аналогичное решение для компьютеров под управлением операционной системы Linux. Однако компания Microsoft еще с версии Windows 2000 поддерживает возможность интеграции своих ОС с областями Kerberos, которые совместимы с RFC 2136, а центр распределения ключей FreeIPA работает как раз на базе эталонной реализации MIT KDC. То есть, ничто не препятствует тому, чтобы вводить Windows-компьютеры напрямую в домен FreeIPA.

Более того, разработчики FreeIPA реализовали возможность интеграции своего домена с Active Directory на уровне доверительных отношений за счет компонента Samba AD, поэтому контроллеры домена, помимо Kerberos, поддерживают такие протоколы, как NetBIOS, SMB, Netlogon (MS-NRPC) и NTLM. В базе данных DNS есть SRV-записи по стандартам Microsoft, а Kerberos-билеты содержат не только аутентификационные данные, но и сертификат PAC, включающий SID’ы пользователя и всех его групп.

Все эти особенности открывают дополнительные возможности по работе Windows-компьютеров в составе домена FreeIPA. Далее мы расскажем, как правильно задействовать эти отличительные черты, чтобы получить доступ к следующим функциям:

  • вход в ОС Windows с помощью учетных записей из домена ALD Pro;

  • прозрачная аутентификация при обращении пользователя к керберизированным ресурсам, например, файловым серверам;

  • получение уведомлений об истечении срока действия пароля и возможность сменить пароль штатными функциями ОС Windows;

  • предоставление доменным пользователям прав доступа к локальным ресурсам Windows-компьютера с учетом их участия в доменных группах;

  • синхронизация времени рабочей станции с временем на контроллерах домена;

  • динамическое изменение DNS-записей в домене при изменении IP-адреса на сетевом интерфейсе Windows-компьютера.

Полная инструкция занимает два десятка страниц и подробно рассказывает о том, как настроить Kerberos-аутентификацию, синхронизацию времени, динамическое обновление DNS-записей, домен для входа по умолчанию и многие другие аспекты. Вы можете ознакомиться с этой информацией в нашей статье на Хабре, поэтому укажем только, что команда ALD Pro разработала для вас специальную графическую утилиту aldpro-join.exe, которая позволяет выполнить все настройки в пару кликов, см. рис. 326:

../_images/image19.png

рис. 326 Присоединение компьютера к домену с помощью утилиты aldpro-join.exe

Приложение написано на языке Python и доступно в публичном репозитории продуктовой команды на GitFlic как в виде исходных кодов, так и в виде скомпилированного с помощью Pyinstaller исполняемого exe-файла.

Практика и тестирование

  • Практическая работа: Модуль 9. Миграция и гибридное развертывание. Интеграция с Microsoft Active Directory
  • Тест: Модуль 9. Миграция и гибридное развертывание. Интеграция с Microsoft Active Directory

Заключение

В этом модуле мы рассмотрели один из наиболее действенных механизмов гибридного развертывания, без которого не обойдется ни один проект импортозамещения! Далее займемся резервным копированием.

Дополнительные источники информации:

  • Статья «Двусторонние трасты с AD DS и реализация глобального каталога в ALD Pro»

  • Статья «Хотите присоединить Windows к домену ALD Pro (FreeIPA)? Спросите меня как»

Table of Contents

Linux. Уровень 4. Замена корпоративных решений Microsoft

Программа курса

Задача курса

  • Дисклеймер, хотелось бы чтобы то, что мы с Вами сделаем, было просто интересным хаком, развлечением, разминкой для инженера, но возможно, что перед Вами эта задача уже возникла всерьез, поэтому, будем поэтапно, “на ходу” заменять в сети предприятия системы Microsoft начиная с Desktop и заканчивая Active Directiory на Open Source решения без потерь привычной функциональности

  • Курс посвящен изучению технологий Single sign-on SSO — единого входа, сквозной аутентификации пользователей и Workplace Innovation (WPI) — универсального рабочего места

Модуль 0. Подготовка стенда в классе

  • Узнать свой номер стенда

  • Проверить наличие дистрибутивов и образов

Часть 1. Использование инфраструктуры Microsoft Active Directory

Модуль 1. Развертывание сети предприятия с использованием MS AD

Теория

!!! Рассказывать в паузах !!!

Лабораторные работы: Развертывание сети предприятия

1.1 Схема стенда, импорт, настройка и запуск VM gate и server

  • Запускаем процесс импорта winserver2016, подключаем к NAT адаптеру и проводим Развертывание Active Directory, по окончании, подключем к VirtualBox Host-Only Ethernet Adapter и настраиваем .10-й IP адрес

Запустите с правами Administrator

C:\cmder\Cmder.exe

λ bash

λ cd

λ test -d conf && rm -rf conf

λ git clone http://val.bmstu.ru/unix/conf.git

λ cd conf/virtualbox/

!!! 4 - это номер курса, вместо X укажите Ваш номер стенда, если не знаете его, спросите преподавателя !!!

λ ./setup.sh X 4

1.2 Настройка сети VM gate

  • Запустить gate

  • Преподавателю запустить импорт будущей системы lin client1

  • Запустить импорт системы win client2

# sh net_gate.sh

# init 6
  • Создать в Putty профиль 192.168.X.1 gate и подключиться

1.3 настройка сервиса DHCP

gate:~# apt update

gate:~# sh conf/dhcp.sh

1.4 Запуск и настройка системы lin client1

!!! Делает преподаватель и выкладывает для всех (уточнив, что в ОО это надо сделать самостоятельно)

!!! Из-за неготовности DNS подключить VM к сети класса, выяснить ip и, через ssh:

  • Преподаватель экспортируем получившуюся VM (удалив адаптер) в образ “lin client1” в общий доступ !!! Копировать в переыв, иначе, DoS)

  • Запускаем импортируем и, по окончании, подключаем к LAN lin client1

gate# dhcp-lease-list

1.5 Регистрируем доменных пользователей

1.6 Запуск, настройка и включение в домен системы windows client2

  • Регистрируемся на client2 как user2

Вопросы

Модуль 2. Развертывание сервисов на Linux в инфраструктуре MS AD

Теория

Лабораторные работы: Развертывание сервисов

2.1 Сервис HTTP Proxy с GSSAPI аутентификацией

gate# tail -f /var/log/squid/access.log

2.2 Ввод Linux систем в домен с использование Winbind

  • Удаляем пользователей gate* из AD

  • Удаляем файлы с ключами на AD

C:\>del *keytab
  • Удаляем ключи сервисов с gate

gate# rm -v /root/*keytab /etc/krb5.keytab
  • Удалить запись gate из dns

  • Проверяем наличие gate в DNS

  • Создаем группу group1 включаем в нее user1

2.3 Файловый сервис CIFS для пользователей домена MS AD на Linux

2.4 Сервис электронной почты (SMTP/IMAP/LDAP/HTTP)

  • Для пересылки почты в рамках одного сервера можно не настраивать MX записи

  • Установка UA mail на системе gate

  • Установка imap сервера dovecot на gate

gate# apt install ansible

gate# ansible-playbook conf/ansible/roles/mail.yml
  • GUI интерфейс к LDAP — Apache Directory Studio (требует JRE, раскрывать в VM из УЗ student, лучше через 7zip в корень C:\ для лаб после AD), для подключения к LDAP использовать учетную запись Administrator Microsoft Active Directory

2.5 Сервис GitLab с авторизацией через LDAP

  • Использование NGINX для перенаправления mail и autoconfig

2.6 Сервис мгновенных сообщений и статуса абонента (XMPP)

2.7 Сервис Keycloak

Вопросы

Модуль 3. Добавление рабочих станций Linux в инфраструктуру MS AD

Теория

Лабораторные работы: Добавление рабочих станций Linux

3.0 Подготовка к следующему модулю

3.1 Использование библиотеки PAM

3.2 Использование SSSD/Realmd

3.3 Управление рабочими станциями Linux

3.4 Подключение рабочих станций Linux к файловому сервису CIFS

  • Установка ПО, linux проводник thunar, Иконка на Рабочий стол

Вопросы

Модуль 4. Миграция инфраструктуры MS AD на Samba4

Теория

Лабораторные работы: Развертывание сервисов

4.1 Развертывание системы linux server2

  • Клонируем server→server2 в VBox, генерируем новый mac и запускаем

  • Запускаем импорт win client4 (!!! генерируем новый mac)

  • Настраиваем подключение к сети

# ifconfig eth0 inet 192.168.X.12/24

PuTTY

# sh net_server.sh

# hostnamectl set-hostname server2.corpX.un
# cat /etc/hosts
127.0.0.1               localhost

192.168.X.12 server2.corpX.un server2
# cat /etc/network/interfaces
...
        address 192.168.X.12
...
# cat /etc/resolv.conf
search corpX.un
nameserver 192.168.X.10
# init 6

4.2 Настройка Samba 4 контроллером существующего домена

4.3 Замена MS AD на Samba4

4.3.1 Переносим FSMO на новый сервер
4.3.2 Настраиваем сервисы на новый сервер (вариант 1)
  • DNS client и Squid (для тестов user4@client4 — пускать всех, кто прошел аутентификацию)

gate# cat /etc/resolv.conf
search corpX.un
nameserver 192.168.X.12
gate# service squid restart
  • DHCP

gate# cat /etc/dhcp/dhcpd.conf
...
option domain-name-servers 192.168.X.12;
...
gate# service isc-dhcp-server restart
  • Правим настройки клиента DNS рабочей станции слушателя через netsh

4.3.3 Настраиваем сервисы на новый сервер (вариант 2)
  • Останавливаем server

server2# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.X.10
        netmask 255.255.255.0
        gateway 192.168.X.1

auto eth0:0
iface eth0:0 inet static
         address 192.168.X.12
         netmask 255.255.255.255
server2# init 6
4.3.4 Удаляем сервер MS AD

Для варианта 2

server2# kinit Administrator

server2# samba-tool dns add server2 corpX.un server A 192.168.X.10

4.4 Проверяем работу инфраструктуры

  • Вводим в домен win client4, подключаемся user4 и проверяем работу GPO по proxy и наличию иконки Thunderbird

  • Добавляем через оснастки (на client2) атрибуты (телефон и email) пользователю user4 и включаем его в группу group1, проверяем CISF + Управление доменом

  • Проверяем работу веб интерфейса к почте и адресную книгу в ней

  • Проверяем работу GitLab

Вопросы

Часть 2. Замена проприетарных решений

Модуль 5. Развертывание KDC

Теория

Лабораторные работы:

5.1 Отключаем системы от домена MS AD

  • Отключение от домена MS AD win client2 и client4

5.2 Добавляем в сеть linux сервер

# sh net_server.sh

# init 6

5.3 Историческая ретроспектива

5.4 Разворачиваем DNS сервер и настраиваем системы на новый DNS

server:~# sh conf/dns.sh
  • Настройка клиента DNS

# cat /etc/resolv.conf
search corpX.un
nameserver 192.168.X.10
  • DNS client

gate# cat /etc/resolv.conf
search corpX.un
nameserver 192.168.X.10
  • DHCP

gate# cat /etc/dhcp/dhcpd.conf
...
option domain-name-servers 192.168.X.10;
...
gate# service isc-dhcp-server restart
  • Правим настройки клиента DNS рабочей станции слушателя через netsh

5.5 Развертывание KDC

server# nslookup -q=SRV _kerberos._udp.corpX.un

5.6 Регистрация рабочих станций в KDC

  • lin client3 — уже все работает

5.7 Kerberos GSSAPI аутентификация

Вопросы

Модуль 6. Развертывание LDAP каталога

Теория

Лабораторные работы:

6.1 Установка и настройка OpenLDAP

6.2 Хранение учетных записей UNIX в LDAP

6.3 Авторизация с использованием LDAP сервера

  • Правим права)

gate# 
chown user1 /var/mail/user1
chown -R user1:user1 /home/user1
chown user2 /var/mail/user2
chown -R user2:user2 /home/user2
chown user3 /var/mail/user3
chown -R user3:user3 /home/user3

6.4 «Перемещаемый» профиль

6.5 Хранение дополнительной информации в LDAP

  • Настройка доступа к адресной книге в roundcube (может понадобиться исправить ФИО в неверной кодировке через Apache Directory Studio)

6.6 Аутентификация с использованием LDAP сервера

Вопросы

  1. Что определяет порядок использования файлов /etc/hosts и /etc/resolv.conf для разрешения DNS имен?

  2. Какие поля в учетной записи UNIX используются для аутентификации?

  3. Какие поля в учетной записи UNIX используются для авторизации?

  4. Для чего используется поле GECOS учетной записи пользователя UNIX?

  5. Что такое NIS домен?

  6. Что такое NIS карты?

  7. Какая утилита используется для инициализации NIS карт?

  8. Какая утилита используется для тестирования NIS?

  9. Какие задачи решает библиотека NSS

  10. Какой идентификатор источника данных в NSS позволяет подключить NIS через указание в файлах учетных записей системы строки, начинающейся с символа «+»

  11. Какой командой можно посмотреть учетные записи из всех источников данных?

  12. Какая подсистема (facility) библиотеки PAM позволяет временно запретить регистрацию пользователей?

  13. Какая подсистема (facility) библиотеки PAM может быть использована для создания домашних каталогов пользователей?

  14. По умолчанию, при первом подключении клиента к SSH серверу, он получает предупреждение о недостоверном …

  15. Клиент ssh использует ssh-agent для получения расшифрованного …

  16. Kerberos обеспечивает механизм …

  17. Что такое Kerberos realm (сфера)?

  18. Какие объекты представляются учетными записями (Principal) в Kerberos?

  19. Используется ли в протоколе Kerberos SSL или TLS?

  20. Используются ли в протоколе Kerberos сертификаты?

  21. Что хранится в TGT?

  22. Какая команда может быть использована для получения TGT?

  23. Разница в настройке времени между системами, взаимодействующими по протоколу Kerberos, не должна составлять более …

  24. В каком файле, по умолчанию, на стороне сервера хранятся учетные записи сервисов?

  25. Для чего используется GSSAPI?

  26. Какого типа сервиса должен быть добавлен в KDC для использование Kerberos с сервисом Squid?

  27. Какой режим безопасности должен быть настроен в SAMBA для работы с собственной базой данных пользователей?

  28. Какая утилита используется для управления учетными записями пользователей в файловом сервере SAMBA?

  29. Какого типа сервис должен быть добавлен в KDC для регистрации рабочей станций Windows при использовании Kerberos сферы?

  30. Где хранится пользовательский профиль при использовании Kerberos сферы для аутентификации пользователей рабочих станций Windows?

  31. Какой режим безопасности должен быть настроен в пакете SAMBA для работы с базой данных пользователей в KDC?

  32. В виде какой структуры представляются записи в LDAP?

  33. Для чего используется формат LDIF?

  34. Как в протоколе LDAP называется операция аутентификации?

  35. Что такое DN и RDN в LDAP?

  36. Сколько атрибутов класса (object class) может быть у записи?

  37. Какой утилитой можно добавить учетную запись сервиса UNIX в Microsoft AD?

  38. Какой утилитой можно вывести список сервисов, привязанных к учетной записи Microsoft AD?

  39. Что нужно сделать для хранения в Microsoft AD атрибутов учетных записей UNIX?

  40. Что нужно сделать для развертывания сервиса NFS на Microsoft Windows Server?

  41. Для каких задач предназначен WINBIND?

  42. Какая утилита позволяет проверить работу WINBIND?

  43. Какой ключ утилиты samba-tool используется для расширения схемы для хранения UNIX атрибутов при инициализации контроллера домена Samba4?

  44. Какая утилита используется для управления учетными записями пользователей в контроллере домена Samba4?

  45. Что нужно установить на рабочую станцию Windows для управления контроллером домена Samba4?

  46. Поддерживает ли контроллер домена Samba4 групповые политики?

  47. Какой вариант системы централизованного управления учетными записями самый лучший?

Дополнительные материалы

$x = Read-Host -Prompt "Ваш X"; New-ADUser -Name "gatehttp" -SamAccountName "gatehttp" -AccountPassword(ConvertTo-SecureString -AsPlainText 'Pa$$w0rd' -Force) -Enabled $true -ChangePasswordAtLogon $false -CannotChangePassword $true -UserPrincipalName gatehttp@corp$X.un -DisplayName  gatehttp -PasswordNeverExpires $true

Вебинар

Перед вебинаром:

  1. Удалить образы

  2. Восстановить образы

  3. Возвращаем настройки клиента DNS рабочей станции слушателя через netsh

  4. slmgr /rearm

  5. Отключить wpad

  6. В Squid пускать всех, кто прошел аутентификацию

  7. В smb.conf доступ к общей папке для

valid users = "@CORPX\domain users"
  1. поправить настройку NGINX в gitlab

В самом начале вебинара кратко обсудить и продемонстрировать, что у нас есть на этом этапе:

  1. MS AD в локальной сети предприятия с базой учетных записей пользователей

  2. Рабочие станции Windows

  3. Групповые политики для Windows клиентов

  4. запустить импорт windows client4

  5. Сервера Linux с сервисами HTTP Proxy, CIFS, SMTP, IMAP (все на gate, klist)

  6. Адресная книга LDAP (с фото:) и web интерфейс к почте

  7. Рабочие станции Linux (подключены к домену двумя способами, показать на client3)

  8. запустить импорт linux client5

  9. GitLab с авторизацией через LDAP (используется как источник ansible-pull для управления рабочими станциями Linux)

  10. Новый linux server2

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Компьютер зависает на добро пожаловать windows 10
  • Microsoft windows feedback siuf
  • Клиент steam для windows 7
  • Intel 915g драйвер для windows 7
  • Удаленный вызов процедур rpc windows 10 можно ли отключить