Negocie o SMB2 / 3 com um cliente Windows

2

Depois de instalar o Win10 1803 recentemente, percebi que não era mais possível acessar meus compartilhamentos de samba na minha máquina linux. Depois de algumas escavações, o SMB1 está desativado por padrão e minha máquina Linux aparentemente está usando essa como padrão.

Agora eu quero consertar isso para que meu smb-server negocie corretamente a versão com o procol mais suportado disponível. No que diz respeito aos documentos, o SMB deve suportar SMB2 e SMB3 sem problemas. Mas se eu desabilitar o SMB1 no Windows, o servidor desaparecerá completamente.

Comecei a brincar com min protocol = SMB2 , max protocol = SMB3 e protocol=SMB2 , mas sem sucesso. Neste ponto, eu joguei wireshark na mistura e notei alguns detalhes interessantes.

Não importa se desabilitei o SMB1 ou o habilitei em minha máquina windows, ele sempre envia uma solicitação de protocolo negociado smb com três dialetos suportados (encapsulados em um pacote SMB):

  • NT LM 0,12 (SMB1 / CIFS)
  • SMB 2.002
  • SMB 2.

O SMB1 é sempre parte dessa lista, não importa o quê. Não sei por que, mas não deve ser um problema se o smb escolher o dialeto suportado mais alto. Infelizmente a resposta sugere que SMB2.002 e SMB2 ??? não são reconhecidos.

Com a configuração anexada na parte inferior, recebo uma resposta de protocolo de negociação que seleciona NL LM 0.12. Se eu adicionar min protocol = SMB2 à configuração, a resposta do protocolo retornará -1 (PC NETWORK PROGRAM 1.0), o que resulta na variante de protocolo mais antiga possível. Se eu definir protocol = SMB2 para contornar as negociações completamente, o servidor envia corretamente um pacote SMB2 em vez de um SMB e define o dialeto para 0x0202 (SMB2_02) corretamente, mas o Windows ainda se recusa a trabalhar com essa versão.

Neste momento eu estou fora de idéias sobre como habilitar o suporte para uma versão do protocolo SMB que não é SMB1 entre um servidor Linux e um cliente Windows ... Se alguém tiver idéias sobre como fazê-lo funcionar corretamente, sentir livre para compartilhá-los.

Idealmente, quero apenas ajustar meu servidor, não as máquinas clientes, se possível.

Notas

Servidor:

  • Openmediavault (Debian 7)
  • smbd & nmbd v3.6.6

Cliente:

  • Win10 1803 (compilação 17134.48)
  • Recurso "Suporte para SMB1.0 / CIFS" desativado

Desativar o serviço mrxsmb10 pode ter o mesmo efeito que a desinstalação do recurso.

smb.conf

[global]
workgroup = WORKGROUP
server string = %h server
dns proxy = no
log level = 0
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
syslog only = yes
panic action = /usr/share/samba/panic-action %d
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = no
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY
guest account = nobody
load printers = no
disable spoolss = yes
printing = bsd
printcap name = /dev/null
unix extensions = yes
wide links = no
create mask = 0777
directory mask = 0777
use sendfile = yes
aio read size = 16384
aio write size = 16384
null passwords = no
local master = yes
time server = yes
wins support = yes
wins server = NAS
    
por CShark 26.05.2018 / 14:06

2 respostas

3

A versão 3.6.x do smpd não suporta o SMB3, por isso não irá reconhecê-lo. Usar max protocol = SMB2 deve ativar o suporte a SMB2, portanto, comece com ele. Se você adicionar min protocol = SMB2 , a lista ficará bastante restrita ...

O suporte LTS para o Debian 7 "Wheezy" termina em 31 de maio de 2018. Isso acontece em menos de uma semana. O Debian 9 atualizado vem com o smbd 4.5.x, e o SMB 3.0 é suportado desde o smbd 4.2. Ele suportará seu max protocol = SMB3 .

    
por 26.05.2018 / 18:43
1

@Esa Jokinen já respondeu a você e acho que a resposta dele resolverá o problema.

Deixe-me dar mais alguns detalhes, Aqui é um link para a explicação sobre como e o que você deve fazer para habilitar o SMB2 no seu Samba (3.6.x). (procure por "suporte SMB2")

Em geral, basta fazer o seguinte:

  1. Na seção smb.conf [global], adicione max protocol = SMB2
  2. Reinicie seu Samba.
por 27.05.2018 / 08:40