Como detectar, habilitar e desabilitar SMBv1, SMBv2 e SMBv3 no Windows
Este artigo descreve como habilitar e desabilitar o SMB (Server Message Block) versão 1 (SMBv1), o SMB versão 2 (SMBv2) e o SMBv3 (SMB versão 3) nos componentes do servidor e do cliente SMB.
Embora desabilitar ou remover o SMBv1 possa causar alguns problemas de compatibilidade com computadores ou softwares antigos, o SMBv1 tem vulnerabilidades de segurança significativas e recomendamos que você não o use. O SMB 1.0 não é instalado por padrão em nenhuma edição do Windows 11 ou do Windows Server 2019 e posterior. O SMB 1.0 também não é instalado por padrão no Windows 10, exceto nas edições Home e Pro. Recomendamos que, em vez de reinstalar o SMB 1.0, você atualize o servidor SMB que ainda o requer. Para obter uma lista de terceiros que exigem o SMB 1.0 e as respectivas atualizações que removem o requisito, examine o Centro de roteamento de produtos do SMB1.
Desabilitar o SMBv2 ou o SMBv3 para solução de problemas
É recomendável manter o SMBv2 e o SMBv3 habilitados, mas talvez seja útil desabilitar um deles temporariamente para solucionar problemas. Para saber mais, confira Como detectar o status, habilitar e desabilitar protocolos SMB no servidor SMB.
No Windows 10, Windows 8.1, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012, desabilitar o SMBv3 desativa a seguinte funcionalidade:
- Failover Transparente – os clientes se reconectam sem interrupção aos nós de cluster durante a manutenção ou o failover
- Escalabilidade Horizontal – acesso simultâneo a dados compartilhados em todos os nós de cluster de arquivos
- Multichannel – agregação de largura de banda da rede e tolerância a falhas da rede se vários caminhos estiverem disponíveis entre o cliente e o servidor
- SMB Direct – adiciona suporte à rede RDMA para alto desempenho, com baixa latência e baixo uso da CPU
- Criptografia – Fornece criptografia de ponta a ponta e protege contra interceptações em redes não confiáveis
- Directory Leasing – melhora os tempos de resposta de aplicativos nas filiais por meio do cache
- Otimizações de desempenho – otimizações para pequenas E/S aleatórias de leitura/gravação
No Windows 7 e no Windows Server 2008 R2, desabilitar o SMBv2 desativa a seguinte funcionalidade:
- Composição de solicitação – permite o envio de várias solicitações do SMBv2 como uma única solicitação de rede
- Maiores leituras e gravações – melhor uso de redes mais rápidas
- Armazenamento em cache de propriedades de arquivo e pasta – os clientes mantêm cópias locais de pastas e arquivos
- Identificadores duráveis – permite que a conexão se reconecte de forma transparente ao servidor se houver uma desconexão temporária
- Assinatura de mensagens aprimorada – HMAC SHA-256 substitui MD5 como algoritmo de hash
- Melhor escalabilidade para compartilhamento de arquivos – aumento significante no número de usuários, compartilhamentos e arquivos abertos por servidor
- Suporte para links simbólicos
- Modelo de concessão de oplock do cliente – limita os dados transferidos entre o cliente e o servidor, melhorando o desempenho em redes de alta latência e aumentando a escalabilidade do servidor SMB
- Suporte a MTU grande – para uso completo de 10 GbE (Gigabit Ethernet)
- Eficiência energética aprimorada – os clientes que têm arquivos abertos em um servidor podem entrar em suspensão
O protocolo SMBv2 foi introduzido no Windows Vista e no Windows Server 2008, enquanto o protocolo SMBv3 foi introduzido no Windows 8 e no Windows Server 2012. Para saber mais sobre esses recursos do SMBv2 e do SMBv3, confira seguintes artigos:
Como remover o SMBv1 por meio do PowerShell
Estas são as etapas para detectar, desabilitar e habilitar o cliente e o servidor SMBv1 usando comandos do PowerShell com elevação.
Observação
O computador será reiniciado depois que você executar os comandos do PowerShell para desabilitar ou habilitar o SMBv1.
Detectar:
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Desabilite:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Habilitar:
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Dica
Você pode detectar o status do SMBv1, sem elevação, executando: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol
.
Windows Server 2012 Windows Server 2012 R2, Windows Server 2016, Windows Server 2019: método Gerenciador de Servidores
Para remover o SMBv1 do Windows Server:
- No Painel do Gerenciador do Servidor do servidor em que você deseja remover o SMBv1, em Configurar este servidor local, selecione Adicionar funções e recursos.
- Na página Antes de começar, selecione Iniciar o Assistente de Remoção de Funções e Recursos e, na página seguinte, selecione Avançar.
- Na página Selecionar o servidor de destino em Pool de Servidores, verifique se o servidor do qual você quer remover o recurso está selecionado e, em seguida, selecione Avançar.
- Na página Remover funções de servidor, selecione Avançar.
- Na página Remover recursos, desmarque a caixa de seleção de Suporte para Compartilhamento de Arquivos SMB 1.0/CIFS e selecione Avançar.
- Na página Confirmar as seleções de remoção, confirme se o recurso está listado e, em seguida, selecione Remover.
Windows 8.1, Windows 10 e Windows 11: método Adicionar ou Remover Programas
Para desabilitar o SMBv1 para os sistemas operacionais mencionados:
- No Painel de Controle, selecione Programas e Recursos.
- Em Página Inicial do Painel de Controle, selecione Ativar ou desativar recursos do Windows para abrir a caixa Recursos do Windows.
- Na caixa Recursos do Windows, role a lista para baixo, desmarque a caixa de seleção de Suporte para Compartilhamento de Arquivos SMB 1.0/CIFS e selecione OK.
- Depois que o Windows aplicar a alteração, na página de confirmação, selecione Reiniciar agora.
Como detectar o status, habilitar e desabilitar os protocolos SMB
Observação
Quando você habilitar ou desabilitar o SMBv2 no Windows 8 ou no Windows Server 2012, o SMBv3 também será habilitado ou desabilitado. Esse comportamento ocorre porque esses protocolos compartilham a mesma pilha.
O Windows 8 e o Windows Server 2012 introduziram o novo cmdlet Set-SMBServerConfiguration do Windows PowerShell. O cmdlet permite habilitar ou desabilitar os protocolos SMBv1, SMBv2 e SMBv3 no componente do servidor.
Não é necessário reiniciar o computador depois de executar o cmdlet Set-SMBServerConfiguration.
SMBv1
Detectar:
Get-SmbServerConfiguration | Select EnableSMB1Protocol
Desabilite:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
Habilitar:
Set-SmbServerConfiguration -EnableSMB1Protocol $true
Para saber mais, confira Armazenamento de servidores na Microsoft.
SMB v2/v3
Detectar:
Get-SmbServerConfiguration | Select EnableSMB2Protocol
Desabilite:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
Habilitar:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
Para Windows 7, Windows Server 2008 R2, Windows Vista e Windows Server 2008
Para habilitar ou desabilitar os protocolos SMB em um servidor SMB que esteja executando o Windows 7, o Windows Server 2008 R2, o Windows Vista ou o Windows Server 2008, use o Windows PowerShell ou o Editor do Registro.
Métodos adicionais do PowerShell
Observação
Este método requer o PowerShell 2.0 ou posterior.
SMBv1 no Servidor SMB
Detectar:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
Configuração padrão = Habilitado (nenhum valor nomeado do Registro é criado), portanto, nenhum valor SMB1 será retornado
Desabilite:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
Habilitar:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force
Nota É necessário reiniciar o computador após fazer essas alterações. Para saber mais, confira Armazenamento de servidores na Microsoft.
SMBv2/v3 no Servidor SMB
Detectar:
Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
Desabilite:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force
Habilitar:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 -Force
Observação
É necessário reiniciar o computador após fazer essas alterações.
Editor do Registro
Importante
Siga as etapas nesta seção com cuidado. Problemas sérios podem ocorrer se você modificar o Registro incorretamente. Antes de modificá-lo, faça backup do Registro para a restauração em caso de problemas.
Para habilitar ou desabilitar o SMBv1 no servidor SMB, configure a seguinte chave do Registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Registry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)
Para habilitar ou desabilitar o SMBv2 no servidor SMB, configure a seguinte chave do Registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Registry entry: SMB2
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)
Observação
É necessário reiniciar o computador após fazer essas alterações.
Desabilitar o SMBv1 usando a Política de Grupo
Esta seção apresenta como usar a Política de Grupo para desabilitar o SMBv1. É possível usar esse método em diferentes versões do Windows.
SMBv1
O procedimento configura o seguinte item novo no Registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- Entrada do Registro: SMB1
- REG_DWORD: 0 = Desabilitado
Para usar Política de Grupo para configurar isso, siga estas etapas:
Abra o Console de Gerenciamento de Diretiva de Grupo. Clique com o botão direito no GPO (Objeto de Diretiva de Grupo) que deve conter o novo item de preferência e clique em Editar.
Na árvore de console em Configuração do Computador, expanda a pasta Preferências e, em seguida, expanda a pasta Configurações do Windows.
Clique com o botão direito do mouse no nó Registro, aponte para Novo e selecione Item do Registro.
Na caixa de diálogo Novas Propriedades do Registro, selecione o seguinte:
- Ação: Criar
- Hive: HKEY_LOCAL_MACHINE
- Caminho da Chave: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- Nome do valor: SMB1
- Tipo de valor: REG_DWORD
- Dados do valor: 0
Esse procedimento desabilita os componentes do Servidor SMBv1. Essa Política de Grupo deve ser aplicado a todas as estações de trabalho, servidores e controladores de domínio necessários no domínio.
Observação
Os filtros WMI também podem ser definidos para excluir sistemas operacionais sem suporte ou exclusões selecionadas, como o Windows XP.
Importante
Tenha cuidado ao fazer essas alterações em controladores de domínio nos quais o Windows XP herdado ou sistemas Linux e de terceiros mais antigos (que não dão suporte a SMBv2 ou SMBv3) exigem acesso ao SYSVOL ou a outros compartilhamentos de arquivos em que o SMB v1 está sendo desabilitado.
Auditar o uso do SMBv1
Para determinar quais clientes estão tentando se conectar a um servidor SMB com o SMBv1, é possível habilitar a auditoria no Windows Server 2016, no Windows 10 e no Windows Server 2019. Também é possível auditar no Windows 7 e no Windows Server 2008 R2 se a atualização mensal de maio de 2018 estiver instalada; e no Windows 8.1 e no Windows Server 2012 R2 se a atualização mensal de julho de 2017 estiver instalada.
Habilitar:
Set-SmbServerConfiguration -AuditSmb1Access $true
Desabilite:
Set-SmbServerConfiguration -AuditSmb1Access $false
Detectar:
Get-SmbServerConfiguration | Select AuditSmb1Access
Quando a auditoria de SMBv1 estiver habilitada, o evento 3000 aparecerá no log de eventos "Microsoft-Windows-SMBServer\Audit", identificando cada cliente que tenta conectar ao SMBv1.
Resumo
Se todas as configurações estiverem no mesmo GPO, o Gerenciamento de Política de Grupo exibirá as configurações a seguir.
Teste e validação
Após concluir as etapas de configuração neste artigo, permita que a política replique e atualize. Conforme necessário para testes, execute gpupdate /force em um prompt de comando e examine os computadores de destino para garantir que as configurações do Registro sejam aplicadas corretamente. Verifique se o SMBv2 e o SMBv3 estão funcionando para todos os outros sistemas no ambiente.
Observação
Não se esqueça de reiniciar os sistemas de destino.