[Из песочницы] Возможности и ограничения Samba 4 как контроллера домена Active Directory

0513f36eb0264222babae15974b16e57.jpg
Изначально, Samba представляла собой пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS, но, начиная с версии 4 в Samba, была реализована возможность выступать в роли контроллера домена и аналога сервиса Active Directory.

Несмотря на то, что Samba 4 является неплохим решением для замены служб Active Directory Domain Services и в ней реализована значительная часть функциональности AD, она, все же, имеет ряд существенных ограничений, которые могут стать критичными при внедрении и эксплуатации решения в продуктивной среде.

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


Устанавливая Samba и базовые сетевые службы (DNS, NTP, Kerberos…) на один из Linux-дистрибутивов вы получаете следующую функциональность:

  1. Контроллер домена Active Directory:
    •Служба Аутентификации на базе Kerberos v5;
    •LDAP-совместимая служба каталогов c возможностью репликации по DRS;
    •Сервер управления групповыми политиками;
    •DNS-сервер на базе BIND, обеспечивающий безопасную динамическую регистрацию имен.
  2. Файловый сервер.
  3. Сервер печати.


Благодаря преемственности в подходах к реализации службы каталога Active Directory (разработчики Samba использовали открытые спецификации Microsoft), клиентами домена на базе Samba могут быть рабочие станции с операционными системами Microsoft Windows XP-2012R2. В качестве инструментов управления доменными службами Active Directory, реализованными на Samba, могут быть использованы привычные системным администраторам Microsoft Remote Server Administration Tools.

Кроме того, Samba является программным обеспечением с открытым исходным кодом и распространяется по лицензии GPL, а это в конечном счете позволяет:

  1. Снизить риски, связанные с использованием импортного программного обеспечения (для госучреждений это будет особенно актуально с первого января 2016 года).
  2. Снизить совокупную стоимость владения информационной системой.


Для небольших и средних организаций, которые планируют организовать домен для хранения и поиска информации об объектах информационных систем, а также для организаций, которые по ряду причин планируют переход на СПО, Samba может быть неплохой альтернативой Microsoft Active Directory.

Но всем ли так хороша Samba и действительно ли она позволяет полностью закрыть функционал Active Directory? Постараемся ответить на этот вопрос.


Общую информацию по ограничениям функциональности AD в реализации Samba можно найти и в вики-базе знаний на wiki.samba.org, но данные там придется собирать по крупицам, и далеко не все ограничения будут упомянуты.

Описанные ограничения, действительны для актуальной, на момент написания статьи версии Samba 4.3.1.

И так, начнем с функциональных ограничений:

Максимальный размер базы данных Samba ограничен 4 Гб


Ограничение максимального размера базы данных Samba связано с 32-битной архитектурой tdb. Для крупных организаций, c сотнями тысяч объектов в каталоге Active Dirtectory, переход на Samba может оказаться невозможным. (Кстати, информация о данном ограничении появилась 13 ноября 2015, спустя почти 3 года после выхода Samba 4.0 и то, в основном, благодаря активным обсуждениям в mailing list).

Доверительные отношения (forest/domain trust)


Наиболее полная реализация доверительных отношений появилась в версии Samba 4.3, тем не менее, в ней присутствует ряд существенных ограничений:

  • Поддерживаются только двухсторонние доверительные отношения;
  • Отсутствует функция SID Filtering, отказ от нее существенно снижает уровень безопасности при организации доверительных отношений;
  • Не поддерживается добавление пользователей или групп из доверенного домена «А» в группы домена «В». Данное ограничение делает невозможным применение Samba 4 в сколько-нибудь больших инсталляциях, требующих отношений доверия.


Поддержка многодоменной структуры/поддержка поддоменов


Поддержка многодоменной структуры отсутствует, как на уровне кода, так и на уровне базы данных Samba. Фактически, в Samba нет реализации глобального каталога (при запросе глобального каталога производится редирект в общий LDAP-каталог).

Если вы создаете поддомен на базе Samba, или вводите Samba в состав домена второго уровня, записи о других доменах и корневом домене будут потеряны, а «благодаря» ограничениям в поддержке фантомных объектов, работа в многодоменной среде может быть весьма нестабильной. К сожалению, на любые вопросы к сообществу в mailing list вы будете получать ответы типа:

«We would also like to improve Samba to scale up, and to support more diverse domain structures, but it isn’t a small task.
Sorry,»

Репликация SYSVOL


Несмотря на то, что групповые политики полноценно функционируют в Samba (за исключением политики паролей, назначаемых на конкретное организационное подразделение), из-за отсутствия поддержки протоколов DFS-R и FRS, репликацию SYSVOL придется проводить в ручном режиме, или при помощи скрипта. Информация о настройках rsync для репликации между контроллерами Samba есть на сайте wiki.samba.org.

По вопросам реализации репликации SYSVOL между Windows контроллером домена и samba — можете писать мне на почту.

Поддержка KCC


В Release notes к Samba 4.3.0 заявлено, что разработчики приблизились к реализации KCC, в соответствии с открытой спецификацией Microsoft, на деле же, стоит приготовиться к многочисленным ошибкам в журналах событий и созданию/корректировке графа репликации вручную.

Другие ограничения


  • Отсутствие полноценной поддержки RODC;
  • Отсутствие поддержки контроллеров домена на базе Windows Server 2012 и Windows 2012 R2 совместно с Samba в роли AD DC;
  • Отсутствие поддержки MIT Kerberos;
  • Проблемы в реализации модуля репликации DRS*;
  • Проблемы при репликации расширений схемы (Schema Extension) **.


*В части реализации DRS, большинство функций работает корректно, но есть ряд ограничений, с которыми можно ознакомиться на странице DRS_TODO_List.

**Несмотря на то, что расширение схемы является штатной операцией, после ее выполнения, результат может быть весьма неожиданным. Например, может появиться ошибка werr_ds_dra_schema_mismatch. Вообще, данная ошибка может возникать даже когда схемы совпадают, но раскрытие этой темы требует отдельно написанной статьи, поэтому, сейчас мы не будем заострять на этом внимание.

Стоит учитывать, что в уже реализованных функциональных модулях присутствуют баги, и судя по оживленной переписке в mailing list их весьма немало (подробнее можно почитать на сайте bugzilla.samba.org).


Помимо функциональных ограничений, у Samba AD DC также имеются ограничения, связанные с функционированием ряда приложений и служб. На тестовом полигоне мной были протестированы некоторые базовые инфраструктурные сервисы. С результатами тестирования можно ознакомиться ниже.

Все приложения были протестированы в базовой конфигурации. Глубокий анализ природы возникновения ошибок не проводился.

Приложение Результат тестирования Перечень проверок
Microsoft Exchange Server 2003/2010/2013 Не поддерживается* Установка
Запуск служб
Microsoft SQL Server 2012R2 Поддерживается Установка (в том числе и в отказоустойчивой конфигурации с Failover cluster)
Создание групп доступности
Аутентификация пользователей
Citrix Xen App 6.5 Поддерживается* Установка
Запуск опубликованного приложения
Применение политик Citrix
Применение перемещаемых профилей пользователей
Microsoft System Center Configuration Manger 2007 Поддерживается* Установка
Функционал отчетности
Удаленный доступ к рабочему столу


*Комментарии:

  • Microsoft Exchange Server 2003/2010/2013


После установки Exchange могут возникнуть проблемы с репликацией. Службы, необходимые для функционирования Exchange, у меня не запустились. Подробнее с проблемой можно ознакомиться по следующим ссылкам Ссылка 1 и Ссылка 2.

  • Citrix Xen App 6.5


После успешной установки Citrix Xen App, у меня возникли проблемы с репликацией, проблема оказалась в некорректном регистре для записи SPN (с описанием похожей проблемы можно ознакомиться тут).

  • Microsoft System Center Configuration Manger 2007


Удаленный доступ к рабочему столу у меня так и не заработал из-за ошибки идентификации в DCOM.

В целом, приложения, которые используют Active Directory исключительно для аутентификации, должны работать в домене под управлением Samba без особых проблем, но протестировать их работу на полигоне все же стоит.


Если подвести итог, получается, что у Samba AD DC имеется довольно много ограничений, которые могут стать серьезной проблемой при крупных внедрениях. В тоже время Samba, на текущий момент, является наиболее зрелой открытой заменой Active Directory и службы каталогов в целом. Решение активно развивается благодаря наличию коммерческой поддержки со стороны зарубежных компаний, а также интеграции с облачными сервисами (использование Samba в Amazon) и интересу к продукту со стороны интеграторов — все это дает основание надеяться на скорейшее разрешение всех имеющихся проблем и доработку необходимой функциональности.

© Habrahabr.ru