Quero verificar a versão do dialeto nas conexões SMB.
No Windows, Get-SmbConnection
vai obtê-lo.
PS C:\Windows\system32> Get-SmbConnection
ServerName ShareName UserName Credential Dialect NumOpens
---------- --------- -------- ---------- ------- -------
savdal08r2 c$ SAVILLTEC... SAVILLTEC... 2.10 1
savdalfs01 c$ SAVILLTEC... SAVILLTEC... 3.00 1
no macOS, smbutil statshares -a
funciona bem.
O que devo fazer no Linux?
Se você estiver executando um servidor Samba no Linux,
smbstatus
deverá mostrar a versão do protocolo utilizada por cada cliente.Se o Linux é o cliente, isso depende de qual cliente você está usando: se você está usando o
cifs
suporte ao sistema de arquivos no nível do kernel, em todos os kernels, exceto nos bastante novos, a resposta foi/proc/mounts
verificar se as opções de montagem para isso sistema de arquivos incluem umavers=
opção; se não, suponha que ele usa SMB 1.A negociação automática do protocolo SMB no suporte CIFS/SMB no nível do kernel é um desenvolvimento bastante recente
e, até onde sei, se você não especificar a versão do protocolo desejada, a negociação automática indicará o resultado apenas se você ativar as mensagens de depuração CIFS.mas felizmente os desenvolvedores fizeram isso para que o resultado da negociação sempre seja mostrado em formato/proc/mounts
.Se você usa
smbclient
ou outros clientes SMB/CIFS de espaço de usuário (por exemplo, um integrado ao seu ambiente de desktop), ele pode ter suas próprias ferramentas e diagnósticos.Você pode usar um script que vem com o nmap. nmap/Zenmap(GUI) permitirá que você escaneie um único dispositivo ou intervalo de sub-rede (sua rede doméstica ou de escritório) e tente mostrar quais protocolos SMB estão em uso.
O grande ponto aqui é deixar de usar o SMBv1 devido a questões de segurança. Também é conhecido como ' NT LM 0.12 ' Zenmap está disponível para a maioria das principais plataformas.
Usar
smbstatus
>>https://www.samba.org/samba/docs/current/man-html/smbstatus.1.html
Saída de exemplo: