Como detectar, habilitar e desabilitar SMBv1, SMBv2 e SMBv3 no Windows

Aplica-se a: Windows Server 2022, Windows 10, Windows 8.1, Windows 8, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012

Este artigo descreve como habilitar e desabilitar o SMB (Bloco de Mensagens do Servidor) versão 1 (SMBv1), smb versão 2 (SMBv2) e SMB versão 3 (SMBv3) nos componentes do cliente SMB e do servidor.

Embora desabilitar ou remover o SMBv1 possa causar alguns problemas de compatibilidade com computadores ou software antigos, o SMBv1 tem vulnerabilidades de segurança significativas e incentivamos fortemente você a não usá-lo.

Desabilitar SMBv2 ou SMBv3 para solução de problemas

É recomendável manter o SMBv2 e o SMBv3 habilitados, mas você pode achar útil desabilitar um temporariamente para solução de problemas. Para obter mais informações, consulte Como detectar o status, habilitar e desabilitar protocolos SMB no servidor SMB.

Em 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 failover
  • Scale Out - acesso simultâneo a dados compartilhados em todos os nós de cluster de arquivos
  • Multicanal – agregação de largura de banda de rede e tolerância a falhas se vários caminhos estiverem disponíveis entre cliente e servidor
  • SMB Direct – adiciona suporte à rede RDMA para alto desempenho, com baixa latência e baixo uso de CPU
  • Criptografia – Fornece criptografia de ponta a ponta e protege contra escutas em redes não confiáveis
  • Locação de diretórios – melhora os tempos de resposta do aplicativo nas filiais por meio do cache
  • Otimizações de desempenho – otimizações para E/S de leitura/gravação aleatória pequena

No Windows 7 e Windows Server 2008 R2, desabilitar o SMBv2 desativa a seguinte funcionalidade:

  • Composição de solicitação – permite o envio de várias solicitações SMBv2 como uma única solicitação de rede
  • Leituras e gravações maiores - melhor uso de redes mais rápidas
  • Caching de propriedades de pasta e arquivo – os clientes mantêm cópias locais de pastas e arquivos
  • Identificadores duráveis – permitir que a conexão se reconecte transparentemente ao servidor se houver uma desconexão temporária
  • Assinatura de mensagem aprimorada – HMAC SHA-256 substitui MD5 como algoritmo de hash
  • Escalabilidade aprimorada para compartilhamento de arquivos - número de usuários, compartilhamentos e arquivos abertos por servidor aumentou consideravelmente
  • Suporte para links simbólicos
  • Modelo de locaçã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 de MTU grande – para uso completo de 10 Gigabit Ethernet (GbE)
  • Eficiência energética aprimorada – clientes que têm arquivos abertos em um servidor podem dormir

O protocolo SMBv2 foi introduzido em Windows Vista e Windows Server 2008, enquanto o protocolo SMBv3 foi introduzido em Windows 8 e Windows Server 2012. Para obter mais informações sobre os recursos SMBv2 e SMBv3, consulte os seguintes artigos:

Como remover o SMBv1

Veja como remover o SMBv1 em Windows 10, Windows 8.1, Windows Server 2019, Windows Server 2016 e Windows 2012 R2.

Métodos do PowerShell

Estas são as etapas para detectar, desabilitar e habilitar o cliente e o servidor do SMBv1 usando comandos do PowerShell.

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
    

Windows Server 2012 Windows Server 2012 R2, Windows Server 2016, Windows Server 2019: método Gerenciador do Servidor

Server Manager - Dashboard method

Para remover o SMBv1 do servidor Windows:

  1. No painel Gerenciador do Servidor do servidor em que você deseja remover o SMBv1, em Configurar esse servidor local, selecioneAdicionar funções e recursos.
  2. Na página Antes de começar , selecione Iniciar o Assistente para Remover Funções e Recursos e, na página a seguir, selecione Avançar.
  3. Na página Selecionar servidor de destino no Pool de Servidores, verifique se o servidor do qual você deseja remover o recurso está selecionado e selecione Avançar.
  4. Na página Remover funções de servidor , selecione Avançar.
  5. Na página Remover recursos , desmarque a caixa de seleção para suporte ao compartilhamento de arquivos SMB 1.0/CIFS e selecione Avançar.
  6. Na página Confirmar seleções de remoção , confirme se o recurso está listado e selecione Remover.

