Detección, habilitación y deshabilitación de SMBv1, SMBv2 y SMBv3 en Windows

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows 11, Windows 10, Windows 8.1, Windows 8

En este artículo se describe cómo habilitar y deshabilitar bloque de mensajes del servidor (SMB) versión 1 (SMBv1), SMB versión 2 (SMBv2) y SMB versión 3 (SMBv3) en los componentes de cliente y servidor de SMB.

Aunque deshabilitar o quitar SMBv1 puede causar algunos problemas de compatibilidad con equipos o software antiguos, SMBv1 tiene vulnerabilidades de seguridad significativas y le recomendamos encarecidamente que no lo use.

Deshabilitación de SMBv2 o SMBv3 para solucionar problemas

Se recomienda mantener habilitado SMBv2 y SMBv3, pero es posible que le resulte útil deshabilitar uno temporalmente para solucionar problemas. Para obtener más información, vea Cómo detectar el estado, habilitar y deshabilitar protocolos SMB en el servidor SMB.

En Windows 10, Windows 8.1, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 y Windows Server 2012, deshabilitar SMBv3 desactiva la funcionalidad siguiente:

  • Conmutación por error transparente: los clientes se vuelven a conectar sin interrupción a los nodos del clúster durante el mantenimiento o la conmutación por error
  • Escalabilidad horizontal: acceso simultáneo a datos compartidos en todos los nodos de clúster de archivos
  • Multicanal: agregación de ancho de banda de red y tolerancia a errores si hay varias rutas de acceso disponibles entre el cliente y el servidor
  • SMB directo: agrega compatibilidad con redes RDMA para un alto rendimiento, con baja latencia y uso bajo de CPU.
  • Cifrado: proporciona cifrado de un extremo a otro y protege frente a la interceptación en redes no confiables.
  • Arrendamiento de directorios: mejora los tiempos de respuesta de las aplicaciones en las sucursales a través del almacenamiento en caché
  • Optimizaciones de rendimiento: optimizaciones para E/S de lectura y escritura aleatorias pequeñas

En Windows 7 y Windows Server 2008 R2, deshabilitar SMBv2 desactiva la funcionalidad siguiente:

  • Compuesto de solicitudes: permite enviar varias solicitudes SMBv2 como una única solicitud de red.
  • Lecturas y escrituras más grandes: mejor uso de redes más rápidas
  • Almacenamiento en caché de propiedades de carpeta y archivo: los clientes mantienen copias locales de carpetas y archivos
  • Identificadores duraderos: permita la conexión para volver a conectarse de forma transparente al servidor si hay una desconexión temporal.
  • Firma de mensajes mejorada: HMAC SHA-256 reemplaza MD5 como algoritmo hash
  • Escalabilidad mejorada para el uso compartido de archivos: el número de usuarios, recursos compartidos y archivos abiertos por servidor ha aumentado considerablemente.
  • Compatibilidad con vínculos simbólicos
  • Modelo de arrendamiento de interbloqueo de cliente: limita los datos transferidos entre el cliente y el servidor, lo que mejora el rendimiento en redes de alta latencia y aumenta la escalabilidad del servidor SMB.
  • Compatibilidad con MTU grande: para un uso completo de 10 Gigabit Ethernet (GbE)
  • Eficiencia energética mejorada: los clientes que tienen archivos abiertos en un servidor pueden suspenderse

El protocolo SMBv2 se introdujo en Windows Vista y Windows Server 2008, mientras que el protocolo SMBv3 se introdujo en Windows 8 y Windows Server 2012. Para obtener más información sobre las funcionalidades SMBv2 y SMBv3, consulte los siguientes artículos:

Cómo quitar SMBv1 mediante PowerShell

Estos son los pasos para detectar, deshabilitar y habilitar el cliente y el servidor SMBv1 mediante comandos de PowerShell con elevación.

Nota

