Выпуск Samba 4.9.0

После шести месяцев разработки подготовлен релиз Samba 4.9.0, продолживший развитие ветки Samba 4 с полноценной реализацией контроллера домена и сервиса Active Directory, совместимого с реализацией Windows 2000 и способного обслуживать все поддерживаемые Microsoft версии Windows-клиентов, в том числе Windows 10. Samba 4 является многофункциональным серверным продуктом, предоставляющим также реализацию файлового сервера, сервиса печати и сервера идентификации (winbind).

Ключевые изменения в Samba 4.9:

  • Реализован плагин локальной авторизации для MIT Kerberos, который через winbind управляет взаимодействием между пользователем в Kerberos и учётной записью в Active Directory. На входе указывается пользователь (principal) Kerberos и имя локальной учётной записи, после чего определяется их соответствие и выдаётся канонизированный вариант (например, пользователь зашёл как «alice», а samAccountName выставлен в «ALICE», для Kerberos будет возвращено имя «ALICE»);
  • Добавлена поддержка аудита базы данных sam.ldb. Для ведения лога операций с БД предложены отладочные класс классы «dsdb_audit» и «dsdb_json_audit», а также классы «dsdb_transaction_audit» и «dsdb_transaction_json_audit» для ведения лога принятых и отклонённых транзакций;
  • Добавлена поддержка аудита операций изменения пароля в AD DC. Ведение лога смены паролей включается при помощи новых отладочных классов «dsdb_password_audit» и «dsdb_password_json_audit»;
  • Добавлена поддержка аудита операций изменения принадлежности пользователей к группе, которая включается через отладочные классы «dsdb_group_audit» и «dsdb_group_json_audit»;
  • Обеспечено сохранение в логе (только для формата JSON) продолжительности стадии аутентификации для NTLM и Kerberos KDC;
  • В модуле аудита файловой системы vfs_full_audit с «all» на «none» изменён используемый по умолчанию набор отслеживаемых успешных и не успешных операций (т.е. по умолчанию теперь не выполняется отслеживание, что помогает защититься от потенциальных DoS-атаки через подключения данного модуля к объектам VFS). Кроме того, в модули vfs_audit, vfs_ext_audit и vfs_full_audit добавлена поддержка всех корректных объектов syslog;
  • Добавлена новая команда «net ads setspn» для управления Windows SPN (Service Principal Names) в Active Directory. По функциональности команда близка к утилите 'setspn.exe' и также позволяет добавлять, удалять и просматривать список Windows SPN, хранимый в объекте Computer из Windows AD;
  • Расширена функциональность команды 'net ads keytab'. Изменено поведение подкоманды «net ads keytab add», которая больше не преобразует переданный класс сервиса (nfs, html и т.п.) в Windows SPN, добавляемый в объект Computer в Windows AD. По умолчанию теперь изменения ограничиваются файлом keytab. Для воссоздания старого поведения добавлена новая подкоманда 'add_update_ads', а также предложено использовать отдельную команда 'net ads setspn add' для внесения изменений в Windows SPN;
  • Для сборки Samba AD DC по умолчанию теперь требуется наличие библиотеки Jansson. При сборке без AD DC (»--without-ad-dc») от данной зависимости можно отказаться передав в configure параметр »--without-json-audit»;
  • Реализован новый экспериментальный бэкенд LDB на базе библиотеки LMDB, позволяющих создавать БД больше 4 Гб. Для включения нового бэкенда следует использовать опцию »--backend-store=mdb». Для сборки требуется наличие версии lmdb выше 0.9.16;
  • Добавлена поддержка объектов установки паролей (PSO — Password Settings Objects или FGPP — Fine-Grained Password Policies). PSO позволяет для отдельных пользователей или групп переопределить правила установки пароля, заданные в Active Directory. Например, для выборочных пользователей можно потребовать установки более длинных паролей или отменить ограничения по сложности пароля. Настройка PSO выполняется командой 'samba-tool domain passwordsettings pso';
  • Добавлена команда 'samba-tool domain backup online' для созданий файла с резервной копией БД для указанного домена Active Directory, а также команда и 'samba-tool domain backup restore' для восстановления состояния сервисов Samba на основе ранее сохранённого бэкапа.
  • Добавлена базовая поддержка переименования доменов Samba. Переименование производится в два шага: вначале для клонирования БД домена запускается команда 'samba-tool domain backup rename', а затем полученный файл с резервной копией БД восстанавливается под новым именем домена при помощи команды 'samba-tool domain backup restore';
  • Добавлены новые возможности для диагностики проблем при репликации DRS: В команду 'samba-tool drs showrepl' добавлена опция »--summary» для вывода водки о работоспособности репликации. Реализована новая команда 'samba-tool visualize uptodateness' для визуализации задержек при репликации;
  • В команду 'samba-tool computer' добавлена возможность манипуляции учётными записями в объекте Computer, в том числе создания нового экземпляра объекта и инициирование сброса пароля. Данные операции допускают введение сервера или рабочей станции в домен Samba AD в режиме offline;
  • Добавлена новая команда 'samba-tool ou' для управления организационными единицами (OU — Organizational Units). Поддерживаются подкоманды create, delete, move, rename, list и listobjects для создания, удаления, перемещения, переименования OU, а также вывода списка OU и находящихся в них объектов. Кроме того добавлены отдельные команды samba-tool для управления пользователями и группами: «group move» и «user move» для перемещения пользователя в организационную единицу, «user show» для показа привязанных к пользователю объектов AD;
  • Утилита для тестирования производительности 'traffic_reply' адаптирована для применения с Microsoft Windows AD, а не только с Samba AD;
  • При выполнении операции 'samba-tool domain demote' по умолчанию и в режиме '--remove-other-dead-server' теперь осуществляется чистка записей в DNS. Дополнительно для автоматической чистки записей в DNS можно использовать команду 'samba-tool dns cleanup';
  • Значительно увеличена производительность работы команды 'samba-tool ntacl sysvolreset';
  • Обеспечено тестирование Samba с использованием системы непрерывной интеграции на базе GitLab;
  • Добавлена поддержка очистки записей динамически заведённых в DNS после определённого времени их неактивности. Режим чистки включается в smb.conf при помощи директивы «dns zone scavenging = yes»;
  • Улучшена поддержка доверенных доменов и лесов (Trusted Domain и Trusted Forest). Поддержка внешних доверенных доменов и переходных доверенных лесов для аутентификации Kerberos и NTLM теперь поддерживается в обоих направлениях (inbound и outbound). Добавлена возможность добавления пользователей и групп из доверенных доменов в группы доменов. Обеспечено автоматическое создание объектов foreignSecurityPrincipal (FPO), когда в группу добавляются члены доверенных доменов и лесов. В команде 'samba-tool group *members' теперь допустимо указывать внешние SID-идентификаторы членов групп;
  • Полностью переработана конфигурация CTDB. Опции фонового процесса и утилит теперь задаются в новом файле конфигурации ctdb.conf. Настройки, определяющие параметры запуска задаются в специфичных для дистрибутивов файла конфигурации (см. man ctdb.sysconfig). Параметры для тюнинга загружаются из файла ctdb.tunables (указание CTDB_SET_TunableVariable=value в основной конфигурации больше не поддерживается). Удалены или изменены многие опции ctdbd, настройки ctdbd.conf и скрипты обработки событий.

    Скрипты обработки событий перемещены в каталог scripts/legacy, а скрипты вывода уведомлений в каталог scripts/notification. Все скрипты должны поставляться с расширением ».script». Скрипты обработки событий больше не настраиваются в общем конфигурационном файле, а указываются индивидуально для каждого скрипта (например, для скрипта 50.samba создаётся файл конфигурации 50.samba.options, а для общих настроек используется файл script.options).

  • Команда 'samba_gpoupdate' переименована в 'samba_gpupdate', а синтаксис её вызова приближен к аналогичной утилите для Windows.

© OpenNet