
Привет, Хабр!
Меня зовут Дмитрий Макаров, я руководитель продукта MULTIDIRECTORY — российской службы каталогов с ядром собственной разработки.
После ухода Microsoft с российского рынка многие инженеры и администраторы столкнулись с вопросом: чем заменить Active Directory? При этом ещё нужно сохранить совместимость и привычные инструменты, обеспечить надежность и безопасность. Samba и FreeIPA казались логичным выбором, но на практике часто оказывались либо сильно устаревшими, либо слишком сложными для использования.
Мы решили начать с нуля и создать службу каталогов, которая сочетала бы знакомый функционал AD с современным стеком, гибкой архитектурой и возможностью интеграции в гибридные инфраструктуры. Так началась история MULTIDIRECTORY (MD).
Почему начали с чистого листа
На старте мы рассмотрели все популярные решения — OpenLDAP, Samba AD-DC, FreeIPA, 389 Directory Server. Но у каждого из них оказались ограничения, не позволяющие построить действительно масштабируемую и отказоустойчивую систему.
Почему не Samba?
Samba — проект, глубоко осевший в эпохе Windows NT, чьи корни уходят во времена ранних версий Windows Server. Несмотря на свою популярность среди Linux-пользователей, этот инструмент имеет ряд существенных недостатков, которые делают его малопригодным для современных высоконагруженных инфраструктур:
Доменные контроллеры
Контроллеры доменов Samba спроектированы таким образом, что плохо справляются с высокими нагрузками. Это особенно заметно при увеличении числа пользователей и сервисов внутри инфраструктуры.
Масштабируемость
Расширение сети на большее количество серверов требует значительных усилий и затрат ресурсов. Добавление новых узлов — трудоёмкий процесс со сложной конфигурацией, необходимо проводить долгие настройки каждого нового элемента системы.
Устаревший стек
Проект исторически развивается на языке C и в 90-е годы это было естественным возможным решением. Сегодня такой технологический стек усложняет развитие продукта, повышает стоимость поддержки и делает внедрение современных практик безопасности и масштабирования трудоёмким. Работа с низкоуровневым кодом затрудняет быстрые изменения и интеграцию новых возможностей, тогда как современные решения требуют гибкости, модульности и расширяемости.
Почему не FreeIPA?
FreeIPA — это open-source-проект для управления пользователями, политиками и аутентификацией, ориентированный прежде всего на Linux-инфраструктуру. Он действительно закрывает многие базовые сценарии, но при этом имеет ряд архитектурных особенностей и ограничений, которые становятся серьёзным препятствием при использовании в корпоративных средах.
Плоская структура организации
В FreeIPA отсутствует привычная для многих иерархическая структура подразделений (OU), как в Active Directory. Все объекты — пользователи, группы, компьютеры — размещаются в общей плоской структуре. Это может быть удобно для простых сценариев, но становится существенным ограничением при масштабировании или необходимости разграничения прав доступа между подразделениями, филиалами или бизнес-единицами.
Производительность
Из-за сложной архитектуры и большого количества промежуточных слоёв FreeIPA работает медленнее, чем специализированные решения. Каждая операция проходит через многочисленные компоненты, что замедляет работу всей системы в целом.
Обслуживание
Обновления и поддержка становятся настоящим испытанием, поскольку изменения в одном компоненте могут привести к непредвиденным последствиям в других частях проекта. Здесь нужно поддерживать высокий уровень экспертизы инженеров.
Сложности с интеграцией
Решение FreeIPA слабо совместимо с экосистемой Windows и Active Directory. Двусторонние доверительные отношения (trust) реализованы ограниченно и нестабильно, что мешает полноценной интеграции в гибридные инфраструктуры. Настройка таких связей требует тонкой ручной работы, часто сопровождается багами и вызывает трудности при эксплуатации.
Асинхронное ядро службы каталогов MULTIDIRECTORY
Мы отказались от идеи наследовать чужой код и решили писать своё ядро на Python. У этого языка зрелая экосистема, высокая читаемость и нет санкционных рисков, как у .NET или Go-приложений.
MULTIDIRECTORY строится как модульная система с веб-интерфейсом на FastAPI и асинхронной моделью обработки запросов через asyncio. Это даёт стабильную производительность даже при высокой нагрузке.
Сервис разделён на несколько независимых компонентов — LDAP-каталог, MIT Kerberos, DNS (Bind9), Kea DHCP, SaltStack и административный API. Такое разделение упрощает масштабирование и обновление.
Схема LDAP адаптирована под Microsoft Active Directory, поэтому большинство приложений и сервисов видят MD как знакомое AD и работают без изменений. Для интеграции с внешними системами реализован REST API, который позволяет управлять пользователями, группами и политиками через стандартные HTTP-запросы, что удобно для автоматизации и внедрения в существующую инфраструктуру.
Хранение данных: PostgreSQL вместо LDAP-БД
Вместо специализированных LDAP-хранилищ мы выбрали PostgreSQL — стабильную, гибкую и хорошо поддерживаемую систему. Это позволило использовать инструменты, знакомые большинству инженеров: например, мониторинг, резервное копирование и репликацию.
Для надёжности применяется архитектура Master-Replica на базе Patroni: при сбое основного узла система автоматически переключается на резервный. Синхронная репликация исключает потерю данных, а совместимость с российскими форками (Postgres Pro, Jatoba и др.) обеспечивает локальную поддержку.
Контейнеризация и деплой
Чтобы упростить жизнь администраторам, мы упаковали MD в Docker-контейнеры. Это позволило значительно сократить время запуска инфраструктуры — теперь буквально за считанные минуты можно развернуть рабочую версию приложения на любом сервере или рабочей станции.
Преимущества подхода:
Универсальность: приложения работают на стандартной операционной системе Linux Debian, которая известна своей надёжностью и проверена временем
Простота настройки: чтобы запустить систему, нужно поменять всего один специальный файл настроек (docker-compose.yml) или создать конфигурационные файлы для управления контейнерами, например, в Kubernetes
Совместимость: MD запускается одинаково хорошо на любых компьютерах, где установлен Docker — неважно, используете вы Windows, macOS или разные версии Linux
Масштабирование: удобное масштабирование и управление с помощью Kubernetes
Единая точка истины
Вся информация в службе каталогов MULTIDIRECTORY хранится централизованно в единой базе данных, что кардинально отличается от Active Directory. В AD каждый развёрнутый контроллер домена обладает собственной базой данных, и для поддержания согласованности между ними осуществляется постоянный процесс обмена информацией (процесс репликации).
В MD всё логичнее: здесь используется единая база данных. Это упрощает администрирование системы, поскольку отсутствуют проблемы с конфликтующими версиями данных и ошибками, возникающими вследствие некорректной репликации.
Модель данных MD позволяет администраторам гибко добавлять собственные атрибуты, не ломая при этом само ядро. Такой подход повышает удобство управления системой и снижает риск возникновения ошибок при внесении изменений в схему данных.
Что MD дает инженеру
Служба каталогов MULTIDIRECTORY была создана как ответ на ограничения существующих решений вроде Samba и FreeIPA. В ней реализовано всё, что действительно нужно администраторам, без избыточной сложности.
В MD сохранён базовый функционал Active Directory, но на современном технологическом стеке с удобным интерфейсом и поддержкой двухфакторной аутентификации через решение MULTIFACTOR — оно работает для всех протоколов без внешних модулей и адаптеров.
Система устойчива к сбоям, быстро разворачивается и проста в обслуживании. Доступны две версии — Community (бесплатная версия с базовым функционалом) и Enterprise (с максимальным набором функций для организаций с повышенными требованиями к безопасности). Связаться с разработчиками и получить консультацию напрямую можно в Telegram-чате.
Что в итоге
MULTIDIRECTORY — это результат нашего решения пересобрать службу каталогов, опираясь на реальный опыт эксплуатации и современные принципы проектирования, а не просто российская замена Active Directory.
Если вы хотите мигрировать с AD, работаете с FreeIPA или просто интересуетесь архитектурой каталогов — попробуйте MD, поэкспериментируйте и расскажите в Telegram-чате, что вам показалось удачным, а что требует доработки. Обратная связь от инженеров для нас очень важна.
А если вы хотите узнать больше о продукте и увидеть его в действии, приглашаем вас 4 декабря в 11:00 (МСК) на вебинар «Твоя безопасность. Твои правила. Твой контроль. Всё о службе каталогов MULTIDIRECTORY».
В прямом эфире расскажем:
— почему сегодня важно переходить на российские решения;
— как устроена архитектура и функционал MULTIDIRECTORY в версиях Community и Enterprise;
— как работают групповые политики;
— каким образом реализована безопасность через ролевую модель;
— как управлять парольными политиками;
— и как работает 2FA на отечественных ОС.
Регистрируйтесь и подключайтесь!
Комментарии (2)

ildarz
13.11.2025 11:20В MD всё логичнее: здесь используется единая база данных.
Из разряда "как попытаться выдать недостаток за достоинство". Искренне надеюсь, что ваши специалисты на самом деле не думают, что мультимастер структура AD - это потому, что ребята не знали, как "логично" сделать.
aegoroff
Геораспределенную систему или систему работающую под большой нагрузкой в с таким подходом точно не построите, впрочем у вас питон, поэтому тут про нагрузки и говорить не приходится.