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