Привет, Хабр. В этой статье мы разберём ключевые различия между отечественной службой каталогов «Эллес» и её основой — Samba, и расскажем, почему для создания российского аналога Active Directory выбрали именно этот проект с открытым кодом.

Начало истории «Эллес»

30 марта 2022 года вышел Указ Президента № 166 «О мерах по обеспечению технологической независимости и безопасности критической информационной инфраструктуры Российской Федерации». Одним из компонентов таковой инфраструктуры является Active Directory — служба каталогов, хранящая учётные записи пользователей, групп, устройств и других объектов и используемая в корпоративных сетях для безопасного управления доступом, аутентификации и авторизации пользователей. На первый взгляд, наличие российских дистрибутивов Linux позволяло достаточно быстро получить рабочие станции и собрать из бесплатных и доступных серверов Kerberos/LDAP искомые службы. Казалось бы. Но на самом деле ни одна крупная организация не могла и не может позволить себе единовременно перевести весь свой парк рабочих мест и инфраструктурных серверов с одного решения на другое: простой систем в процессе внедрения и переобучения пользователей и администраторов обойдётся слишком дорого. К тому же и подходящее российское решение отсутствовало: крупным организациям требуется не собранный на скорую руку набор компонентов, а более‑менее единый комплекс, решающий задачу.

В свете явной потребности в подобном решении в Группе компаний Иннотех решили разработать комплексную службу каталогов, получившую название «Эллес». Написать систему с нуля в условиях ограниченного времени (указ запрещал использование зарубежного ПО с 1 января 2025) было явно невозможно, поэтому решили взять за основу хоть как‑то решающее задачу ПО с открытым кодом и довести его до требуемых кондиций.

Почему основой стала Samba?

На момент выбора рассматривать имело смысл всего две системы: FreeIPA и Samba4.

Простота развёртывания

Samba. Использует знакомые сетевые концепции и технологии Windows, делая настройку проще и понятнее.

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

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

Набор функций

Samba. Продукт тесно интегрирован с AD, поддерживает сетевые папки и принтеры по протоколам Microsoft, групповые политики Windows.

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

Функциональность Samba была изначально нацелена на решаемую нами задачу — замену контроллера домена Windows. FreeIPA же ориентирована на создание отдельной, пусть и более богатой для Linux, инфраструктуры идентификации.

Групповые политики

Samba. В дополнение к объектам групповых политик (GPO) Microsoft Active Directory (AD) поддерживает политики для Linux‑клиентов. Для этого использует POSIX‑подобный механизм, называемый «управление доступом».

FreeIPA. Не поддерживает политики MS AD и ничего про них не знает. Зато поддерживает политики для Unix/Linux‑клиентов, есть механизм политик на основе API, способный управлять детализированными элементами управления для организаций, сайтов, доменов и даже отдельных компьютеров.

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

Совместимость и интеграция

Samba. Если беспрепятственное взаимодействие с существующей сетью Windows имеет решающее значение, то Samba DC имеет преимущества благодаря тесной интеграции с Active Directory.

FreeIPA. Поскольку FreeIPA изначально ориентирована на Linux, она отлично интегрируется с многочисленными службами и продуктами из мира Linux по сравнению с Samba DC.

Это был один из основных аргументов. Только Samba могла гарантировать, что существующие Windows‑клиенты смогут работать с «Эллес» без необходимости их модификации или установки дополнительных агентов.

Архитектурные особенности

Samba. Продукт воспроизводит функциональность Microsoft Active Directory. Реализует возможности сервиса SAM (Security Accounts Manager), в котором хранится информация об учётных записях пользователей, членстве в группах и настройках управления доступом, и реализует стандартный протокол LDAP для доступа к данным. Использует механизм репликации для синхронизации данных между несколькими контроллерами домена, что обеспечивает высокую доступность, отказоустойчивость и согласованность информации в каталоге. Репликация работает по протоколу DRSUAPI. Поддерживает Netlogon — программный компонент, который обрабатывает запросы аутентификации от клиентов Windows, подключённых к домену.

