Server Message Block (SMB) é um protocolo essencial de compartilhamento de arquivos em rede que permite que usuários e aplicativos acessem arquivos, impressoras e outros recursos compartilhados por meio de uma rede. Comumente usado em ambientes Windows, o SMB facilita a comunicação contínua entre sistemas cliente e servidor. Neste artigo, vamos explorar como o SMB funciona, seus componentes, etapas comuns de solução de problemas e práticas recomendadas para resolver problemas relacionados ao SMB.
Índice
O que é SMB?
Server Message Block (SMB) é um protocolo de rede que permite que os usuários leiam, gravem e gerenciem arquivos em servidores remotos como se fossem locais. O SMB é amplamente usado em redes Windows para permitir o acesso compartilhado a arquivos, impressoras e portas seriais. Ele também é compatível com sistemas Linux e macOS, o que o torna um protocolo versátil para a comunicação entre plataformas.
Como o SMB funciona
- Solicitação do cliente: O cliente SMB (por exemplo, Windows, Linux ou macOS) envia uma solicitação ao servidor SMB para acessar um recurso compartilhado.
- Resposta do servidor: O servidor SMB valida a solicitação com base na autenticação e nas permissões.
- Acesso ao recurso: Depois que o acesso é concedido, o cliente pode ler, gravar ou modificar arquivos como se estivessem em uma unidade local.
Terminologia essencial do SMB
- Servidor SMB (SRV): O sistema que hospeda o sistema de arquivos compartilhado.
- Cliente SMB (CLI): O sistema que acessa o sistema de arquivos compartilhado.
Por exemplo, se uma máquina com Windows Server 2016 acessa o compartilhamento SMB \\MyWorkstation\Data em um computador com Windows 10, o servidor atua como cliente SMB, e a estação de trabalho é o servidor SMB.
Versões do SMB
1. SMB 1.0 (legado)
- Vulnerável a ataques como WannaCry e EternalBlue.
- Não possui recursos de segurança modernos.
2. SMB 2.0 / 2.1
- Melhor desempenho e segurança.
- Suporta tamanhos de buffer maiores para melhores taxas de transferência de dados.
3. SMB 3.0+
- Introduziu criptografia para maior segurança.
- Os recursos incluem SMB Multichannel e SMB Direct para transferências de arquivos em alta velocidade.
Componentes do SMB
1. Binários
- Binários do cliente SMB: Localizados em
%windir%\system32\Drivers:RDBSS.sysMRXSMB.sysMRXSMB10.sysMRXSMB20.sysMUP.sysSMBdirect.sys
- Binários do servidor SMB:
%windir%\system32:Srvsvc.dll%windir%\system32\Drivers:SRVNET.sys,SRV.sys,SRV2.sys,SMBdirect.sys
2. Associações
- Associação do cliente SMB:
Client for Microsoft Networks - Associação do servidor SMB:
File and Printer Sharing for Microsoft Networks

Portas e comunicação do SMB
O SMB pode operar em portas diferentes, dependendo do protocolo usado:
| Protocolo | Porta | Descrição |
|---|---|---|
| NetBIOS over TCP/IP | UDP 137 | Resolução de nomes |
| NetBIOS over TCP/IP | UDP 138 | Serviços de datagramas |
| NetBIOS over TCP/IP | TCP 139 | Serviços de sessão |
| SMB direto sobre TCP | TCP 445 | Comunicação padrão do SMB |
As redes modernas usam principalmente TCP 445, enquanto sistemas mais antigos podem depender do NetBIOS.
Como solucionar problemas de SMB
1. Verifique a conectividade
- Verifique se o cliente consegue se conectar ao servidor por meio de TCP 445:
Test-NetConnection <server_IP_or_hostname> -Port 445
- Se falhar, verifique se o Firewall do Azure, os NSGs ou os firewalls locais estão bloqueando o tráfego SMB.
2. Verifique a resolução de nomes
- Teste o acesso ao servidor por nome de host e IP:
nslookup <server_hostname>
- Se o nome de host falhar, verifique a configuração do DNS.
3. Verifique os serviços SMB
- Verifique se os serviços necessários estão em execução:
Get-Service -Name LanmanServer, LanmanWorkstation
- Inicie os serviços se estiverem parados:
Start-Service -Name LanmanServer, LanmanWorkstation

4. Verifique as regras de firewall
- Confirme se as regras de SMB estão habilitadas:
netsh advfirewall firewall show rule name="File and Printer Sharing (SMB-In)"

5. Verifique as permissões
- Verifique as permissões de compartilhamento e NTFS nas propriedades da pasta ou pelo CMD:
net share <sharename>
icacls <folder_path>


6. Teste o acesso usando um caminho UNC
- Abra
Run(Win + R) e digite:
\\<server_IP_or_hostname>\sharename
Solução de problemas avançada e coleta de dados
1. Verifique as sessões SMB
- Exiba as sessões SMB ativas:
Get-SmbSession
2. Redefina a configuração do SMB
- Desabilite e reabilite o SMB 2 e 3:
Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force
3. Rastros de rede
- Use o Wireshark para coletar pacotes de rede relacionados ao SMB:
- Comece a capturar o tráfego no cliente e no servidor SMB.
- Reproduza o problema.
- Analise os pacotes em busca de erros ou tempos limite do SMB.
4. Colete os logs de eventos
- Exporte os logs de eventos relacionados ao SMB para análise posterior:
- Logs do cliente SMB.
- Logs do servidor SMB.

Documentação de referência:
Solução de problemas avançada do Server Message Block (SMB) | Microsoft Learn
Problemas conhecidos do SMB | Microsoft Learn
Orientações para solucionar problemas de SMB – Windows Server | Microsoft Learn
Visão geral do protocolo SMB da Microsoft e do protocolo CIFS – Aplicativos Win32 | Microsoft Learn
Detectar, habilitar e desabilitar SMBv1, SMBv2 e SMBv3 no Windows | Microsoft Learn
Visão geral da assinatura do Server Message Block – Windows Server | Microsoft Learn
Aprimoramentos de segurança do SMB | Microsoft Learn
Conclusão
O SMB é um protocolo poderoso para compartilhamento de arquivos e acesso a recursos, mas pode apresentar problemas devido a configurações incorretas, restrições de rede ou componentes desatualizados. Seguindo as etapas de solução de problemas descritas acima, você pode identificar e resolver com eficácia os problemas relacionados ao SMB. Para problemas complexos, diagnósticos avançados, como rastros de rede e logs de eventos, podem fornecer informações mais detalhadas.