Ошибка подключения к SMB-ресурсу из Docker-контейнера Debian из-за неправильного пароля.

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

Я пытаюсь подключить удалённый Samba-шаринг TrueNAS Scale с использованием контейнера на базе Debian, Ubuntu.

Монтирование завершается на сервере с ошибкой неправильного пароля:

  ntlm_password_check: NTLMv2 проверка пароля не удалась [2025/01/27 19:23:14.640615,  3] ../../libcli/auth/ntlm_check.c:487(ntlm_password_check)   ntlm_password_check: НИ

LanMan ни NT пароль не предоставлен для пользователя user1 [2025/01/27
19:23:14.641310, 2] ../../source3/auth/
auth.c:353(auth_check_ntlm_password) check_ntlm_password:
Аутентификация для пользователя [user1] -> [user1] завершилась ошибкой
NT_STATUS_WRONG_PASSWORD, authoritative=1 [2025/01/27 19:23:14.641418,
2] ../../auth/auth_log.c:1237(log_authentication_event_human_readable)
Auth: [SMB2,(null)] пользователь [][user1] в [Пн, 27 Янв 2025 19:23:14.641387 PST] с [NTLMv2] статусом [NT_STATUS_WRONG_PASSWORD]
рабочая станция [docker] удалённый хост [ipv4:192.168.10.38:57766] сопоставлен
[][user1]. локальный хост [ipv4:192.168.10.10:445] {“timestamp”:
“2025-01-27T19:23:14.641728-0800”, “type”: “Authentication”,
“Authentication”: {“version”: {“major”: 1, “minor”: 3}, “eventId”: 4625,
“logonId”: “0”, “logonType”: 3, “status”: “NT_STATUS_WRONG_PASSWORD”,
“localAddress”: “ipv4:192.168.10.10:445”, “remoteAddress”:
“ipv4:192.168.10.38:57766”, “serviceDescription”: “SMB2”,
“authDescription”: null, “clientDomain”: “”, “clientAccount”: “user1”,
“workstation”: “docker”, “becameAccount”: null, “becameDomain”: null,
“becameSid”: null, “mappedAccount”: “user1”, “mappedDomain”: “”,
“netlogonComputer”: null, “netlogonTrustAccount”: null,
“netlogonNegotiateFlags”: “0x00000000”, “netlogonSecureChannelType”: 0,
“netlogonTrustAccountSid”: null, “passwordType”: “NTLMv2”,
“clientPolicyAccessCheck”: null, “serverPolicyAccessCheck”: null,
“duration”: 3967}} [2025/01/27 19:23:14.642070, 3] ../../source3/smbd/
smb2_server.c:4050(smbd_smb2_request_error_ex)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1]
статус[NT_STATUS_LOGON_FAILURE] || at ../../source3/smbd/
smb2_sesssetup.c:147 [2025/01/27 19:23:14.771164, 3] ../../source3/
smbd/server_exit.c:229(exit_server_common) Server exit
(NT_STATUS_CONNECTION_RESET)

  #Мой файл compose:
    ...
        volumes:
    ...
          - originals:/usr/src/app/originals 
    ...
    volumes:
      model-cache:
      originals:
        driver_opts:
          type: cifs
          o: 'iocharset=utf8,username=user1,password=passw1,rw' 
          device: '//192.168.10.10/user1'
    ...

Проверены имя пользователя и пароль, используемые для аутентификации, – они верны.
Можно подключиться с другого сервера с помощью: smbclient //192.168.10.10/user1/ -U user1

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

Проблема авторизации при монтировании SMB-ресурса из контейнера на базе Debian действительно может быть непростой задачей, особенно если учесть, что ее сопровождает сообщение об ошибке "неверный пароль". Давайте детально разберем ситуацию и попытаемся понять, где может быть корень проблемы.

Теория

Монтирование SMB-шар на основе протокола CIFS (Common Internet File System) требует установления успешного сеанса аутентификации между клиентом и сервером. В данном случае клиент — это ваш Docker-контейнер на базе Debian, а сервер — TrueNAS Scale, предоставляющий Samba-шар. Протокол аутентификации, используемый в данном сценарии — NTLMv2 (NT LAN Manager версия 2), который в большинстве случаев обеспечивает безопасный обмен аутентификационными данными.

Ошибка в вашем положении указывает на то, что во время сверки предоставленного пароля с хранящимся на сервере возник сбой, следовательно, сервер возвращает ошибку NT_STATUS_WRONG_PASSWORD. Поскольку авторизация с прямо введенными логином и паролем через smbclient проходит успешно, стоит искать проблему в конфигурации Docker или настройках контейнера.

Пример

Рассмотрим, как может быть инициирована ошибка:

  1. Неверная кодировка строки: возможно, пароль, указанный в docker-compose файле, подвергся преобразованию или кодировке, из-за чего в виде строки он передается неверно.

  2. Неправильная передача переменных окружения: если буквы username и password пересылаются как переменные окружения Docker, убедитесь, что они корректно передаются в контейнер.

  3. Проблема с разрешениями на сервере: TrueNAS мог бы иметь специфичные настройки, требующие различных уровней аутентификации, либо сервер мог быть настроен исключительно для NTLMv1.

Применение

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

  1. Проверка файловой системы и кодировки:

    • Убедитесь, что ваш docker-compose файл сохранен в правильной кодировке (например, UTF-8). Неверная кодировка документа может исказить пароли при интерпретации.
  2. Отладочные переменные и ведение лога:

    • Включите максимальную детализацию логов на стороне TrueNAS и в Docker-контейнере. Это может помочь заметить, в какой именно момент временной линии возникает разрыв в аутентификации.
  3. Погружение в контейнер:

    • Используйте docker exec -it <container_id> /bin/bash, чтобы войти в контейнер и попытаться выполнить подключение руками с помощью smbclient. Это позволит подтвердить, что внутри контейнера всё работает корректно.
  4. Анализ и тестирование базовой конфигурации:

    • Проверьте, можете ли вы временно использовать другие варианты аутентификации или упростить настройки на стороне TrueNAS, чтобы исключить фактор серверной конфигурации. Например, разрешите LM и NTLM (устаревшие протоколы), чтобы проверить, не повлияло ли это на ваш исходный сценарий.
  5. Перепроверка driver_opts:

    • Убедитесь в правильности параметров, передаваемых в разделе driver_opts. Вероятно, использование кавычек, лишние пробелы или неправильное указание параметров могли исказить их сохранение в системе Docker.
  6. Тестирование альтернативных методов:

    • Если такая возможность имеется, попробуйте использовать другую машину/окружение для монтирования ресурса стандартным утилитами Linux, например, mount.cifs.
  7. Оптимизация настроек безопасности:

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

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