Обзор Avanpost DS 1.0, российской службы каталогов
Импортозамещение в Российской Федерации происходит не только в части средств защиты информации и системного программного обеспечения, но и в части обеспечивающих систем. Особенно актуально это на фоне того, что такие техногиганты, как Microsoft, постепенно прекращают свою деятельность на территории России. Очевидной тенденцией становится переход с операционных систем Windows на Linux. При этом возникает, в частности, проблема замещения Microsoft Active Directory — службы каталогов, содержащей в себе информацию о компьютерах, пользователях, контактах, принтерах и других объектах в иерархическом виде, что позволяет создавать организационные единицы, гибко управлять доступом, вести учёт активов и совершать другие необходимые действия с ними.
На отечественном рынке пока не так много продуктов, которые позволяли бы реализовать необходимые функциональные возможности в инфраструктурах на базе Linux. Одним из них является Avanpost DS, развиваемый вендором с 2020 г.
В отличие от ряда схожих продуктов, Avanpost DS не имеет в своём составе компонентов с открытым кодом, что позволяет избежать рисков появления вредоносных закладок и компрометации инфраструктур заказчиков.
Разработка ведётся с использованием высокопроизводительного технологического стека: Go / BadgerDB / Vue.js. Реализована поддержка протоколов LDAP и Kerberos v5 в соответствии со стандартами IETF. Вендор производил нагрузочное тестирование на стенде с 3,5 млн объектов, среди которых были 600 тыс. пользователей, 300 тыс. групп, 1 млн прочих объектов и 1,6 млн ключей Kerberos. Обрабатывалось более 100 тыс. запросов (50 тыс. на один контроллер домена).Введение
Рисунок 1. Итоги нагрузочного тестирования Avanpost DS
Функциональные возможности Avanpost DS
Функциональные возможности продукта нацелены на максимально удобную миграцию с привычного Active Directory с учётом особенностей Linux.
LDAP-каталог
Базовую функциональность системы обеспечивает LDAP-каталог. Благодаря этому в Avanpost DS возможно централизованное управление пользователями и компьютерами, поддерживаются авторизация доступа к ресурсам на основе групп, индексирование атрибутов, а также доменная иерархия в виде организационных единиц (Organizational Unit).
Для добавления доступны такие объекты иерархии, как контейнер, группа, рабочая станция, пользователь.
Рисунок 2. Реализация иерархии в Avanpost DS
Доменный клиент
Для автоматизации введения компьютера в домен и настройки служб SSSD и Kerberos используется специальная утилита. Доменный клиент поддерживает такие ОС, как Astra Linux, РЕД ОС, ROSA, CentOS и Alt Linux. Также возможна доработка под другие дистрибутивы Linux.
Помимо автоматизации введения компьютера в домен, доменный клиент выполняет такие функции как безопасные динамические обновления DNS-записей и обновление Kerberos-ключей по расписанию.
Функции безопасности
Для обеспечения безопасности самой системы в ней имеются такие механизмы, как ролевая модель контроля доступа, делегирование полномочий на уровне иерархии, журнал безопасности, централизованное хранение событий. Ролевая модель позволяет гранулярно выдавать необходимые доступы сотрудникам разных уровней (техническая поддержка, системные администраторы и т. д.) к объектам на разных уровнях иерархии Avanpost DS.
Так же как и в AD, в Avanpost DS используются групповые политики для управления настройками серверов и АРМ. Система реализовывает функциональность групповых политик посредством интеграции с системой управления конфигурациями (Puppet). Avanpost DS обеспечивает привязку политик к подразделениям и передаёт инструкции по применению конфигураций в Puppet. Применение политик обеспечивается клиентом системы управления конфигурацией.
Групповые политики
Базовый набор политик включает в себя парольные политики, управление доступом к съёмным носителям, подключение сетевых папок, настройки безопасности операционной системы, настройку доступов к приложениям и системным командам, настройку периферийных устройств и др. В случае необходимости расширения политик возможна загрузка собственных шаблонов конфигурации.
Рисунок 3. Схема распространения политик в Avanpost DS
Доверительные отношения
Так как процесс миграции на Linux инфраструктуру занимает значительное время, требуется поддержка периода сосуществования. Для этого в Avanpost DS ведутся работы по установлению двусторонних доверительных отношений с Microsoft Active Directory. Это позволяет плавно переносить рабочие станции, сервисы и приложения в новую инфраструктуру без прерывания обслуживания.
При миграции пользователя в Avanpost DS генерируется новый идентификатор, а старый SID копируется как значение атрибута SidHistory. При доступе к ресурсам в домене Microsoft AD авторизация происходит с использованием SidHistory.
Рисунок 4. Схема взаимодействия при доверительных отношениях в Avanpost DS
Архитектура Avanpost DS
Avanpost DS — распределенное приложение, написанное на Golang. Для хранения информации используется BadgerDB, поверх которой реализована логика LDAP хранилища. При этом база данных является встраиваемой, что отличает её от классической трёхзвенной архитектуры построения приложений. Для реализации основных функциональных возможностей в Avanpost DS используются протоколы Kerberos и LDAP. Панель администрирования в системе реализована на Vue. js, взаимодействует с сервисом через REST API.
В системе сейчас используются следующие интерфейсы и порты для них: API (443), Kerberos (88) и LDAP (369, 636). Впрочем, порты могут быть изменены в настройках системы.
Рисунок 5. Архитектура Avanpost DS
Система является клиент-серверной, клиентская часть представляет собой стандартные пакеты, входящие в состав ОС Linux: SSSD, демон аутентификации и клиентский пакет Kerberos. Также используется разработанный вендором доменный клиент для настройки этих пакетов на рабочих станциях.
Структура сайтов в Avanpost DS реализована аналогично тому, как это сделано в Microsoft AD: логическая структура соответствует месту расположения (например, в ЦОД), где хосты связаны быстрой сетью. Таким образом достигается постоянная репликация между домен-контроллерами, обеспечиваются актуальность данных на них и отказоустойчивость инфраструктуры службы каталогов.
Рисунок 6. Архитектура взаимодействия контроллеров доменов в Avanpost DS
Системные требования Avanpost DS
Для корректной работы системы предъявляется ряд требований к серверам.
ЦП — 2 вЦП
ОЗУ — 4 ГБ
Свободное место на диске — 16 ГБ, желательно SSD
Программное обеспечение — Linux (64 бита), ядро 4. x, наличие openssl, tar, sudo
Рекомендуемые аппаратные требования к серверу зависят от размера каталога, а также от интенсивности использования.
Сценарии использования Avanpost DS
Установка Avanpost DS производится путём развёртывания архива с дистрибутивом на контроллерах доменов, после чего выполняется настройка. Для администрирования системы используется веб-браузер. Avanpost DS имеет несколько режимов администрирования: «Пользователи», «Группы», «Рабочие станции», «Иерархия», «Журнал безопасности».
Управление пользователями
В этом режиме производятся создание пользователей, поиск, редактирование основных и дополнительных атрибутов, добавление и удаление пользователя из групп. При создании пользователя есть ряд обязательных атрибутов и требований к ним. Например, нужно задать пароль длиной не менее 8 символов, содержащий цифры и буквы в верхнем и нижнем регистрах.
Рисунок 7. Форма создания нового пользователя в Avanpost DS
Управление группами
Этот режим позволяет управлять группами пользователей и предоставлять им необходимые привилегии в домене. В интерфейсе системы видны названия и описания групп, доступны редактирование состава группы и поиск пользователей в ней, а также её атрибуты.
Рисунок 8. Атрибуты группы «Администратор» в Avanpost DS
Управление рабочими станциями
В режиме «Рабочие станции» возможны добавление и удаление рабочих станций, их поиск, просмотр атрибутов.
Рисунок 9. Режим «Рабочие станции» в Avanpost DS
Рисунок 10. Кнопка экспорта keytab-файла в Avanpost DS
Иерархия
Режим «Иерархия» даёт администратору наглядное представление структуры домена и возможность управления деревом каталога сервисов Avanpost DS: объектами всех типов и организационными подразделениями.
Для добавления доступны такие объекты иерархии, как контейнер, группа, рабочая станция и пользователь. Для удобства реализовано перемещение объектов между подразделениями с помощью механизма перетаскивания мышью (drag-and-drop).
Рисунок 11. Режим «Иерархия» в Avanpost DS
Выводы
Система Avanpost DS 1.0 способна в условиях импортозамещения стать полноценной заменой Microsoft Active Directory. В первую очередь этот продукт подойдёт большим компаниям с географически распределёнными инфраструктурами. Для удобства пользователей система обладает возможностью построения доменной иерархии в управляемой инфраструктуре. Немаловажной особенностью является возможность автоматического масштабирования ресурсов в случае возрастания нагрузки.
Достоинства:
- Высокая производительность.
- Собственная разработка без открытого кода.
- Гранулярная модель управления доступом.
- Масштабируемость.
- Поддержка доменной иерархии.
Недостатки:
- Отсутствие поддержки Windows-клиентов.
- Текущий релиз позволяет устанавливать доверительные отношения только с одним доменом Microsoft Active Directory.