
Привет, Хабр. В этой статье мы разберём ключевые различия между отечественной службой каталогов «Эллес» и её основой — 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
