Versiones de SMB en Windows y Samba
Server Message Block (SMB) es un protocolo que permite compartir recursos en una red. Fue desarrollado por IBM y modificado y renombrado, por Microsoft, como CIFS (Common Internet File system).
Como cualquier protocolo, o software, ha ido evolucionando, añadiendo seguridad y nuevas funcionalidades en cada nueva versión. Actualmente hay tres versiones del protocolo SMB, con sus respectivas subversiones.
Windows 10 tiene deshabilitado SMBv1 por defecto
Como el protocolo ha ido evolucionando para, entre otras cosas, solucionar vulnerabilidades. Los nuevos sistemas intentan disuadirnos de usar las versiones vulnerables. Así, en Windows 10 el procolo SMBv1 se encuentra deshabilitado por defecto, e incluso, en ocasiones, no instalado.
Esto, podría ocasionar que Windows 10 no se hable con otros Windows más antiguos, o con algún samba, desactualizado o mal configurado.
¿Qué es samba?
Samba es una implementación libre del protocolo SMB/CIFS que se usa en sistemas GNU/Linux y Unix en general.
Consta de dos partes diferenciadas: el cliente, con el que se accede a máquinas que están compartiendo recursos; y el servidor que se ocupa de poner recursos de la máquina a disposición de otros.
Samba usa un fichero de configuración que en los sistemas Linux estándar, debería estar en /etc/samba/smb.conf
. En este fichero, entre todas las opciones que podemos configurar, podemos definir las versiones mínimas y máximas del protocolo SMB que se usará en las conexiones, tanto para el cliente, como para el servidor. Por ejemplo:
[Global]
min protocol = SMB2
client min protocol = SMB2
max protocol = SMB3
client max protocol = SMB3
Lenguaje del código: texto plano (plaintext)
Escenarios
Supongamos que queremos compartir cositas entre máquinas Windows y Linux con diferentes versiones. Aquí vamos a encontrar diferentes escenarios
En la red hay solamente equipos modernos como Windows 10, samba 4 o superiores (pensando en el futuro):
Configura smb.conf para que samba use solo protocolos SMBv2 y SMBv3 para evitare uso de la versión menos segura.
Si en la red hay equipos Windows o Linux antiguos, que no soportan versiones modernas de SMB, entonces:
Habilitar el protocolo SMBv1 en Windows 10
Puedes habilitar el uso de SMBv1 en Windows 10, como se indica en la documentación de Microsoft.
Abre PowerShell como Administrador y ejecuta
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Lenguaje del código: PowerShell (powershell)
Reinicia el equipo.
Otra opción:
Si tienes recursos suficientes usa un servidor para compartir ficheros independiente. La idea es que este servidor acepte todas las versiones de SMB y cada equipo se conectará a él con el protocolo que necesite. Con esto, cada sistema puede usar el protocolo más seguro posible.