Устаревающее устройство не может получить доступ к общему ресурсу Samba после перехода с 16.04 LTS на 24.04 LTS.

Вопрос или проблема

У меня была машина с Ubuntu 16.04 LTS, использующая Samba “из коробки”, с чем-то подобным, определенным в конфигурации (и несколькими другими общими папками, но это не важно здесь):

[audio-anon]
    comment = FLAC (анонимный)
    path = /nas/nas/audio/flac
    browseable = no
    valid users = ftp

И никаких других изменений в smb.conf. Все работало отлично в течение нескольких лет.

Недавно я переустановил другую машину с Ubuntu 24.04 LTS и внес точно такое же изменение в smb.conf. Все работает отлично при подключении через какую-то машину с Windows или smbclient на другой машине с Ubuntu 16.04 LTS.

К сожалению, устаревшее устройство, над которым у меня нет контроля и о котором у меня минимальная информация, больше не может получить доступ к общей папке.

После небольших поисков и изучения журналов и т.д. я понял, что оно может использовать какой-то устаревший протокол, и поэтому я добавил все это в smb.conf в секции [global]:

   server min protocol = NT1
   lanman auth = yes
   ntlm auth = yes
   raw NTLMv2 auth = no
   client NTLMv2 auth = no
   map to guest = Bad Password
   security = user

Я не понимаю каждую часть этого, но, похоже, это “понижает” Samba-сервер до какого-то старого поведения. Увы, хотя ситуация явно улучшилась (он смог аутентифицироваться и т.д.), она затем не проходит на этом этапе в журнале уровня 5 (может быть, позже есть больше информации, но, на мой взгляд, это суть проблемы):

[2024/09/30 23:37:15.769356,  3] source3/smbd/smb1_process.c:1112(switch_message)
  switch message SMBtrans2 (pid 9725) conn 0x5e05509ec960
[2024/09/30 23:37:15.769361,  5] source3/smbd/uid.c:327(change_to_user_impersonate)
  change_to_user_impersonate: Пропуск изменения пользователя - уже пользователь
[2024/09/30 23:37:15.769370,  5] source3/smbd/uid.c:294(print_impersonation_info)
  print_impersonation_info: Выданный пользователь: uid=(122,122), gid=(0,128), cwd=[/nas/nas/audio/flac]
[2024/09/30 23:37:15.769378,  3] source3/smbd/smb1_trans2.c:2645(call_trans2qpathinfo)
  call_trans2qpathinfo: TRANSACT2_QPATHINFO: уровень = 512
[2024/09/30 23:37:15.769383,  3] source3/smbd/error.c:78(error_packet_set)
  Пакет ошибки NT на source3/smbd/smb1_trans2.c(2653) cmd=50 (SMBtrans2) NT_STATUS_INVALID_LEVEL
[2024/09/30 23:37:15.769397,  5] source3/lib/util.c:150(show_msg)
  size=35
  smb_com=0x32
  smb_rcls=72
  smb_reh=1
  smb_err=49152
  smb_flg=128
  smb_flg2=49155
  smb_tid=60757
  smb_pid=242
  smb_uid=49094
  smb_mid=291
  smt_wct=0
  smb_bcc=0

Я подозреваю, что NT_STATUS_INVALID_LEVEL все еще является результатом какой-то проблемы с устаревшим протоколом, который не разрешен в текущей версии Samba (2:4.19.5+dfsg-4ubuntu9). Но на самом деле у меня нет понятия.

Есть какие-нибудь идеи? Есть ли способ заставить новый сервер Samba вести себя как версия 16.04 LTS?

Ответ или решение

Проблема, с которой вы столкнулись, связана с изменениями в версии Samba между Ubuntu 16.04 LTS и 24.04 LTS. Вы правильно указали, что ошибка NT_STATUS_INVALID_LEVEL может быть связана с использованием устаревших протоколов, которые больше не поддерживаются в новых версиях Samba. Ниже приведены рекомендации, как можно попытаться решить эту проблему.

  1. Настройки Samba: Обновите файл конфигурации smb.conf, добавив более детальные параметры для поддержки устаревших протоколов. Попробуйте следующие настройки в секции [global]:

    [global]
        server min protocol = NT1
        client min protocol = NT1
        max protocol = SMB3
        lanman auth = yes
        ntlm auth = yes
        raw NTLMv2 auth = no
        client NTLMv2 auth = no
        map to guest = Bad Password
        security = user
        smb encrypt = disabled

    Обратите внимание, что client min protocol и параметры шифрования могут помочь, если ваше legacy устройство не поддерживает новые протоколы.

  2. Уровни доступа: Проверьте, какие уровни доступа на вашем устройстве. Возможно, ваше устройство ожидает, что сервер Samba поддерживает определенные функции. Для этого попробуйте установить более низкие уровни доступа с помощью:

    [global]
        ntlm auth = yes
        lanman auth = yes
        client NTLMv2 auth = no
  3. Логи Samba: Уровень логирования в Samba можно увеличить для дальнейшей диагностики. Установите уровень логирования на log level = 3 или log level = 5 для получения более подробной информации о происходящих процессах. Это можно сделать, добавив или изменив строку в секции [global]:

    log level = 3
  4. Тестирование: После внесения изменений вам необходимо перезапустить службу Samba, чтобы изменения вступили в силу:

    sudo systemctl restart smbd
    sudo systemctl restart nmbd
  5. Управление пользователями: Убедитесь, что учетная запись пользователя ftp действительно существует на системе и имеет необходимые права на доступ к каталогу /nas/nas/audio/flac.

  6. Проверка совместимости: Если проблема не решилась, возможно, стоит рассмотреть возможность использования более старой версии Samba, которая соответствует Ubuntu 16.04, для тестирования на отдельной машине или виртуальной среде. Это может помочь выявить различия в конфигурации и поддерживаемых функциях.

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

Оцените материал
Добавить комментарий

Капча загружается...