Windows 8.1 e Windows 10: método Adicionar ou Remover Programas

Add-Remove Programs client method

Para desabilitar o SMBv1 em Windows 8.1 e Windows 10:

  1. No Painel de Controle, selecione Programas e Recursos.
  2. Em Painel de Controle Página Inicial, selecione Ativar ou desativar os recursos do Windows para abrir a caixa Windows Recursos.
  3. Na caixa Windows Recursos, role a lista para baixo, desmarque a caixa de seleção para suporte ao compartilhamento de arquivos SMB 1.0/CIFS e selecione OK.
  4. Depois que Windows aplicar a alteração, na página de confirmação, selecione Reiniciar agora.

Como detectar o status, habilitar e desabilitar protocolos SMB no servidor SMB

Para Windows 8.1, Windows Server 2012, Windows Server 2012 R2, Windows 10 e Windows Server 2019

Windows 8 e Windows Server 2012 introduziram o novo cmdlet Set-SMBServerConfiguration Windows PowerShell. O cmdlet permite habilitar ou desabilitar os protocolos SMBv1, SMBv2 e SMBv3 no componente do servidor.

Observação

Quando você habilita ou desabilitar o SMBv2 em Windows 8 ou Windows Server 2012, o SMBv3 também está habilitado ou desabilitado. Esse comportamento ocorre porque esses protocolos compartilham a mesma pilha.

Você não precisa reiniciar o computador depois de executar o cmdlet Set-SMBServerConfiguration .

SMBv1 no Servidor SMB

  • Detectar:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • Desabilite:

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • Habilitar:

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

Para obter mais informações, consulte o armazenamento do servidor na Microsoft.

SMB v2/v3 no servidor SMB

  • 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 protocolos SMB em um servidor SMB que está executando Windows 7, Windows Server 2008 R2, Windows Vista ou Windows Server 2008, use Windows PowerShell ou Editor do Registro.

Métodos do PowerShell

Observação

Esse método requer o PowerShell 2.0 ou versão posterior do PowerShell.

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 Você deve reiniciar o computador depois de fazer essas alterações. Para obter mais informações, consulte o armazenamento do servidor 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

Você deve reiniciar o computador depois de 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

 Você deve reiniciar o computador depois de fazer essas alterações.

Como detectar o status, habilitar e desabilitar protocolos SMB no cliente SMB

Veja como detectar o status, habilitar e desabilitar protocolos SMB no cliente SMB que está executando Windows 10, Windows Server 2019, Windows 8.1, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012.

Observação

Quando você habilita ou desabilitar o SMBv2 em Windows 8 ou em Windows Server 2012, o SMBv3 também está habilitado ou desabilitado. Esse comportamento ocorre porque esses protocolos compartilham a mesma pilha.

SMBv1 no cliente SMB

  • Detect

    sc.exe qc lanmanworkstation
    
  • Desabilite:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
    sc.exe config mrxsmb10 start= disabled
    
  • Habilitar:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
    sc.exe config mrxsmb10 start= auto
    

Para obter mais informações, consulte o armazenamento do servidor na Microsoft

SMBv2/v3 no cliente SMB

  • Detectar:

    sc.exe qc lanmanworkstation
    
  • Desabilite:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
    sc.exe config mrxsmb20 start= disabled
    
  • Habilitar:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
    sc.exe config mrxsmb20 start= auto
    

Observação

  • Você deve executar esses comandos em um prompt de comando com privilégios elevados.
  • Você deve reiniciar o computador depois de fazer essas alterações.

Desabilitar o SMBv1 usando Política de Grupo

Esta seção apresenta como usar Política de Grupo para desabilitar o SMBv1. Você pode usar esse método em diferentes versões de Windows.

Desabilitar o servidor SMBv1

Este procedimento configura o novo item a seguir 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:

  1. 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.

  2. Na árvore de console em Configuração do Computador, expanda a pasta Preferências e expanda a pasta Windows Configurações.

  3. Clique com o botão direito do mouse no nó registro , aponte para Novo e selecione Item do Registro.

    Registry - New - Registry Item

