Выпуск 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.