Detección, habilitación y deshabilitación de SMBv1, SMBv2 y SMBv3 en Windows
En este artículo, se describe cómo habilitar y deshabilitar el protocolo 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 que no lo use. SMB 1.0 no está instalado de forma predeterminada en ninguna edición de Windows 11 o Windows Server 2019, ni en las versiones posteriores. SMB 1.0 tampoco está instalado de forma predeterminada en Windows 10, excepto en las ediciones Home y Pro. Se recomienda que, en lugar de volver a instalar SMB 1.0, actualice el servidor SMB que todavía lo requiere. Para obtener una lista de terceros que requieran SMB 1.0 y sus actualizaciones que quiten el requisito, examine el Centro de activación de productos SMB1.
Deshabilitación de SMBv2 o SMBv3 para la solución de problemas
Se recomienda mantener habilitados SMBv2 y SMBv3, pero es posible que le resulte útil deshabilitar uno temporalmente para la solución de problemas. Para obtener más información, consulte Cómo detectar el estado, habilitar y deshabilitar los protocolos 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
- Escalado horizontal: acceso simultáneo a datos compartidos en todos los nodos de clúster de archivos
- Multicanal: agregación del ancho de banda de red y tolerancia a errores cuando hay varias rutas disponibles entre el cliente y el servidor
- SMB directo: agrega compatibilidad con redes RDMA para un alto rendimiento, con baja latencia y un uso bajo de CPU.
- Cifrado: proporciona cifrado de un extremo a otro y protege frente a la interceptación en redes no confiables.
- Concesión de directorios: mejora los tiempos de respuesta de las aplicaciones en las sucursales mediante el almacenamiento en caché.
- Optimizaciones de rendimiento: optimizaciones para operaciones de E/S de lectura y escritura aleatorias pequeñas
En Windows 7 y Windows Server 2008 R2, deshabilitar SMBv2 desactiva la funcionalidad siguiente:
- Composición 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 archivos y carpetas: los clientes conservan copias locales de los archivos y las carpetas
- Identificadores duraderos: permitir que la conexión se vuelva a conectar de forma transparente al servidor si hay una desconexión temporal
- Firma de mensajes mejorada: HMAC SHA-256 reemplaza a MD5 como algoritmo hash.
- Escalabilidad mejorada para compartir archivos: el número de usuarios, recursos compartidos y archivos abiertos por servidor han aumentado considerablemente
- Compatibilidad con vínculo simbólicos
- Modelo de concesión 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 Ethernet de 10 gigabits (GbE)
- Eficiencia energética mejorada: se pueden suspender los clientes que tienen archivos abiertos en un servidor.
El protocolo SMBv2 se presentó en Windows Vista y Windows Server 2008, mientras que el protocolo SMBv3 se presentó en Windows 8 y Windows Server 2012. Para obtener más información sobre las funcionalidades de SMBv2 y SMBv3, consulte los artículos siguientes:
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 privilegios elevados.
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 de SMBv1, sin privilegios elevados, mediante la ejecución de: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol
.
Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019: método mediante Administrador del servidor
Para quitar SMBv1 de Windows Server:
- En el panel de Administrador del servidor correspondiente al servidor en el que desea quitar SMBv1, en Configurar este servidor local, seleccione Agregar roles y características.
- 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.
- En la página Seleccionar servidor de destino en Grupo de servidores, asegúrese de que esté seleccionado el servidor del que desea quitar la característica y, a continuación, seleccione Siguiente.
- En la página Quitar roles de servidor, seleccione Siguiente.
- En la página Quitar características, desactive la casilla Compatibilidad para uso compartido de archivos de SMB 1.0/CIFS y seleccione Siguiente.
- 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 mediante Agregar o quitar programas
Para deshabilitar SMBv1 en los sistemas operativos mencionados:
- En Panel de control, seleccione Programas y características.
- En Panel de control Inicio, seleccione Activar o desactivar las características de Windows para abrir el cuadro Características de Windows.
- En el cuadro Características de Windows, desplácese hacia abajo en la lista, desactive la casilla Compatibilidad para uso compartido de archivos de SMB 1.0/CIFS y seleccione Aceptar.
- 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, también se habilita o deshabilita SMBv3. Este comportamiento se produce porque estos protocolos comparten la misma pila.
Windows 8 y Windows Server 2012 presentaron el nuevo cmdlet Set-SMBServerConfiguration de 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 de 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 los protocolos SMB en un servidor SMB que ejecuta Windows 7, Windows Server 2008 R2, Windows Vista o Windows Server 2008, use Windows PowerShell o el editor del Registro.
Métodos adicionales de PowerShell
Nota
Este método requiere PowerShell 2.0 o posterior.
SMBv1 en un 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 de 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 de servidor en Microsoft.
SMBv2/v3 en un 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 una directiva de grupo
En esta sección, se presenta cómo usar una 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 una directiva de grupo para configurar esto, siga estos pasos:
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.
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.
Haga clic con el botón derecho en el nodo Registro, elija Nuevo y seleccione Elemento del Registro.
En el cuadro de diálogo Nuevas propiedades de Registro, seleccione lo siguiente:
- Acción: Crear
- Subárbol: HKEY_LOCAL_MACHINE
- Ruta de acceso de la clave: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- Nombre del valor: SMB1
- Tipo de valor: REG_DWORD
- Datos del valor: 0
Este procedimiento deshabilita los componentes de servidor de SMBv1. Esta directiva de grupo se debe aplicar a todas las estaciones de trabajo, servidores y controladores de dominio necesarios en el dominio.
Nota:
También se pueden establecer filtros WMI 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 antiguos y de terceros (que no admiten SMBv2 ni SMBv3) requieran acceso a SYSVOL u otros recursos compartidos de archivos en los que se va a 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 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, aparece en el registro de eventos el evento 3000 "Microsoft-Windows-SMBServer\Audit", identificando cada cliente que intenta conectarse con SMBv1.
Resumen
Si toda la configuración está en el mismo GPO, la administración de la directiva de grupo muestra la siguiente configuración.
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 revise los equipos de destino para asegurarse de que la configuración del Registro se haya aplicado correctamente. Asegúrese de que funcionen SMBv2 y SMBv3 en todos los demás sistemas del entorno.
Nota:
No olvide reiniciar los sistemas de destino.