Comparte archivos en red local fácilmente con SMB

Comparte archivos en red local fácilmente con SMB

Rubén Velasco

SMB, o Server Message Block, es un protocolo de red de Microsoft pensado para compartir fácilmente archivos, impresoras y otros muchos recursos dentro de una red local. Es posible conectar ordenadores con Windows sin apenas configuraciones, e incluso con otros sistemas operativos (como Linux y Android) a través de Samba, la implementación libre de SMB.

Aunque SMB es un protocolo, la primera versión del mismo tiene más de 35 años, y hasta estaba diseñada pensando en DOS. Por ello, cabe destacar las distintas versiones de este protocolo, qué aporta cada una de ellas y cuáles debemos usar o evitar a toda costa.

Versiones de SMB

SMB 1

Esta es la versión más antigua de este protocolo, y data de 1983. A pesar de ello, por motivos de compatibilidad, es una de las versiones del protocolo más utilizadas, ya que los clientes más nuevos pueden conectarse a este protocolo, pero los clientes antiguos no funcionan con los protocolos más modernos. En 1998, Microsoft cambió el nombre de SMB a Common Internet File System (CIFS) y le introdujo nuevas características.

No se recomienda usar, ni siquiera tener activada, esta versión del protocolo. El exploit EternalBlue de la NSA era capaz de poner en peligro cualquier PC a través de SMB1, y es un exploit muy utilizado por piratas informáticos y ransomware como WannaCry.

Las últimas versiones de Windows 10 desactivan automáticamente esta versión. Por seguridad.

SMB 2

Esta nueva versión de SMB llegó a los usuarios con Windows Vista. Una versión más segura, mucho más simple y, por supuesto, mucho más rápida y con menos latencia. Se introducen algunas características, como los enlaces simbólicos, mejoras en el cifrado y las sumas de verificación y muchos otros beneficios.

Windows 7 estrenó la versión 2.1, con mejoras en el rendimiento.

SMB 3

Esta versión se estrenó con Windows 8 e introdujo importantes cambios en la funcionalidad, además de servir para corregir fallos en SMB 2. Las posteriores versiones de este protocolo, hasta la actual 3.1.1, se estrenaron las con otras versiones de Windows (hasta Windows 10) y se centraban en mejorar el cifrado y la integridad.

Comprobar la versión de SMB activada en Windows 10

Hay varias formas de comprobar la versión de SMB que tenemos habilitada en nuestro sistema operativo. Una de las más rápidas y sencillas es hacerlo desde PowerShell, ya que con un sencillo comando podremos saber si cada versión está, o no, habilitada.

El siguiente comando nos permitirá saber si tenemos activado el protocolo SMB1 o CIFS en Windows 10; debemos fijarnos en el apartado «State»:

Get-WindowsOptionalFeature –Online –FeatureName SMB1Protocol

El siguiente nos permite comprobar si tenemos SMB2 y SMB3 activados en Windows 10:

Get-SmbServerConfiguration | Select EnableSMB2Protocol

Comprobar SMB Windows 10

No hay un comando específico para SMB3. El comando de SMB2 nos muestra el estado de la versión 2x en Windows 8 y la 3.x en Windows 10.

Activar o desactivar este protocolo

Todas las versiones de este protocolo se pueden activar o desactivar según nuestras necesidades desde un simple comando que podemos ejecutar desde PowerShell.

Desactivar SMB1

Si tenemos una de las últimas versiones de Windows 10 en nuestro ordenador, este protocolo ya estará deshabilitado por defecto. Sin embargo, si lo tenemos habilitado, podemos desactivarlo fácilmente con el siguiente comando de PowerShell:

Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol

No se recomienda activar este protocolo salvo que no quede otra alternativa. Con solo activarlo estaremos poniendo en peligro nuestro ordenador y todos los demás equipos conectados a la red local. Pero en caso de tener que hacerlo, el comando es:

Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol

