Вопрос или проблема
Я пытаюсь получить доступ к общему ресурсу Windows Server 2019 (внутри домена) с хоста CentOS6.
Я могу просматривать общий ресурс через smbclient, но монтирование завершается неудачей:
Код статуса, возвращенный 0xc000006d NT_STATUS_LOGON_FAILURE CIFS VFS: Ошибка отправки в SessSetup = -13 CIFS VFS: cifs_mount завершился неудачей с кодом возврата = -13
Сторона Windows сообщает о следующем (из Просмотрщика событий):
Попытка входа в систему не удалась.
Субъект:
Идентификатор безопасности: NULL SID
Имя учетной записи: -
Домен учетной записи: -
Идентификатор входа: 0x0
Тип входа: 3
Учетная запись, для которой попытка входа провалилась:
Идентификатор безопасности: NULL SID
Имя учетной записи: [ПОЛЬЗОВАТЕЛЬ]
Домен учетной записи: [ДОМЕН]
Информация о сбое:
Причина сбоя: Неизвестное имя пользователя или неверный пароль.
Статус: 0xC000006D
Подстатус: 0xC000006A
Информация о процессе:
Идентификатор вызывающего процесса: 0x0
Имя вызывающего процесса: -
Информация сети:
Имя рабочей станции: \\[IP]
Исходный сетевой адрес: [IP]
Исходный порт: 46041
Подробная информация об аутентификации:
Процесс входа: NtLmSsp
Пакет аутентификации: NTLM
Перешедшие услуги: -
Имя пакета (только NTLM): -
Длина ключа: 0
Тем не менее, учетные данные абсолютно верны – я также пробовал создать абсолютно нового пользователя, но возникла та же ошибка.
Я не совсем уверен, как это диагностировать – помощь будет очень полезна.
Спасибо!
Какую версию samba вы установили?
Запрос через rpm -qa | grep samba
Убедитесь, что у вас установлена samba4.
Я предполагаю, что проблема связана с версией протокола SMB, которую клиент пытается использовать при подключении. SMB версия 1 теперь отключена по умолчанию на Windows Server 2019. Я не рекомендую ее включать.
Вот пример добавления отладки. Сосредоточьтесь на опции -d10.
smbclient -U user //10.0.0.20/shares password -d10
Обратите внимание, что для подключения к серверу Windows 2012 с зашифрованным трафиком необходимо выбрать максимальный протокол SMB3.
smbclient -m SMB3 -U user //10.0.0.20/shares password -d10
Узнайте, какую версию SMB вы используете на файловом сервере Windows. SMBv1, вероятно, отключен по умолчанию
Запустите: Get-SmbServerConfiguration
в powershell на сервере.
Это даст вам информацию о сервере smb.
Запустите Get-SmbConnection
в powershell, чтобы увидеть текущие подключения на сервере
PS C:\Windows\system32> Get-SmbConnection
PS C:\Windows\system32> Get-SmbConnection
ИмяСервера ИмяОбщегоРесурса ИмяПользователя УчетныеДанные Диалект ЧислоОткрытий
---------- --------- -------- ---------- ------- --------
localhost IPC$ TEST\bit TEST\bit 3.1.1 0
Посмотрите информацию по устранению неполадок https://docs.microsoft.com/en-us/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3
Попробуйте клиент cifs
Посмотрите информацию о версиях SMB https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/mounting_an_smb_share
Ответ или решение
Подключение к SMB-ресурсу Windows: Решение проблемы с mount.cifs
Введение
При работе с общими ресурсами Windows из систем на базе Linux возникают ситуации, когда подключение через smbclient
успешно, а попытка монтирования через mount.cifs
завершается ошибкой. Вопрос, описанный вами, является распространенной проблемой, особенно при взаимодействии с Windows Server 2019, который использует более современные версии протокола SMB. Давайте рассмотрим, как диагностировать и решить эту проблему.
Устранение неполадок
1. Проверка версии Samba
Прежде всего, необходимо удостовериться, что на вашем CentOS 6 установлен актуальный пакет Samba. Для этого выполните команду:
rpm -qa | grep samba
Убедитесь, что у вас установлена версия Samba 4 или выше, так как более ранние версии могли бы не поддерживать требуемые протоколы.
2. Протокол SMB
Основная причина возникновения ошибки NT_STATUS_LOGON_FAILURE
может заключаться в том, что клиент пытается использовать протокол SMB версии 1, который по умолчанию отключен на Windows Server 2019. Для диагностики версии SMB на сервере выполните команду в PowerShell:
Get-SmbServerConfiguration
Эта команда покажет вам разрешенные версии протокола SMB на сервере.
3. Проверка подключения через smbclient
Для проверки того, с какой версией протокола подключается ваш клиент (smbclient), вы можете использовать следующую команду с повышенным уровнем отладки:
smbclient -m SMB3 -U user //10.0.0.20/shares password -d10
Этот анализ поможет понять, какая версия протокола используется, и если происходит ошибка, то где именно.
4. Монтирование с учетом версии протокола
Для успешного монтирования общих ресурсов SMB необходимо явно указать версию протокола, который будет использован. Попробуйте выполнить команду монтирования с указанием версии:
mount.cifs //10.0.0.20/shares /mnt/point -o user=youruser,vers=3.0
5. Проверка прав доступа
Удостоверьтесь, что у пользователя, под которым вы пытаетесь выполнить подключение, действительно имеются права на доступ к общему ресурсу на сервере. Можно использовать информацию из Windows Event Viewer, чтобы подтвердить, что логин происходит с правильными учетными данными.
6. Учетные данные
Если вы уверены, что учетные данные верные, проверьте, нет ли специальных параметров при подключении. Например, необходимо убедиться, что вы используете следующее:
-o domain=YOURDOMAIN
Также имеет смысл попробовать передать учетные данные в файле:
mount.cifs //10.0.0.20/shares /mnt/point -o credentials=/path/to/credentials,vers=3.0
Файл должен содержать:
username=youruser
password=yourpassword
domain=YOURDOMAIN
Заключение
Проблемы с монтированием SMB-ресурсов из Linux на Windows Server могут быть связаны с множеством факторов. Основное внимание следует уделить версии протокола SMB, правам доступа, а также корректности учетных данных. Придерживаясь предложенных шагов, вы сможете успешно настроить монтирование SMB-ресурса и избежать ошибок, связанных с авторизацией.
При возникновении трудностей не стесняйтесь обращаться за дополнительной помощью, и обеспечьте, чтобы все системные обновления и патчи были установлены как на клиенте, так и на сервере.