Eu tenho um media-player, que costumava se conectar ao meu computador principal rodando o Samba sem problemas. Ele está executando uma versão antiga do Linux embarcado (kernel 2.6.22.19-27) e possui CIFS.
Em algum momento, depois que eu atualizei o software Samba no servidor (samba-4.6.8 rodando no FreeBSD-10.4 no momento), o player perdeu essa capacidade - ele ainda pode listar os mesmos compartilhamentos exportados, mas não pode mais abrir nada : "credenciais erradas".
Um aplicativo compatível com SMB no meu telefone abre as mesmas pastas muito bem (usando as mesmas credenciais) ...
Existe alguma opção que eu preciso ativar explicitamente o servidor para habilitar algum tipo de modo de compatibilidade com clientes antigos?
Atualização : com base na sugestão de @Tin, adicionei a seguinte linha à [global]
-seção de smb4.conf
:
max protocol = NT1
Infelizmente, isso não mudou as coisas - ainda posso me conectar da maioria dos sistemas, exceto o media player, que ainda me informa, minhas credenciais não são bons.
Usando tcpdump
no servidor capturei a seguinte troca:
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
Ao que o servidor responde:
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)
...
O cliente então diz:
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
...
e finalmente o servidor:
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
O que está acontecendo?
Update : A maneira que eu posso montar qualquer coisa é criando uma conta com senha vazia ( smbpasswd -n ...
) e editando smb.conf
para permitir null passwords
.
Meu palpite seria que a nova compilação tenha o SMB1 desativado. Verifique a configuração para uma linha semelhante a: "min protocol = SMB2".
Eu tive um resultado semelhante quando desativei o SMB1 (intencionalmente) em meus servidores domésticos. Nenhum dos players de mídia Kodi pôde se conectar e gerou um erro sobre autenticação.
Ok, aqui está uma lista de alterações nas configurações padrão introduzidas no Samba-4.5 . No meu caso, tive que alterar explicitamente uma coisa de volta para "sim" para permitir que meus players de mídia acessassem o servidor:
Com algum tempo passado na internet e experimentando várias sugestões, consegui encontrar a solução que pode me ajudar a corrigir esse problema. A solução é definir o parâmetro auxiliar, server min protocol = NT1, para o serviço SMB no FreeNAS. Depois de reiniciar o serviço SMB, tudo funcionou perfeitamente como antes.