FreeIPA. Использует более современную модульную архитектуру микросервисов, в которой различные компоненты взаимодействуют через RESTful API, обеспечивая модульность и повышенную отказоустойчивость. Интегрируется с различными сервисами в экосистеме Linux для расширения своей функциональности. Сюда входит интеграции с SSH, позволяющая централизованно управлять ключами SSH, а также интеграция с sudo для централизованного применения политик. FreeIPA поддерживает репликацию мультимастер, что позволяет нескольким серверам IPA синхронизировать данные для обеспечения высокой доступности и отказоустойчивости. Репликация основана на механизме 389 Directory Server. Имеет встроенные возможности аудита, позволяющие администраторам отслеживать действия пользователей, изменения политик и системные события в домене FreeIPA.

Архитектура Samba, хотя и считается более «монолитной» и унаследованной, была необходима для обеспечения совместимости на уровне сетевых протоколов, поэтому пришлось идти на компромисс в пользу немедленной работоспособности в целевой среде.

Производительность

Samba. По итогам нагрузочного тестирования Samba DC показала значительно большую производительность при добавлении объектов в LDAP и меньшее потребление ресурсов при всех операциях (поиск, аутентификация).

FreeIPA. Проигрывает по производительности при создании объектов в LDAP и потребляет больше ресурсов (на Github есть готовые тесты производительности).

Более высокая производительность Samba в типовых для домена операциях стала дополнительным техническим аргументом в её пользу для развёртывания в крупных организациях.

Варианты миграции

Samba. Отдельные домены и единый домен.

FreeIPA. Отдельные домены.

Возможность работы в едином домене с Windows‑серверами была для нас безальтернативным требованием. Только Samba могла его выполнить, позволив реализовать стратегию плавной, а не революционной миграции.

При всех своих достоинствах, у FreeIPA был существенный недостаток с точки зрения последующего внедрения: без очень серьёзных доработок нельзя было создать гетерогенную инфраструктуру, чтобы плавно перейти с Windows (собственно, одну из ключевых идей FreeIPA можно сформулировать как «ни в коем случае не Windows»).

Samba4, несмотря на то, что не могла быть в чистом виде использована в крупных организациях, гетерогенную среду обеспечить могла, да и вообще, «почти работала», что и склонило окончательный выбор в её пользу.

1 сентября 2024 года, после почти двух лет напряжённой работы мы ввели в эксплуатацию первый сервер «Эллес» в AD‑домене.

Так в чём всё-таки разница?

На текущий момент по сравнению с Samba4 служба каталогов «Эллес» обладает следующими ключевыми отличиями:

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

  • Обладает существенно более высокой производительностью

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

    • DNS‑сервер BIND9, автоматически настроенный для поддержки динамических обновлений и SRV‑записей, необходимых для работы домена и репликации.

    • Службу времени Chrony, обеспечивающую точную синхронизацию времени (NTP) между всеми контроллерами домена и клиентами — фундаментальное требование для работы Kerberos.

    • Реализацию Kerberos Heimdal, выступающую в качестве центра аутентификации домена, которая, в отличие от MIT Kerberos, не содержит кода с лицензионными ограничениями в экспортном контроле США.

    • Подсистему Samba AD с настроенной репликацией, включая репликацию SYSVOL по протоколу DFS‑R (Distributed File System Replication), что гарантирует распространение групповых политик и скриптов.

  • Поддерживает сложные многодоменные топологии, в том числе:

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

  • практически полноценная поддержка Global Catalog, что существенно ускоряет обработку междоменных запросов и позволяет использовать универсальные для всего леса группы;

  • улучшенная (по сравнению с Samba4) работа с domain trusts для более качественного разделения ресурсов и управления безопасностью;

  • переработан сервис KCC, управляющий топологией репликации между контроллерами доменов как внутри отдельных доменов, так и между ними.

  • Поддержка RODC (read‑only domain controller). Кроме его основной задачи по увеличению безопасности при невозможности физической защиты серверов (например для удалённых филиалов), это позволяет внедрять «Эллес» прозрачнее и плавнее.

  • Полноценная работа с групповыми политиками. Sapienti sat.

  • Развитый мониторинг, имеющий большой набор метрик, предоставляемый как в формате Prometheus, так и в виде LDAP‑объектов.

Хотите знать больше?

Подробную информацию об СК Эллес и пользовательскую документацию вы можете найти на официальном сайте, а ещё больше новостей о продукте — в разделе «История изменений».

Андрей Нестеров

Главный архитектор службы каталогов «Эллес», ИТ-холдинг Т1