Исследование проблемы поиска КД MS AD в доверительных отношениях с доменами FreeIPA и определение метода обнаружения КД MS AD через DNS и CLDAP (Иван Крюков, OSDAY-2025) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
Предлагаем решение из двух ключевых этапов.
* полностью отключить NetBIOS и перейти на поиск через DNS SRV-записи, включающий получение доменного имени, извлечение данных о контроллерах домена и проверку их доступности через CLDAP-запросы.
* для оптимизации процесса в Samba вводится параметр со списком гарантированно доступных контроллеров домена, что предотвращает бесконечные попытки соединения с недоступными узлами и снижает нагрузку на сеть.
Предложенные решения не только устраняют зависимость от устаревших технологий, но и повышают эффективность взаимодействия между различными системами, что особенно важно для интеграции Unix-решений, таких как AstraLinux, в среды с MS AD.
</blockquote>
{{VideoSection}}
{{vimeoembed|1096505361|800|450}}
<!-- {{youtubelink|}} -->
== Thesis == | |||
Версия 08:23, 26 июня 2025
- Докладчик
- Иван Крюков
Тема — поиск контроллеров домена Microsoft Active Directory (MS AD) в среде Linux-систем, использующих службу каталогов ALD Pro (AstraLinux Directory Pro). Основная сложность — в устаревшем механизме поиска через протокол NetBIOS, который вызывает зацикливание и ошибки. Это особенно актуально при работе с компонентами Samba, где служба winbindd по умолчанию полагается на NetBIOS, что не соответствует современным доменным средам.
Предлагаем решение из двух ключевых этапов.
- полностью отключить NetBIOS и перейти на поиск через DNS SRV-записи, включающий получение доменного имени, извлечение данных о контроллерах домена и проверку их доступности через CLDAP-запросы.
- для оптимизации процесса в Samba вводится параметр со списком гарантированно доступных контроллеров домена, что предотвращает бесконечные попытки соединения с недоступными узлами и снижает нагрузку на сеть.
Предложенные решения не только устраняют зависимость от устаревших технологий, но и повышают эффективность взаимодействия между различными системами, что особенно важно для интеграции Unix-решений, таких как AstraLinux, в среды с MS AD.
Содержание
Видео
Thesis
История использования NetBIOS в службах каталога
Active Directory (далее AD) – одна из самых распространенных служб каталога в настоящее время. С момента своего возникновения в рамках ОС Windows 2000 Server Edition, в ней используется протокол NetBIOS. Однако в начале 2000-х годов NetBIOS начинает активно замещаться целым набором технологий, таких как DNS, LDAP, Kerberos, в силу наличия уязвимостей и ограниченной масштабируемости NetBIOS.
В настоящее время протокол NetBIOS применяется как в Active Directory для поддержки обратной совместимости с более ранними версиями продукта, так и в Samba – программном пакете для Unix-подобных систем, обеспечивающем взаимодействие с доменами AD.
В реализации службы каталога ALD Pro (сокр. AstraLinux Directory Pro) для взаимодействия с контроллерами домена (далее КД) AD также применяются компоненты Samba, и, как следствие, используются те же зависимости.
Проблема поиска КД в доменах ALD Pro
Одним из ключевых компонентов Samba, обеспечивающим взаимодействие с КД AD, является служба winbindd. Эта служба выполняет следующие функции: разрешение NetBIOS-имен, преобразование идентификаторов SID в Unix-идентификаторы (и обратно), а также интеграцию модуля PAM (Pluggable Authentication Module) с различными механизмами аутентификации в домене, включая NTLM и Kerberos. Winbindd позволяет Unix-системам полноценно работать в домене как в роли клиента, так и в роли контроллера домена.
При использовании базовых настроек NetBIOS не отключен и поиск КД происходит по NetBIOS-имени КД. Однако возникает проблема зацикливания поиска и выдача ошибки ненахождения искомых КД.
Решение проблемы поиска КД и его эффективности
Решением проблемы стало блокирование протокола NetBIOS на уровне конфигурации Samba и его замена на алгоритм поиска по DNS SRV-записей КД в рамках заданного домена (поиск КД по DNS):
- Получение полного имени домена через DNS-запрос res_query;
- Обработка результатов запроса и вычленение имен КД;
- Обращение к КД с использованием протокола CLDAP для определения его досягаемости.
Использование CLDAP вместо LDAP обусловлено тем, что CLDAP использует анонимный запрос только к RootDSE записи верхнего уровня, который не требует авторизации запрашивающей стороны.
Однако возникла дополнительная проблема – возникают ситуации, когда в рамках одного домена некоторое подмножество КД доверенного домена в силу некоторых причин может находиться вне зоны досягаемости. Это заставляет winbindd бесконечно искать такие утерянные КД, с которыми ранее уже было установлено соединение, что тратит ресурсы КД и значительно засоряет трафик.
Решением такой проблемы является создание в Samba отдельного параметра, который включает в себя список КД различных доменов, которые с высокой вероятностью доступны в сети постоянно:
- Считывание списка КД из параметра: формирование иерархического списка “список доменов – подсписок КД”;
- Обращение к домену из базы данных доверенных доменов;
- Поиск доступных КД:
- Если для домена существует список доступных КД – ищем только их, используя описанный ранее “поиск КД по DNS”;
- Иначе используем описанный ранее “поиск КД по DNS” для всех КД, которые можем найти.
Вывод
Изоляция между доменами при установлении ДДО обеспечивается за счет механизмов аутентификации и авторизации (например Kerberos), групповых политик и списков контроля доступа ACL (анал. Access Control List). В случае некорректной работы методов и алгоритмов поиска КД доверенных доменов механизмы изоляции могут сообщать о недоступности некоторых пользователей и служб к различным ресурсам доверенных доменов.
Таким образом, работа механизмов изоляции становится некорректной, так как потеряна связь с уже имеющимися доверенными доменами, и, следовательно, информация об имеющихся ресурсах и доступах между доменами не поступает.
Найденное в исследовании решение позволяет обойти недостатки протокола NetBIOS, освобождает ресурсы КД при обращении к КД доверенных доменов, находящихся вне зоны досягаемости и позволяет сохранить корректную работу механизмов изоляции.
Презентация
Примечания и ссылки
