После шести месяцев разработки увидел свет значительный выпуск Samba 4.4.0, продолживший развитие ветки Samba 4 с полноценной реализацией контроллера домена и сервиса Active Directory, совместимого с реализацией Windows 2000 и способного обслуживать все поддерживаемые Microsoft версии Windows-клиентов, в том числе Windows 10. Samba 4 является многофункциональным серверным продуктом, предоставляющим также реализацию файлового сервера, сервиса печати и сервера идентификации (winbind).
Ключевые изменения в Samba 4.4:
- Экспериментальная поддержка многоканального расширения SMB3 (протокол SMB3 Multi-Channel), позволяющего клиентам устанавливать несколько соединений для распараллеливания передачи данных в рамках одного SMB-сеанса. Например, при обращении к одному файлу операции ввода/вывода могут распределяться сразу по нескольким открытым соединениям. Данный режим позволяет повысить пропускную способность и увеличить устойчивость к сбоям. Для включения SMB3 Multi-Channel в smb.conf следует установить опцию "server multi channel support", которая отключена по умолчанию. Так как режим ещё не полностью протестирован на системах с большой нагрузкой и может содержать недоработки, его не рекомендовано использовать в рабочих конфигурациях;
- Поддержка асинхронной обработки flush-запросов от клиентов SMB2/3, которые более не блокируют обработку других запросов. Отключение асинхронного сброса буферов можно активировать при помощи опции 'strict sync';
- Переписан модуль WINS nsswitch, который переведён на использование библиотеки libwbclient для формирования WINS-запросов. Упрощён код и решены проблемы с потреблением памяти. Для разрешения WINS-имён при помощи nss_wins теперь обязателен запуск winbind (изменение не касается smbd);
- В состав включен новый модуль vfs_offline для установки для всех файлов DOS-атрибута "offline". Установка атрибута "offline" может быть полезна для шар, смонтированных поверх сетевой ФС, так как при наличии данного атрибута Windows explorer ограничивает свою активность с ФС, например, не читает содержимое изображений для генерации миниатюр;
- В smbd прекращена поддержка сборочной опции '--with-aio-support', так как разработчики отказались от POSIX-RT aio в пользу pthread_aio;
- Добавлена возможность выполнения команды "samba-tool sites" для БД на другом сервере (адрес URL LDB передаётся через опцию '-H');
- Для команды "samba-tool domain demote" реализована опция '--remove-other-dead-server', позволяющая удалить внешний нефункционирующий контроллер домена;
- Добавлена команда "samba-tool drs clone-dc-database" для реплицирования начального клона домена, без вхождения в него (команда разработана для отладочных целей);
- В утилиту pdbedit добавлена опция '--set-nt-hash', позволяющая установить пароль пользователя, указав шестнадцатеричную строку nt-hash. Посмотреть хэши паролей можно при помощи команды 'pdbedit -vw';
- Утилита smbstatus расширена возможностью показа состояния цифровых подписей и шифрования для сеансов и разделов (share);
- В smbget вместо раздельного задания имени пользователя и пароля через опции -u и -p, введена унифицированная опция "-U username[%password]";
- В s4-rpc_server добавлена реализация backupkey на базе GnuTLS;
- В ntlm_auth добавлена опция '--offline-logon', разрешающая использование прокэшированных паролей при недоступности контроллера домена.
Большая порция улучшений в компоненте CTDB, отвечающем за работу кластерных конфигураций:
- Реализована новая схема параллельного восстановления БД, позволяющая избежать взаимных блокировок в smbd и увеличивающая скорость восстановления;
- Налажена установка в произвольные директории, заданные на этапе сборки (решены проблемы при установке samba в /usr/local);
- CTDB_DBDIR может принимать значение tmpfs[:tmpfs-options] для размещения TDB в tmpfs;
- Прекращено использование настройки CTDB_NATGW_SLAVE_ONLY, вместо которой все узлы должны полагаться на опцию "slave-only" в CTDB NAT;
- Добавлен скрипт 05.system для мониторинга за ресурсами, позволяющий отслеживать проблемы с производительностью и различные отклонения. Настройка производится через переменные CTDB_MONITOR_FILESYSTEM_USAGE, CTDB_MONITOR_MEMORY_USAGE и CTDB_MONITOR_SWAP_USAGE;
- Удалён скрипт 62.cnfs, функциональность которого доступна через штатное обращение к mmaddcallback;
- Параметр конфигурации EventScriptTimeoutCount переименован в MonitorTimeoutCount;
- В утилите ctdb прекращена поддержка опции "-n all", так как она корректно поддерживалась не во всех командах. Вместо неё следует использовать формат "ctdb ip all";
- Из поставки удалены VFS-модули vfs_smb_traffic_analyzer и vfs_scannedonly из-за отсутствия заинтересованных в их поддержке сопровождающих.
Кроме того, можно отметить анонс критической уязвимости "Badlock", которая затрагивает почти все версии Windows и Samba. Информация о проблеме и патчи для её устранения будут раскрыты 12 апреля. Проблема выявлена одним из разработчиков Samba и связана с фундаментальными проблемами протокола SMB, не специфичными для конкретных реализаций. Проблема отмечается как очень опасная, до такой степени, что Microsoft и Samba договорились выпустить обновления одновременно.
Релиз Samba 4.4.0 с поддержкой многоканального SMB3
Обновление Samba 4.3.6, 4.2.9 и 4.1.23 с устранением опасных уязвимостей