У меня есть медиаплеер, который без проблем подключался к моему основному компьютеру с Samba. Он работает под управлением старой версии встроенного Linux (ядро 2.6.22.19-27) и имеет CIFS.
В какой-то момент, после того как я обновил программное обеспечение Samba на сервере (samba-4.6.8 на данный момент работает на FreeBSD-10.4), игрок потерял эту способность - он все еще может список те же экспортированные акции, но больше не могут открыто ничего: «неправильные учетные данные».
Приложение с поддержкой SMB на моем телефоне отлично открывает те же папки (с теми же учетными данными) ...
Есть ли какой-то вариант, который мне нужно явно включить сервер, чтобы включить какой-то режим совместимости со старыми клиентами?
Обновить: на основе предложения @Tin я добавил следующую строку в [global]
-часть smb4.conf
:
max protocol = 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
позволять null passwords
.
Я предполагаю, что в новой сборке отключен SMB1. Проверьте конфигурацию на наличие строки, подобной: "min protocol = SMB2".
У меня был аналогичный результат, когда я отключил SMB1 (намеренно) на своих домашних серверах. Ни один из медиаплееров Kodi не смог подключиться и выдал ошибку аутентификации.
Хорошо, вот список изменений в настройках по умолчанию, внесенных в Samba-4.5. В моем случае мне пришлось явно изменить одно значение обратно на «да», чтобы позволить моим медиаплеерам получить доступ к серверу:
[global]
ntlm auth = yes