La transferencia de archivos ha sido una de las características de los sistemas operativos Windows desde sus inicios y durante este tiempo y las nuevas actualizaciones que han sido lanzadas hemos visto como se han definido nuevas opciones para efectuar esta tarea desde el protocolo SMB hasta el grupo en el hogar.
Justamente el protocolo SMB ha sido uno de los más usados y prácticos para llevar a cabo esta acción debido a sus funcionalidades, pero con el paso de las nuevas tecnologías se han actualizado estos protocolos y se han detectado ciertos fallos de seguridad que pueden poner en riesgo la integridad e información alojada en el sistema. El protocolo SMB (Server Message Block - Protocolo de Bloque de Mensajes de Servidor) ha estado presente por más de 20 años iniciando con su versión SMB1, pero actualmente contamos con la versión SMB3 con mayores prestaciones de seguridad y fiabilidad. También veremos configuración de SMB2 Windows 10.
SMB es un protocolo de uso compartido de archivos de red también llamado protocolo SMB de Microsoft, este protocolo consta de un conjunto de paquetes de mensajes que tienen como misión definir una versión particular del protocolo que tiene por nombre dialecto, el protocolo del sistema común de archivos de Internet (CIFS) es un dialecto de SMB. Si tu sistema requiere SMB2 vamos a ver cómo podemos activarlo o desactivarlo si tu tu sistema requiere SMB2 o una versión superior.
- Negociación dialectal
- Imprimir en una red local
- Determinación de otros servidores de protocolo SMB de Microsoft en la red o exploración de red
- Manejo extendido de atributos de archivos
- Archivo, directorio y autenticación de acceso compartido en múltiples elementos
- Archivo y registro de bloqueo
- Notificación de cambio de archivo y directorio
- Soporte Unicode
En el tradicional modelo de red OSI, el protocolo SMB es usado como una capa de aplicación o un protocolo de capa de presentación, y está basado en protocolos de nivel inferior para el transporte de paquetes en la red. El protocolo SMB de Microsoft ha sido desarrollado como una implementación cliente-servidor y consiste en un conjunto de paquetes de datos, donde cada uno de ellos contiene una solicitud enviada por el cliente o una respuesta enviada por el servidor. Empezaremos viendo el protocolo smb1 y después cómo activar los SMB si tu sistema requiere SMB2.
- Paquetes de control de sesión: Este establece y descontinúa una conexión a los recursos compartidos del servidor.
- Paquetes de acceso a archivos: se encarga de acceder y manipular archivos y directorios en el servidor remoto.
- Paquetes de mensajes generales: Este paquete envía datos para imprimir colas, listas de correo y proporciona datos sobre el estado de las colas de impresión.
A partir de Windows 10 Fall Creators Update y Windows Server, versión 1709 (RS3), el protocolo de red de Bloque de mensajes del servidor versión 1 (SMBv1) ya no se instalará de forma predeterminada ya que fue reemplazado por SMBv2 y otros protocolos posteriores a partir de 2007, es ideal saber que Microsoft declaró públicamente en desuso al protocolo SMBv1 en el año 2014 por diferentes razones.
- SMBv1 cuenta con otras características interesantes conocerlas para poder sacarles partido al cliente y servidor. Tener en cuenta que pueden instalarse por separado en función de las necesidades de cada uno.
- Las ediciones Windows 10 Home y Windows 10 Professional ya no cuentan con SMBv1 para el cliente o el servidor de forma predeterminada después de una instalación limpia.
- Otro detalle a tener en cuenta es que si tienes SMBv1 en cliente y no se utiliza durante 15 días en total (excepto cuando el equipo está apagado), se desinstalará automáticamente. Es importante conocer esto para que no nos quedamos atrás en ello.
- Actualizaciones directas y versiones de Windows Insider de Windows 10 Home y Windows 10 Professional no quitan el protocolo SMB1 automáticamente desde el inicio.
- Son compatibles las características de los SMB versión 2.02, 2.1, 3.0, 3.02 y 3.1.1.
- No se puede conectar con los recursos compartidos de archivos porque no es seguro. Este recurso compartido requiere el protocolo SMB1 obsoleto, el cual no es seguro y podría exponer su sistema a ataques.
- Su sistema requiere SMB2 o superior. Para obtener más información sobre cómo solucionar este problema, visitamos el siguiente link:
- El nombre de red especificado ya no está disponible.
- Error no especificado 0x80004005
- Error de sistema 64
- El servidor especificado no puede realizar la operación solicitada.
- Error 58
Como vemos, Microsoft opto por mover protocolo SMB1 y establecer SMB2 o SMB3 en Windows 10 para mejores prestaciones. El protocolo SMBv2 se incluyó por primera vez en Windows Vista y en Windows Server 2008 mientras que el protocolo SMBv3 se incluyó por primera vez en Windows 8 y en Windows Server 2012.
- Lecturas y escrituras más amplias que permiten hacer un mejor uso de redes más rápidas, incluso aquellas con alta latencia de datos.
- Solicitud de capitalización, que permite enviar múltiples solicitudes SMB 2 como una única solicitud de red.
- Mejoras generales enfocadas en una mejor utilización de la red.
- Almacenamiento en memoria caché de las propiedades de carpetas y archivos, donde los clientes conservan copias locales de carpetas y archivos para un acceso mucho más rápido a estos.
- Soporte para enlaces simbólicos
- Se mejoró la firma de mensajes gracias a una mejor configuración e interoperabilidad (HMAC SHA-256 reemplaza a MD5 como algoritmo hash).
- Escalabilidad mejorada para el intercambio de archivos
- Modelo de arrendamiento de cliente oplock
- Soporte de MTU más amplio
- Eficiencia energética mejorada para computadoras cliente
- Soporte para versiones anteriores de SMB
Ahora, un punto que Solvetic desea aclarar es que actualmente algunas versiones anteriores de Windows y muchas otras aplicaciones que se ejecutan en Android y Linux no son compatibles con las versiones más recientes de SMB (2 y 3), por lo cual será imposible conectar un equipo con Windows a tales dispositivos si solo están habilitadas las versiones más recientes de SMB, en este caso debemos activar, de forma temporal, el protocolo SMB1 para permitir la transferencia de archivos y ahora veremos cómo activar SMB2 Windows 10 y cómo activar SMB1 Windows 10 y después desactivarlo de algunas formas prácticas.
1. Activar SMB1, SMB2 Windows 10 con características Windows
Para usar este método iremos a la siguiente ruta. Allí damos clic en la línea “Activar o desactivar las características de Windows”.
- Programas
- Programas y características
Otra opción más directa para acceder es usando las teclas siguiente y ejecutar la siguiente línea:
+ R
optionalfeatures.exe
Veremos la siguiente ventana donde iremos a la sección “Compatibilidad con el protocolo para compartir archivos SMB 1.0/CIFS”:
Allí activamos las casillas “Cliente SMB 1.0/CIFS” y opcionalmente la casilla “Servidor SMB 1.0/CIFS”. Pulsamos en Aceptar e iniciara el proceso de activación:
Una vez finalice veremos lo siguiente. Pulsamos en “Cerrar” para salir del asistente y de este modo hemos activado SMB1 usando las características de Windows 10.
2. Desactivar SMB1, SMB2 Windows 10 con características Windows
Si tu sistema requiere SMB2 o SMB1 vamos a ver cómo activarlos o desactivarlos.
Para este proceso vamos a ir de nuevo a la siguiente ruta.
- Programas
- Programas y características
Allí pulsamos en “Activar o desactivar las características de Windows” y ahora desmarcaremos las casillas “Cliente SMB 1.0/CIFS y Servidor SMB 1.0/CIFS” (Si ha sido habilitada):
Pulsamos en Aceptar para aplicar los cambios y finalmente veremos lo siguiente:
Pulsamos en el botón “Reiniciar ahora” para que todos los cambios sean aplicados a Windows 10. Recordemos que la activación de SMB1 debe ser temporal por razones de compatibilidad.
3. Activar SMB1 Windows 10 con PowerShell
Windows PowerShell es una opción ideal para comprobar, habilitar o deshabilitar estos protocolos SMB de una forma segura y totalmente funcional. Para esto debemos realizar todas estas acciones como administradores de Windows PowerShell.
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Una vez este proceso concluya será desplegado lo siguiente. Allí ingresamos la letra Y para reiniciar el sistema operativo y aplicar los cambios.
4. Desactivar SMB1 Windows 10 con PowerShell
Ahora, en el momento en que no sea necesario usar más SB1, procedemos a su deshabilitacion en PowerShell ejecutando lo siguiente:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Pulsamos Enter e iniciará el proceso de deshabilitación:
Una vez finalice será necesario reiniciar el sistema para completar la tarea. De este modo hemos administrado SMB1 usando Windows PowerShell.
5. Activar SMB2 Windows 10 PowerShell
Ahora, usaremos de nuevo la consola de PowerShell para administrar el protocolo SMB2 en Windows 10.
Set-SmbServerConfiguration –EnableSMB2Protocol $falseIgualmente ingresamos la letra S para confirmar y pulsamos Enter. Podemos ver que SMB está compuesto de dos elementos que son Cliente y Servidor, en este tutorial nos hemos basado en el Cliente el cual es el ideal para transferencia de archivos, pero Solvetic en su idea de brindar la mejor información explicará algunas formas para gestionar SMB a nivel de servidor el cual se usa tanto en Windows 10 como en Windows Server.
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
Para habilitar el servidor SMB1 vamos a ejecutar lo siguiente:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 –Force
Para deshabilitar el servidor SMB1 vamos a ejecutar el siguiente cmdlet:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force
Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
Para su habilitación ejecutamos:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 –ForcePara su deshabilitacion vamos a ejecutar. Se recomienda reiniciar el sistema para aplicar los cambios.
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 –Force
6. Activar o desactivar SMB1 y SMB2 Windows 10 con Editor de registros
Otra alternativa para desactivar o activar SMB1 y SMB2 Windows 10 y Windows Server es usando el editor de registros, pero se recomienda crear una copia de seguridad antes de efectuar cualquier cambio en el editor.
Para acceder usaremos la combinación de teclas siguientes y ejecutamos el comando regedit, pulsamos enter y en la ventana desplegada iremos a la siguiente ruta:
+ R
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Allí encontramos los valores SMB1 y SMB2 los cuales podemos editar dando doble clic sobre ellos y asignando lo siguiente según sea requerido en el campo “Información del valor”:
REG_DWORD: 0 = deshabilitado REG_DWORD: 1 = habilitado
7. Activar o desactivar SMB1 y SMB2 Windows 10 CMD
El CMD o símbolo del sistema también se convierte en una solución integral para administrar el protocolo SMB en Windows.
Para el caso de SMB1 podemos ejecutar lo siguiente en el símbolo del sistema como administradores:
sc.exe query lanmanworkstation
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi sc.exe config mrxsmb10 start= disabled
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi sc.exe config mrxsmb10 start= auto
Para el caso de SMB2 vamos a usar lo siguiente:
sc.exe query lanmanworkstation
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi sc.exe config mrxsmb20 start= auto
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi sc.exe config mrxsmb20 start= disabled
8. Activar o desactivar SMB1 y SMB2 Windows Server
Si estamos Windows Server también podemos activar SMB1 Windows 10 o SMB2 y también desactivarlo de la siguiente forma:
Lo primero será abrir nuestra consola de PowerShell y después usar los siguientes comandos según lo que necesitemos:
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocolo
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocolo
Set-SmbServerConfiguration -EnableSMB2Protocol $true
Set-SmbServerConfiguration -EnableSMB2Protocol $false
Hemos comprobado diversos métodos para gestionar de forma completa el protocolo SMB recordando que SMB1 está en desuso por las razones ya indicadas. Por eso podremos activar SMB1 Windows 10 o activar SMB2 Windows 10 fácilmente.