Na caixa de diálogo Novas Propriedades do Registro , selecione o seguinte:

  • Ação: Atualizar
  • Hive: HKEY_LOCAL_MACHINE
  • Caminho da chave: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Nome do valor: SMB1
  • Tipo do valor: REG_DWORD
  • Dados de valor: 0

New Registry Properties - General

Este procedimento desabilita os componentes do Servidor SMBv1. Essa Política de Grupo deve ser aplicada 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 Windows XP.

Importante

Tenha cuidado ao fazer essas alterações em controladores de domínio nos quais 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.

Desabilitar o cliente SMBv1

Para desabilitar o cliente SMBv1, a chave do Registro de serviços precisa ser atualizada para desabilitar o início do MRxSMB10 e, em seguida, a dependência de MRxSMB10 precisa ser removida da entrada para LanmanWorkstation para que possa ser iniciada normalmente sem a necessidade de MRxSMB10 para iniciar primeiro.

Essa orientação atualiza e substitui os valores padrão nos dois itens a seguir no registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10

Entrada do Registro: Iniciar REG_DWORD: 4= Desabilitado

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation

Entrada do Registro: DependOnService REG_MULTI_SZ: "Bowser", "MRxSmb20", "NSI"

Observação

 O padrão incluía MRxSMB10, que agora é removido como dependência.

Para configurar isso usando Política de Grupo, siga estas etapas:

  1. Abra o Console de Gerenciamento de Diretiva de Grupo. Clique com o botão direito do mouse no GPO que deve conter o novo item de preferência e clique em Editar.

  2. Na árvore de console em Configuração do Computador, expanda a pasta Preferências e expanda a pasta Windows Configurações.

  3. Clique com o botão direito do mouse no nó registro , aponte para Novo e selecione Item do Registro.

  4. Na caixa de diálogo Novas Propriedades do Registro , selecione o seguinte:

    • Ação: Atualizar
    • Hive: HKEY_LOCAL_MACHINE
    • Caminho da chave: SYSTEM\CurrentControlSet\services\mrxsmb10
    • Nome do valor: Iniciar
    • Tipo do valor: REG_DWORD
    • Dados de valor: 4

    Start Properties - General

  5. Em seguida, remova a dependência do MRxSMB10 que foi desabilitado.

    Na caixa de diálogo Novas Propriedades do Registro , selecione o seguinte:

    • Ação: Substituir
    • Hive: HKEY_LOCAL_MACHINE
    • Caminho da chave: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
    • Nome do valor: DependOnService
    • Tipo de valor: REG_MULTI_SZ
    • Dados de valor:
      • Bowser
      • MRxSmb20
      • NSI

    Observação

    Essas três cadeias de caracteres não terão marcadores (veja a captura de tela a seguir).

    DependOnService Properties

    O valor padrão inclui MRxSMB10 em muitas versões de Windows, portanto, substituindo-os por essa cadeia de caracteres de vários valores, ele está removendo mrxSMB10 como uma dependência para LanmanWorkstation e passando de quatro valores padrão para apenas esses três valores acima.

    Observação

    Ao usar Política de Grupo Console de Gerenciamento, você não precisa usar aspas ou vírgulas. Basta digitar cada entrada em linhas individuais.

  6. Reinicie os sistemas de destino para concluir a desabilitação do SMB v1.

Auditando o uso do SMBv1

Para determinar quais clientes estão tentando se conectar a um servidor SMB com o SMBv1, você pode habilitar a auditoria em Windows Server 2016, Windows 10 e Windows Server 2019. Você também poderá auditar no Windows 7 e Windows Server 2008 R2 se a atualização mensal de maio de 2018 estiver instalada e em Windows 8.1 e 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 do SMBv1 está habilitada, o evento 3000 aparece no log de eventos "Microsoft-Windows-SMBServer\Audit", identificando cada cliente que tenta se conectar ao SMBv1.

Resumo

Se todas as configurações estiverem no mesmo GPO, Política de Grupo Management exibirá as seguintes configurações.

Group Policy Management Editor - Registry

Teste e validação

Depois de concluir as etapas de configuração neste artigo, permita que a política seja replicada e atualizada. Conforme necessário para teste, 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.