Se recomienda reiniciar el ordenador después de cada comando (tanto para activar como para desactivar) para asegurarnos de que SMB1 funciona correctamente.

Activar o desactivar SMB2 / SMB3

Por defecto, esta versión vendrá habilitada en todas las versiones de Windows, por lo que no tendremos que hacer nada para usarla. Sin embargo, si tenemos problemas al conectarnos a otros dispositivos a través de la red local, o la hemos deshabilitado en el pasado, para habilitarla simplemente ejecutaremos el siguiente comando:

Set-SmbServerConfiguration -EnableSMB2Protocol $true

No se recomienda deshabilitar estas versiones del protocolo, ya que muchas características de Windows dependen de él. Estas son seguras y no implican ningún riesgo para los usuarios. Solo se recomienda deshabilitarlo temporalmente si tenemos problemas.

Pero si tenemos que deshabilitarlo por alguna razón, el comando que debemos ejecutar será:4

Set-SmbServerConfiguration -EnableSMB2Protocol $false

Aunque no es obligatorio, se recomienda reiniciar el ordenador después de cada uno de estos comandos para que, al volver a iniciar, esté el protocolo habilitado.

Posibles problemas de compatibilidad con SMB

Si estamos intentando conectar dos o más ordenadores relativamente nuevos (de Windows 7 en adelante) dentro de la red local, no tendremos ningún problema, ya que la conexión se debería hacer a través de SMB2 o SMB3. Incluso si intentamos conectar un equipo con Windows 10 con uno de Windows 7, tampoco debería haber problemas. Siempre y cuando Windows 7 utilice algo más moderno que SMB1.

Si intentamos conectarnos a ordenadores más antiguos (como Windows XP) desde un equipo con Windows 10, entonces sí tendremos problemas, ya que SMB1 (usado en XP) no funciona en Windows 10. Y como no se recomienda activarlo, es mejor dejarlo tal cual. En caso de estar en esta situación, se recomienda a los usuarios buscar otras alternativas (por ejemplo, un servidor FTP) para compartir archivos.

A la hora de conectar equipos Windows con Linux, Windows utiliza SMB, pero Linux se conecta a través de Samba. Si usamos una versión relativamente moderna de Samba no debería haber problema. Pero si nuestra versión es vieja, puede que intente usar SMB1, y, por lo tanto, además de poner en peligro el PC, no podremos conectarnos a las últimas versiones de Windows 10.

Por último, otro problema bastante común lo encontramos a la hora de conectarnos desde smartphones Android a ordenadores con Windows. Sobre todo con la última versión de Windows 10. Esto se debe a que la mayoría de las apps para SMB utilizan SMB1. En ese caso os recomendamos, o bien buscar otras aplicaciones compatibles con SMB2 o SMB3, o buscar otras formas de pasar los datos.

Si tenemos más problemas, podemos consultar la guía de resolución avanzada de problemas de SMB que nos proporciona Microsoft en el siguiente enlace.

Mejor alternativa a SMB

SMB es muy útil, ya que es un protocolo muy sencillo tanto de usar como de configurar. Pero no es precisamente lo más seguro, especialmente si usamos las versiones más antiguas del mismo. Por ello, si lo que queremos hacer es solo compartir archivos en red, puede que nos interese hacerlo a través de un servidor FTP.

Windows 10 tiene un servidor FTP incluido que podemos activar como una característica opcional. Este servidor vamos a poder configurarlo para ofrecer los archivos y carpetas que le indiquemos tanto dentro de la red local como fuera de ella. Además, podremos usar versiones seguras de este protocolo (FTPS, SFTP) y configurar un usuario y contraseña para acceder a los datos.

Añadir FTP a Windows 10 - 5

Además, Windows 10 nos permite montar servidores FTP como si fueran unidades de red, por lo que podríamos tener este servidor de archivos como un disco duro más conectado al PC, siendo muy cómodo tanto descargar como subir archivos desde el explorador de archivos.