El equipo se reiniciará después de ejecutar los comandos de PowerShell para deshabilitar o habilitar SMBv1.

  • Detección:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Deshabilite:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Habilite:

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

Sugerencia

Puede detectar el estado SMBv1, sin elevación, ejecutando: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol.

Windows Server 2012 Windows Server 2012 R2, Windows Server 2016, Windows Server 2019: método Administrador del servidor

Administrador del servidor: método Dashboard

Para quitar SMBv1 de Windows Server:

  1. En el panel de Administrador del servidor del servidor en el que desea quitar SMBv1, en Configurar este servidor local, seleccione Agregar roles y características.
  2. En la página Antes de comenzar , seleccione Iniciar el Asistente para quitar roles y características y, a continuación, en la página siguiente, seleccione Siguiente.
  3. En la página Seleccionar servidor de destino en Grupo de servidores, asegúrese de que el servidor del que desea quitar la característica está seleccionada y, a continuación, seleccione Siguiente.
  4. En la página Quitar roles de servidor , seleccione Siguiente.
  5. En la página Quitar características , desactive la casilla de compatibilidad con el uso compartido de archivos SMB 1.0/CIFS y seleccione Siguiente.
  6. En la página Confirmar selecciones de eliminación , confirme que aparece la característica y, a continuación, seleccione Quitar.

Windows 8.1, Windows 10 y Windows 11: Método Agregar o quitar programas

Método cliente Add-Remove Programs

Para deshabilitar SMBv1 para los sistemas operativos mencionados:

  1. En Panel de control, seleccione Programas y características.
  2. En Panel de control Inicio, seleccione Activar o desactivar las características de Windows para abrir el cuadro Características de Windows.
  3. En el cuadro Características de Windows , desplácese hacia abajo en la lista, desactive la casilla de compatibilidad con el uso compartido de archivos SMB 1.0/CIFS y seleccione Aceptar.
  4. Después de que Windows aplique el cambio, en la página de confirmación, seleccione Reiniciar ahora.

Cómo detectar el estado, habilitar y deshabilitar los protocolos SMB

Nota

Al habilitar o deshabilitar SMBv2 en Windows 8 o Windows Server 2012, SMBv3 también está habilitado o deshabilitado. Este comportamiento se produce porque estos protocolos comparten la misma pila.

Windows 8 y Windows Server 2012 introdujeron el nuevo cmdlet Set-SMBServerConfiguration Windows PowerShell. El cmdlet permite habilitar o deshabilitar los protocolos SMBv1, SMBv2 y SMBv3 en el componente de servidor.

No es necesario reiniciar el equipo después de ejecutar el cmdlet Set-SMBServerConfiguration .

SMBv1

  • Detección:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • Deshabilite:

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • Habilite:

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

Para obtener más información, consulte Almacenamiento del servidor en Microsoft.

SMB v2/v3

  • Detección:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • Deshabilite:

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • Habilite:

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

Para Windows 7, Windows Server 2008 R2, Windows Vista y Windows Server 2008

Para habilitar o deshabilitar protocolos SMB en un servidor SMB que ejecuta Windows 7, Windows Server 2008 R2, Windows Vista o Windows Server 2008, use Windows PowerShell o editor del Registro.

Métodos adicionales de PowerShell

Nota

Este método requiere PowerShell 2.0 o posterior.

SMBv1 en el servidor SMB

Detección:

Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}

Configuración predeterminada = Habilitado (no se crea ningún valor con nombre del Registro), por lo que no se devolverá ningún valor SMB1.

Deshabilite:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force

Habilite:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force

Nota Debe reiniciar el equipo después de realizar estos cambios. Para obtener más información, consulte Almacenamiento del servidor en Microsoft.

SMBv2/v3 en el servidor SMB

Detección:

Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}

Deshabilite:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force

Habilite:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 -Force

Nota

Debe reiniciar el equipo después de realizar estos cambios.

