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

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

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

Aquí se muestra cómo quitar SMBv1 en Windows 10, Windows 8.1, Windows Server 2019, Windows Server 2016 y Windows 2012 R2.

Métodos de PowerShell

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

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
    

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 y Windows 10: Método Agregar o quitar programas

Método cliente Add-Remove Programs

Para deshabilitar SMBv1 en Windows 8.1 y Windows 10:

  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 protocolos SMB en el servidor SMB

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

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.

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.

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

SMBv1 en el servidor SMB

  • 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 en el servidor SMB

  • 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 de PowerShell

Nota

Este método requiere PowerShell 2.0 o una versión posterior de PowerShell.

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.

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

Aquí se muestra cómo detectar el estado, habilitar y deshabilitar los protocolos SMB en el cliente SMB que ejecuta Windows 10, Windows Server 2019, Windows 8.1, Windows Server 2016, Windows Server 2012 R2 y Windows Server 2012.

Nota

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

SMBv1 en el cliente SMB

  • Detect

    sc.exe qc lanmanworkstation
    
  • Deshabilite:

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

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

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

SMBv2/v3 en el cliente SMB

  • Detección:

    sc.exe qc lanmanworkstation
    
  • Deshabilite:

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

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

Nota

  • Debe ejecutar estos comandos en un símbolo del sistema con privilegios elevados.
  • 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.

Deshabilitación del servidor SMBv1

Este procedimiento configura el siguiente elemento nuevo 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 de Linux antiguos y de terceros (que no admiten SMBv2 o SMBv3) requieren acceso a SYSVOL u otros recursos compartidos de archivos donde se deshabilita SMB v1.

Deshabilitación del cliente SMBv1

Para deshabilitar el cliente SMBv1, la clave del Registro de servicios debe actualizarse para deshabilitar el inicio de MRxSMB10 y, a continuación, la dependencia de MRxSMB10 debe quitarse de la entrada de LanmanWorkstation para que pueda empezar normalmente sin necesidad de que MRxSMB10 se inicie por primera vez.

Esta guía actualiza y reemplaza los valores predeterminados en los dos elementos siguientes del Registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10

Entrada del Registro: Inicio REG_DWORD: 4= Deshabilitado

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation

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

Nota

 El valor predeterminado incluido MRxSMB10, que ahora se quita como dependencia.

Para configurarlo mediante directiva de grupo, siga estos pasos:

  1. Abra la Consola de administración de directivas de grupo. Haga clic con el botón derecho en el GPO que debe 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.

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

    • Acción: Actualizar
    • Hive: HKEY_LOCAL_MACHINE
    • Ruta de acceso de la clave: SYSTEM\CurrentControlSet\services\mrxsmb10
    • Nombre del valor: Inicio
    • Tipo de valor: REG_DWORD
    • Datos de valor: 4

    Propiedades de inicio: General

  5. A continuación, quite la dependencia de MRxSMB10 que se deshabilitó.

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

    • Acción: Reemplazar
    • Hive: HKEY_LOCAL_MACHINE
    • Ruta de acceso de la clave: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
    • Nombre del valor: DependOnService
    • Tipo de valor: REG_MULTI_SZ
    • Datos de valor:
      • Bowser
      • MRxSmb20
      • NSI

    Nota

    Estas tres cadenas no tendrán viñetas (vea la siguiente captura de pantalla).

    Propiedades de DependOnService

    El valor predeterminado incluye MRxSMB10 en muchas versiones de Windows, por lo que al reemplazarlos por esta cadena de varios valores, está quitando MRxSMB10 como una dependencia de LanmanWorkstation y pasando de cuatro valores predeterminados a solo estos tres valores anteriores.

    Nota

    Cuando se usa directiva de grupo Consola de administración, no es necesario usar comillas ni comas. Solo tiene que escribir cada entrada en líneas individuales.

  6. Reinicie los sistemas de destino para terminar de deshabilitar SMB v1.

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 puedes 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 cada cliente que intenta conectarse con SMBv1.

Resumen

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

Editor de administración de directiva de grupo: Registro

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