SMB (Server Message Block) es un protocolo de red utilizado para compartir archivos, impresoras y otros recursos entre dispositivos en una red local (LAN). Es especialmente común en sistemas operativos Windows, aunque también puede ser implementado en Linux y macOS mediante software adicional como Samba.
El protocolo SMB permite a los usuarios acceder a archivos en un servidor remoto como si fueran locales, facilitando la colaboración y el trabajo en red. Además, es el protocolo base para servicios como el compartir archivos en Windows, el acceso remoto a impresoras y ciertas funciones de autenticación en redes empresariales.
Al final del artículo encontrarás un pequeño test que te permitirá evaluar los conocimientos adquiridos en esta lectura
Historia y Evolución de SMB
El protocolo SMB ha evolucionado significativamente desde su creación en la década de 1980. Su desarrollo se puede dividir en varias versiones:
1. SMB 1.0 (1983 – 2006)
- Fue desarrollado inicialmente por IBM en los años 80 para compartir archivos en redes locales.
- Microsoft lo adoptó y lo mejoró con la llegada de Windows for Workgroups 3.1 y versiones posteriores de Windows.
- En su forma más básica, SMB 1.0 operaba sobre NetBIOS sobre TCP/IP (NBT), lo que facilitaba la resolución de nombres en redes pequeñas.
- Problema principal: Inseguridad y bajo rendimiento debido a su alto consumo de ancho de banda.
- En 2017, SMB 1.0 fue oficialmente deshabilitado en Windows 10 debido a vulnerabilidades críticas, como las explotadas por el ransomware WannaCry.
2. SMB 2.0 (2006)
- Introducido con Windows Vista y Windows Server 2008.
- Se rediseñó completamente para mejorar el rendimiento y la seguridad.
- Principales mejoras:
- Reducción en la cantidad de comandos y subcomandos.
- Mayor eficiencia en el uso del ancho de banda.
- Soporte para transacciones atómicas, mejorando la confiabilidad en entornos empresariales.
3. SMB 2.1 (2010)
- Introducido en Windows 7 y Windows Server 2008 R2.
- Se agregaron optimizaciones en el caché y mejoras en la concurrencia para redes de almacenamiento.
4. SMB 3.0 (2012)
- Introducido en Windows 8 y Windows Server 2012.
- Se mejoró notablemente la seguridad con características como:
- Cifrado de extremo a extremo.
- SMB Direct, que permite el uso de RDMA (Remote Direct Memory Access) para mejorar la latencia en servidores.
- Multiplexación de conexiones, lo que permite conexiones más rápidas y tolerantes a fallos.
5. SMB 3.1.1 (2015)
- Introducido en Windows 10 y Windows Server 2016.
- Se agregó:
- Seguridad mejorada con autenticación previa basada en SHA-512.
- Mejor detección de versiones para evitar ataques de downgrade.
- Compresión de datos SMB, que reduce la cantidad de tráfico de red necesario para transferencias grandes.
¿Cómo funciona SMB?
SMB es un protocolo de tipo cliente-servidor que opera sobre TCP/IP, generalmente utilizando el puerto 445 (en versiones modernas) o el puerto 139 cuando se usa con NetBIOS.
Proceso de comunicación
- Inicio de sesión: El cliente se autentica en el servidor utilizando credenciales (usuario/contraseña o autenticación Kerberos en entornos de dominio).
- Negociación del protocolo: Cliente y servidor acuerdan qué versión de SMB usarán.
- Establecimiento de sesión: Se inicia una sesión segura para compartir archivos e impresoras.
- Acceso a recursos: Se transmiten los comandos SMB para abrir, leer, escribir y cerrar archivos compartidos.
- Cierre de sesión: Una vez terminado el acceso, la sesión SMB se cierra.
Usos de SMB
SMB es utilizado en una amplia variedad de aplicaciones empresariales y domésticas:
1. Compartición de archivos e impresoras
- SMB permite a los usuarios acceder a carpetas compartidas en servidores o computadoras dentro de una red.
- Se usa en oficinas y entornos corporativos donde varios usuarios trabajan con archivos almacenados en un servidor central.
2. Acceso remoto a servidores y almacenamiento en red (NAS)
- Dispositivos de almacenamiento en red como Synology, QNAP y TrueNAS utilizan SMB para permitir el acceso remoto a archivos.
3. Autenticación y administración en dominios de Windows
- SMB es un componente clave en Active Directory, ya que permite la autenticación de usuarios en redes empresariales.
4. Montaje de unidades de red
- SMB permite montar discos remotos como unidades de red en Windows (Z:\) y Linux (/mnt/smb_share).
SMB vs. Otros Protocolos de Compartición de Archivos
Característica | SMB | NFS (Network File System) | FTP (File Transfer Protocol) |
Principal uso | Compartir archivos en redes locales (Windows, Linux, macOS) | Compartición de archivos en entornos UNIX/Linux | Transferencia de archivos entre servidores remotos |
Autenticación | Sí, con credenciales o Active Directory | Sí, con Kerberos o autenticación básica | Sí, con usuario y contraseña |
Seguridad | Soporta cifrado en SMB 3.0+ | Menos seguro en versiones antiguas | FTP sin cifrado es inseguro |
Facilidad de uso | Integrado en Windows, fácil configuración | Más técnico, necesita configuración en Linux | Más complejo, requiere software adicional |
Seguridad y Riesgos de SMB
SMB, especialmente en versiones antiguas como SMB 1.0, ha sido un objetivo frecuente de ataques cibernéticos. Algunas de las vulnerabilidades más conocidas incluyen:
- EternalBlue (2017):
- Un exploit en SMB 1.0 que permitió la propagación del ransomware WannaCry.
- Aprovechó una vulnerabilidad en Windows XP y Windows Server 2003.
- Ataques de fuerza bruta:
- Hackers pueden intentar acceder a servidores SMB con credenciales débiles.
- Ataques de relay (pass-the-hash):
- Los atacantes pueden interceptar credenciales SMB y reutilizarlas en la red.
Buenas prácticas para proteger SMB
- Deshabilitar SMB 1.0 en Windows y servidores.
- Habilitar SMB 3.1.1 y cifrado de extremo a extremo.
- Usar firewalls para bloquear el acceso al puerto 445 desde redes externas.
- Implementar autenticación multifactor (MFA) en redes empresariales.
- Actualizar regularmente Windows y servidores para parches de seguridad.
SMB es un protocolo de red esencial para compartir archivos e impresoras en entornos Windows y mixtos (Linux, macOS). Ha evolucionado significativamente desde su versión inicial hasta SMB 3.1.1, mejorando la seguridad y el rendimiento.
Sin embargo, debido a su historial de vulnerabilidades, es crucial configurarlo correctamente y deshabilitar versiones antiguas para evitar ataques.
En redes modernas, SMB sigue siendo una pieza clave en la administración de recursos compartidos, pero debe implementarse con las mejores prácticas de seguridad para proteger los datos corporativos y personales.
SMB (Server Message Block) en MikroTik RouterOS
- Submenú: /ip smb
- Paquetes requeridos: system
El servidor SMB proporciona acceso para compartir archivos en las carpetas configuradas del router.
RouterOS solo es compatible con SMB 2.1, SMB 3.0 y SMB 3.1.1. SMB 1 no es compatible debido a vulnerabilidades de seguridad.
SMB no es compatible con dispositivos SMIPS.
Configuración del Servidor
Propiedad | Descripción |
comment (cadena de texto; Predeterminado: MikrotikSMB) | Establece un comentario para el servidor. |
domain (cadena de texto; Predeterminado: MSHOME) | Nombre del grupo de trabajo de Windows. |
enabled (yes yes | no | auto Default: auto) | El valor predeterminado es “auto”. Esto significa que el servidor SMB se habilitará automáticamente cuando se configure el primer recurso compartido SMB no deshabilitado en “/ip smb share”. |
interface (cadena de texto; Predeterminado: all) | Lista de interfaces en las que se ejecutará el servicio SMB. ‘all’ significa que SMB estará disponible en todas las interfaces. |
A partir de la versión 7.14, la opción allow-guest ha sido reemplazada por un usuario invitado predeterminado en /ip/smb/users. Este usuario puede activarse o desactivarse en esta sección.
Configuración de Comparticiones (Shares)
Submenú: /ip smb shares
Este apartado permite configurar los nombres de las carpetas compartidas y los directorios que serán accesibles a través de SMB.
Si el directorio especificado en la configuración no existe, se creará automáticamente.
Propiedad | Descripción |
comment (cadena de texto; Predeterminado: default share) | Agrega un comentario a la carpeta compartida. |
disabled (yes | no; Default: no) | Si está deshabilitado, no se podrá acceder al recurso compartido. |
valid-users (list of strings; | Default: ) | Especifica qué usuarios tienen permiso para acceder al recurso compartido de Samba. Si se deja vacío, todos los usuarios podrán acceder al recurso compartido; una vez que se definan aquí los usuarios, solo ellos podrán acceder al recurso compartido. |
invalid-users (list of strings; | Default: ) | Se utiliza para especificar usuarios a quienes se les niega explícitamente el acceso al recurso compartido de Samba. |
require-encryption (yes | no; Default: no) | Aplica el uso de cifrado para todas las conexiones a un recurso compartido de Samba en particular |
name (string; Default: ) | Nombre de la carpeta compartida SMB. |
directory (string; Default: ) | Directorio asignado en el router para la carpeta compartida. Si se deja vacío, se usará el nombre del recurso compartido desde la carpeta raíz. |
Configuración de Usuarios
Submenú: /ip smb user
Este apartado permite configurar los usuarios que pueden acceder a las carpetas compartidas mediante SMB.
Propiedad | Descripción |
comment (string; Default: ) | Agrega una descripción al usuario. |
disabled (yes | no; Default: no) | Define si el usuario está habilitado o deshabilitado |
name (string; Default: ) | Nombre de inicio de sesión del usuario del servicio SMB |
password (string; Default: ) | Contraseña del usuario para conectarse al servicio SMB. |
read-only (yes | no; Default: yes) | Establece si el usuario solo tiene derechos de solo lectura al acceder a recursos compartidos o derechos de acceso completo. |
Ejemplo de Configuración
Para hacer que una carpeta en RouterOS sea accesible a través de SMB, sigue estos pasos:
- Crear un usuario SMB
/ip/smb/users/add read-only=no name=mtuser password=mtpasswd
- Agregar una carpeta compartida
/ip/smb/shares/add directory=backup name=backup
- Habilitar el servicio SMB
(Opcional, ya que el valor predeterminado es enabled=auto):
/ip/smb/set enabled=yes
- Verificar la configuración
Ver configuración general del servicio:
/ip/smb/print
enabled: yes
domain: MSHOME
comment: MikrotikSMB
interfaces: all
Ver configuración de usuarios SMB:
/ip smb/users/print
Flags: X - DISABLED; * - DEFAULT; r - READ-ONLY
Columns: NAME, PASSWORD
# NAME PASSWORD
0 X*r guest
1 mtuser mtpasswd
Ver configuración de carpetas compartidas:
/ip/smb/shares/print
Flags: X - DISABLED; * - DEFAULT
Columns: NAME, DIRECTORY, REQUIRE-ENCRYPTION
# NAME DIRECTORY REQUIRE-ENCRYPTION
;;; default share
0 X* pub /pub no
1 backup backup no
Ahora puedes realizar configuraciones adicionales, como deshabilitar el usuario y la carpeta compartida predeterminados, entre otros ajustes.
Conclusión
El protocolo SMB en MikroTik RouterOS es una herramienta útil para compartir archivos en la red local de manera segura y eficiente. Con soporte para SMB 2.1, 3.0 y 3.1.1, se garantiza un mejor rendimiento y seguridad en comparación con versiones anteriores.
Si deseas optimizar la seguridad, se recomienda:
- Deshabilitar SMB 1.0 en redes más antiguas.
- Configurar permisos de acceso adecuados en las carpetas compartidas.
- Activar el cifrado (require-encryption=yes) para mejorar la protección de los datos.
Breve cuestionario de conocimientos
¿Qué te pareció este artículo?
¿Te atreves a evaluar tus conocimientos aprendidos?
Libros recomendados para éste artículo
(Book) Networking with MikroTik RouterOS: A Practical Approach to Understanding and Implementing RouterOS
Study material for the MTCNA Certification Course, updated to RouterOS v7
Libro Control de Tráfico Avanzado, RouterOS v7
Material de estudio para el Curso de Certificación MTCTCE, actualizado a RouterOS v7