Editor del Registro

Importante

Sigue meticulosamente los pasos que se describen en esta sección. Pueden producirse problemas graves si modifica el Registro de manera incorrecta. Antes de modificarlo, haz una copia de seguridad del registro para restaurarlo, por si se produjeran problemas.

Para habilitar o deshabilitar SMBv1 en el servidor SMB, configure la siguiente clave del 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 o deshabilitar SMBv2 en el servidor SMB, configure la siguiente clave del 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)

Nota

 Debe reiniciar el equipo después de realizar estos cambios.

Deshabilitar SMBv1 mediante directiva de grupo

En esta sección se presenta cómo usar directiva de grupo para deshabilitar SMBv1. Puede usar este método en diferentes versiones de Windows.

SMBv1

Este procedimiento configura el siguiente nuevo elemento en el Registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

  • Entrada del Registro: SMB1
  • REG_DWORD: 0 = Deshabilitado

Para usar directiva de grupo para configurar esto, siga estos pasos:

  1. Abra la Consola de administración de directivas de grupo. Haga clic con el botón secundario en el objeto de directiva de grupo (GPO) que debería contener el nuevo elemento de preferencia y, a continuación, haga clic en Editar.

  2. En la opción Configuración del equipo del árbol de la consola, expanda la carpeta Preferencias y, a continuación, la carpeta Configuración de Windows.

  3. Haga clic con el botón derecho en el nodo Registro , seleccione Nuevo y seleccione Elemento del Registro.

    Registro - Nuevo - Elemento del Registro

En el cuadro de diálogo Nuevas propiedades del Registro , seleccione lo siguiente:

  • Acción: Crear
  • Hive: HKEY_LOCAL_MACHINE
  • Ruta de acceso de la clave: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Nombre del valor: SMB1
  • Tipo de valor: REG_DWORD
  • Datos de valor: 0

Nuevas propiedades del Registro: General

Este procedimiento deshabilita los componentes del servidor SMBv1. Este directiva de grupo debe aplicarse a todas las estaciones de trabajo, servidores y controladores de dominio necesarios en el dominio.

Nota

 Los filtros WMI también se pueden establecer para excluir sistemas operativos no admitidos o exclusiones seleccionadas, como Windows XP.

Importante

Tenga cuidado al realizar estos cambios en los controladores de dominio en los que windows XP heredado o sistemas linux y de terceros (que no admiten SMBv2 o SMBv3) requieren acceso a SYSVOL u otros recursos compartidos de archivos en los que SMB v1 está deshabilitado.

Auditoría del uso de SMBv1

Para determinar qué clientes intentan conectarse a un servidor SMB con SMBv1, puede habilitar la auditoría en Windows Server 2016, Windows 10 y Windows Server 2019. También puede auditar en Windows 7 y Windows Server 2008 R2 si está instalada la actualización mensual de mayo de 2018 y en Windows 8.1 y Windows Server 2012 R2 si está instalada la actualización mensual de julio de 2017.

  • Habilite:

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • Deshabilite:

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • Detección:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

Cuando la auditoría de SMBv1 está habilitada, el evento 3000 aparece en el registro de eventos "Microsoft-Windows-SMBServer\Audit", identificando a cada cliente que intenta conectarse con SMBv1.

Resumen

Si toda la configuración está en el mismo GPO, directiva de grupo Management muestra la siguiente configuración.

Editor de administración de directiva de grupo: Registro

Prueba y validación

Después de completar los pasos de configuración de este artículo, permita que la directiva se replique y actualice. Según sea necesario para las pruebas, ejecute gpupdate /force en un símbolo del sistema y, a continuación, revise los equipos de destino para asegurarse de que la configuración del Registro se ha aplicado correctamente. Asegúrese de que SMBv2 y SMBv3 funcionan para todos los demás sistemas del entorno.

Nota

No olvide reiniciar los sistemas de destino.