У меня есть медиаплеер, который без проблем подключался к моему основному компьютеру, на котором запущена Samba. Он работает под управлением старой версии встроенного Linux (ядро 2.6.22.19-27) и имеет CIFS.
В какой-то момент, после того, как я обновил программное обеспечение Samba на сервере (сейчас samba-4.6.8 работает на FreeBSD-10.4) ), игрок потерял эту способность - он все еще может перечислить те же экспортированные общие ресурсы, но больше не может открывать что-либо: «неправильные учетные данные».
Приложение с поддержкой SMB на моем телефоне те же папки открываются нормально (с использованием тех же учетных данных) ...
максимальный протокол = NT1
К сожалению, это ничего не изменило - я все еще могу подключиться к большинству систем , кроме медиаплеера, который все еще говорит мне, что мои учетные данные не годятся.
Использование tcpdump
на сервере я записал следующий обмен:
SMB PACKET: SMBnegprot (REQUEST)
SMB Command = 0x72
Error class = 0x0
Error code = 0 (0x0)
Flags1 = 0x0
Flags2 = 0x1
Tree ID = 0 (0x0)
Proc ID = 1283 (0x503)
UID = 0 (0x0)
MID = 1 (0x1)
Word Count = 0 (0x0)
smb_bcc=12
Dialect=NT LM 0.12
На что сервер отвечает:
SMB PACKET: SMBnegprot (REPLY)
SMB Command = 0x72
Error class = 0x0
Error code = 0 (0x0)
Flags1 = 0x80
Flags2 = 0x3
Tree ID = 0 (0x0)
Proc ID = 1283 (0x503)
UID = 0 (0x0)
MID = 1 (0x1)
Word Count = 17 (0x11)
NT1 Protocol
DialectIndex=0 (0x0)
SecMode=0x3
MaxMux=50 (0x32)
NumVcs=1 (0x1)
MaxBuffer=16644 (0x4104)
RawSize=65536 (0x10000)
SessionKey=0xA4AA
Capabilities=0x80F3FD
ServerTime=Sun Oct 1 18:00:38 2017
TimeZone=240 (0xf0)
CryptKey=Data: (1 bytes)
...
Затем клиент говорит:
SMB PACKET: SMBsesssetupX (REQUEST)
SMB Command = 0x73
Error class = 0x0
Error code = 0 (0x0)
Flags1 = 0x0
Flags2 = 0x1
Tree ID = 0 (0x0)
Proc ID = 1283 (0x503)
UID = 0 (0x0)
MID = 2 (0x2)
Word Count = 13 (0xd)
Com2=0xFF
Res1=0x0
Off2=0 (0x0)
MaxBuffer=16644 (0x4104)
MaxMpx=50 (0x32)
VcNumber=0 (0x0)
SessionKey=0x0
CaseInsensitivePasswordLength=24 (0x18)
CaseSensitivePasswordLength=24 (0x18)
Res=0x0
Capabilities=0x80D0DC
Pass1&Pass2&Account&Domain&OS&LanMan=
smb_bcc=179
...
и, наконец, сервер:
SMB PACKET: SMBsesssetupX (REPLY)
SMB Command = 0x73
Error class = 0x6D
Error code = 49152 (0xc000)
Flags1 = 0x80
Flags2 = 0x3
Tree ID = 0 (0x0)
Proc ID = 1283 (0x503)
UID = 0 (0x0)
MID = 2 (0x2)
Word Count = 0 (0x0)
NTError = STATUS_LOGON_FAILURE
smb_bcc=0
Что происходит?
Обновление : Я могу смонтировать что угодно, создав учетную запись с пустым паролем ( smbpasswd -n ...
) и отредактировав smb.conf
, чтобы разрешить пустые пароли
.
Хорошо, вот список изменений в настройках по умолчанию, представленных в Samba-4.5 . В моем случае мне пришлось явно изменить одно значение обратно на «да», чтобы мои медиаплееры могли получить доступ к серверу:
[global]
ntlm auth = yes
Думаю, в новой сборке отключен SMB1. Найдите в конфигурации строку, похожую на: «min protocol = SMB2».
У меня был аналогичный результат, когда я отключил SMB1 (намеренно) на своих домашних серверах. Ни один из медиаплееров Kodi не смог подключиться и выдал ошибку аутентификации.
Проведя некоторое время в Интернете и опробовав различные предложения, мне удалось найти решение, которое поможет мне решить эту проблему. Решение состоит в том, чтобы установить вспомогательный параметр, минимальный протокол сервера = NT1, для службы SMB в FreeNAS. После перезапуска службы SMB все работало без проблем, как и раньше.