El protocolo Server Message Block ( SMB ) es un protocolo de comunicación [ 1 ] utilizado para compartir archivos, impresoras , puertos serie y comunicaciones diversas entre nodos en una red . En Windows , la implementación de SMB consta de dos servicios de Windows con nombres poco descriptivos : "Server" (ID: LanmanServer) y "Workstation" (ID: LanmanWorkstation). [ 2 ] Utiliza los protocolos NTLM o Kerberos para la autenticación de usuarios. También proporciona un mecanismo de comunicación entre procesos (IPC) autenticado.
SMB fue desarrollado originalmente en 1983 por Barry A. Feigenbaum en IBM [ 3 ] para compartir el acceso a archivos e impresoras a través de una red de sistemas que ejecutaban IBM PC DOS . En 1987, Microsoft y 3Com implementaron SMB en LAN Manager para OS/2 , momento en el que SMB utilizaba el servicio NetBIOS sobre el protocolo NetBIOS Frames como su transporte subyacente. Posteriormente, Microsoft implementó SMB en Windows NT 3.1 y lo ha estado actualizando desde entonces, adaptándolo para que funcione con transportes subyacentes más recientes: TCP/IP y NetBT . SMB sobre QUIC se introdujo en Windows Server 2022 .
En 1996, Microsoft publicó una versión de SMB 1.0 [ 4 ] con modificaciones menores bajo el nombre de Sistema Común de Archivos de Internet ( CIFS / sɪfs / ) . CIFS era compatible incluso con la primera versión de SMB, incluida la de LAN Manager . [ 4 ] Admite enlaces simbólicos, enlaces duros y archivos de mayor tamaño, pero ninguna de las características de SMB 2.0 y posteriores. [ 4 ] [ 5 ] Sin embargo , la propuesta de Microsoft se quedó como un borrador de Internet y nunca alcanzó el estatus de estándar. [ 6 ] Desde entonces, Microsoft ha descontinuado el nombre CIFS, pero continúa desarrollando SMB y publicando especificaciones posteriores. Samba es una reimplementación de software libre del protocolo SMB y las extensiones de Microsoft para el mismo.
Características
El protocolo Server Message Block (SMB) permite compartir archivos , impresoras , explorar la red y comunicarse entre procesos (mediante tuberías con nombre ) en una red informática . SMB sirve de base para la implementación del Sistema de Archivos Distribuidos de Microsoft .
SMB se basa en los protocolos TCP e IP para el transporte. Esta combinación permite compartir archivos a través de redes complejas e interconectadas , incluida Internet. El componente de servidor SMB utiliza el puerto TCP 445. Originalmente, SMB funcionaba con NetBIOS sobre IEEE 802.2 ( tramas NetBIOS o NBF) y sobre IPX/SPX , y posteriormente con NetBIOS sobre TCP/IP (NetBT), pero Microsoft ha dejado de dar soporte a estos protocolos. En NetBT, el componente de servidor utiliza tres puertos TCP o UDP : 137 (Servicio de nombres NETBIOS), 138 (Servicio de datagramas NETBIOS) y 139 (Servicio de sesión NETBIOS).
En Microsoft Windows, dos servicios de Windows implementan SMB. El servicio "Servidor" (ID: LanmanServer) se encarga de servir recursos compartidos . El servicio "Estación de trabajo" (ID: LanmanWorkstation) mantiene el nombre del equipo y ayuda a acceder a los recursos compartidos en otros equipos. [ 2 ] SMB utiliza el protocolo Kerberos para autenticar a los usuarios contra Active Directory en redes de dominio de Windows . En redes punto a punto más simples, SMB utiliza el protocolo NTLM .
Windows NT 4.0 SP3 y versiones posteriores pueden firmar digitalmente los mensajes SMB para prevenir algunos ataques de intermediario . [ 7 ] [ 8 ] [ 9 ] La firma SMB se puede configurar individualmente para las conexiones SMB entrantes (mediante el servicio "LanmanServer") y las conexiones SMB salientes (mediante el servicio "LanmanWorkstation"). La configuración predeterminada para los controladores de dominio de Windows que ejecutan Windows Server 2003 y versiones posteriores es no permitir conexiones entrantes sin firmar. [ 10 ] Por lo tanto, las versiones anteriores de Windows que no admiten la firma SMB de forma nativa (incluido Windows 9x ) no pueden conectarse a un controlador de dominio de Windows Server 2003. [ 8 ]
SMB admite el bloqueo oportunista (véase más abajo) en los archivos para mejorar el rendimiento. La compatibilidad con el bloqueo oportunista ha cambiado con cada versión de Windows Server.
Bloqueo oportunista
En el protocolo SMB, el bloqueo oportunista es un mecanismo diseñado para mejorar el rendimiento al controlar el almacenamiento en caché de archivos de red por parte del cliente. [ 11 ] A diferencia de los bloqueos tradicionales , el bloqueo oportunista (OpLocks) no es estrictamente un bloqueo de archivos ni se utiliza para proporcionar exclusión mutua.
Existen cuatro tipos de cerraduras oportunistas.
- Bloqueos por lotes
- Los OpLocks de tipo "batch" se crearon originalmente para dar soporte a un comportamiento particular de la ejecución de archivos por lotes de DOS, en el que el archivo se abre y se cierra muchas veces en un corto período, lo que supone un problema de rendimiento. Para solucionarlo, un cliente puede solicitar un OpLock de tipo "batch". En este caso, el cliente retrasa el envío de la solicitud de cierre y, si posteriormente se realiza una solicitud de apertura, ambas se cancelan mutuamente. [ 12 ]
- Bloqueos OpLocks de nivel 1 / Bloqueos exclusivos
- Cuando una aplicación abre en modo compartido un archivo alojado en un servidor SMB que no está siendo abierto por ningún otro proceso (ni por otros clientes), el cliente recibe un OpLock exclusivo del servidor. Esto significa que el cliente puede asumir que es el único proceso con acceso a ese archivo en particular y puede almacenar en caché todos los cambios realizados antes de confirmarlos en el servidor. Esto supone una mejora del rendimiento, ya que se requieren menos viajes de ida y vuelta para leer y escribir en el archivo. Si otro cliente o proceso intenta abrir el mismo archivo, el servidor envía un mensaje al cliente (denominado interrupción o revocación ) que invalida el bloqueo exclusivo previamente otorgado al cliente. El cliente entonces descarta todos los cambios realizados en el archivo.
- Bloqueos de operación de nivel 2
- Si un cliente posee un OpLock exclusivo y un tercero abre un archivo bloqueado, el cliente debe liberar su OpLock exclusivo para permitir el acceso de lectura/escritura al otro cliente. En ese caso, el cliente puede recibir un OpLock de nivel 2 del servidor. Un OpLock de nivel 2 permite el almacenamiento en caché de las solicitudes de lectura, pero excluye el almacenamiento en caché de las solicitudes de escritura.
- Filtrar OpLocks
- Los OpLocks de filtro, añadidos en Windows NT 4.0, son similares a los OpLocks de nivel 2, pero evitan las infracciones del modo de uso compartido entre la apertura del archivo y la recepción del bloqueo. Microsoft recomienda usar los OpLocks de filtro solo cuando sea importante permitir el acceso a varios lectores y los OpLocks de nivel 2 en otras circunstancias. Los clientes que poseen un OpLock no mantienen un bloqueo real sobre el archivo, sino que reciben una notificación de interrupción cuando otro cliente intenta acceder al archivo de forma incompatible con su bloqueo. La solicitud del otro cliente se retiene mientras se procesa la interrupción.
- Descansos
- A diferencia del comportamiento estándar del protocolo SMB, el servidor puede enviar una solicitud de interrupción al cliente. Esta solicitud informa al cliente que un OpLock ya no es válido. Esto ocurre, por ejemplo, cuando otro cliente desea abrir un archivo de forma que invalida el OpLock. Al primer cliente se le envía entonces una solicitud de interrupción del OpLock y se le exige que envíe todos sus cambios locales (en caso de OpLocks por lotes o exclusivos), si los hubiera, y que confirme la interrupción. Tras esta confirmación, el servidor puede responder al segundo cliente de forma consistente.
Actuación
El uso del protocolo SMB se ha correlacionado frecuentemente con un aumento significativo del tráfico de difusión en una red. Sin embargo, el propio SMB no utiliza difusiones; los problemas de difusión comúnmente asociados con SMB se originan en el protocolo de localización de servicios NetBIOS . De forma predeterminada, un servidor Microsoft Windows NT 4.0 utilizaba NetBIOS para anunciar y localizar servicios. NetBIOS funciona mediante la difusión de los servicios disponibles en un host específico a intervalos regulares. Si bien esto suele ser una configuración predeterminada aceptable en una red con un número reducido de hosts, el aumento del tráfico de difusión puede causar problemas a medida que aumenta el número de hosts en la red. La implementación de una infraestructura de resolución de nombres, como el Servicio de Nombres de Internet de Windows (WINS) o el Sistema de Nombres de Dominio (DNS), resuelve este problema. WINS era una implementación propietaria utilizada en redes Windows NT 4.0, pero generó sus propios problemas y complejidades en el diseño y mantenimiento de una red Microsoft.
Desde el lanzamiento de Windows 2000, Microsoft ha dejado de usar WINS para la resolución de nombres, y ahora el DNS dinámico jerárquico está configurado como el protocolo de resolución de nombres predeterminado para todos los sistemas operativos Windows. La resolución de nombres NetBIOS (cortos) mediante DNS requiere que un cliente DNS expanda los nombres cortos, generalmente agregando un sufijo DNS específico de la conexión a sus consultas de búsqueda DNS. WINS aún se puede configurar en los clientes como un protocolo de resolución de nombres secundario para la interoperabilidad con entornos y aplicaciones Windows heredados. Además, los servidores DNS de Microsoft pueden reenviar las solicitudes de resolución de nombres a servidores WINS heredados para admitir la integración de la resolución de nombres con entornos heredados (anteriores a Windows 2000) que no admiten DNS.
Los diseñadores de redes han descubierto que la latencia tiene un impacto significativo en el rendimiento del protocolo SMB 1.0, que funciona peor que otros protocolos como FTP . La monitorización revela un alto grado de "conversación" y una falta de consideración de la latencia de red entre hosts. [ 13 ] Por ejemplo, una conexión VPN a través de Internet a menudo introduce latencia de red. Microsoft ha explicado que los problemas de rendimiento se deben principalmente a que SMB 1.0 es un protocolo a nivel de bloque en lugar de un protocolo de transmisión , que fue diseñado originalmente para LAN pequeñas ; tiene un tamaño de bloque limitado a 64K, la firma SMB crea una sobrecarga adicional y el tamaño de la ventana TCP no está optimizado para enlaces WAN. [ 14 ] Las soluciones a este problema incluyen el protocolo SMB 2.0 actualizado, [ 15 ] Archivos sin conexión , escalado de ventana TCP y dispositivos de optimización WAN de varios proveedores de red que almacenan en caché y optimizan SMB 1.0 [ 16 ] y 2.0. [ 17 ]
Historia
SMB 1.0
Barry Feigenbaum diseñó originalmente SMB en IBM a principios de 1983 con el objetivo de convertir el acceso a archivos locales DOS INT 21h en un sistema de archivos en red. [ 3 ] Microsoft realizó modificaciones considerables a la versión más utilizada e incluyó soporte para SMB en el sistema operativo LAN Manager que había comenzado a desarrollar para OS/2 con 3Com alrededor de 1990. [ 18 ] [ 19 ] [ 20 ] Microsoft continuó agregando características al protocolo en Windows para grupos de trabajo ( c. 1992 ) y en versiones posteriores de Windows. La autenticación de LAN Manager se implementó basándose en el requisito de la especificación SMB heredada original de usar contraseñas de IBM "LAN Manager", pero implementó DES de una manera defectuosa que permitía descifrar las contraseñas. [ 21 ] Posteriormente, también se agregó la autenticación Kerberos . Los protocolos de inicio de sesión de dominio de Windows inicialmente usaban cifrado de 40 bits fuera de los Estados Unidos , debido a las restricciones de exportación sobre el cifrado más fuerte de 128 bits [ 22 ] (posteriormente levantadas en 1996 cuando el presidente Bill Clinton firmó la Orden Ejecutiva 13026 [ 23 ] ).
SMB 1.0 (o SMB1) fue diseñado originalmente para ejecutarse en tramas NetBIOS (NetBIOS sobre IEEE 802.2 ). Desde entonces, se ha adaptado a NetBIOS sobre IPX/SPX (NBX) y NetBIOS sobre TCP/IP (NetBT). Además, desde Windows 2000 , SMB se ejecuta en TCP usando el puerto TCP 445, una característica conocida como "SMB de host directo". [ 24 ] Todavía existe una capa delgada (similar al paquete de mensaje de sesión del servicio de sesión de NetBT) entre SMB y TCP. [ 24 ] Windows Server 2003 y los dispositivos NAS heredados usan SMB1 de forma nativa.
SMB1 es un protocolo extremadamente comunicativo, lo cual no representa un problema en una red de área local (LAN) con baja latencia. Sin embargo, se vuelve muy lento en redes de área amplia (WAN), ya que el intercambio de mensajes del protocolo magnifica la alta latencia inherente a este tipo de redes. Las versiones posteriores del protocolo redujeron la gran cantidad de intercambios de mensajes. Una forma de mitigar las ineficiencias del protocolo es utilizar productos de optimización de WAN, como los que ofrecen Riverbed , Silver Peak o Cisco . Una mejor opción es actualizar a una versión posterior de SMB. Esto incluye actualizar tanto los dispositivos NAS como Windows Server 2003. El método más eficaz para identificar el tráfico SMB1 es mediante una herramienta de análisis de red, como Wireshark . Microsoft también proporciona una herramienta de auditoría en Windows Server 2016 para rastrear los dispositivos que utilizan SMB1. [ 25 ]
Microsoft marcó SMB1 como obsoleto en junio de 2013. [ 26 ] Windows Server 2016 y Windows 10 versión 1709 no tienen SMB1 instalado de forma predeterminada. [ 27 ]
CIFS
En 1996, cuando Sun Microsystems anunció WebNFS , [ 28 ] Microsoft lanzó una iniciativa para cambiar el nombre de SMB a Common Internet File System (CIFS) [ 3 ] y agregó más características, incluyendo soporte para enlaces simbólicos , enlaces duros , tamaños de archivo mayores y un intento inicial de admitir conexiones directas a través del puerto TCP 445 sin requerir NetBIOS como transporte (un esfuerzo en gran medida experimental que requirió mayor refinamiento). Microsoft presentó algunas especificaciones parciales como borradores de Internet al IETF . [ 6 ] Estas presentaciones ya han caducado.
SMB 2.0
Microsoft introdujo una nueva versión del protocolo (SMB 2.0 o SMB2) en 2006 con Windows Vista y Windows Server 2008. [ 29 ] Aunque el protocolo es propietario, su especificación se ha publicado para permitir que otros sistemas interoperan con los sistemas operativos de Microsoft que utilizan el nuevo protocolo. [ 30 ]
SMB2 reduce la "conversación" del protocolo SMB 1.0 al reducir el número de comandos y subcomandos de más de cien a solo diecinueve. [ 13 ] Tiene mecanismos para el enrutamiento en paralelo , es decir, enviar solicitudes adicionales antes de que llegue la respuesta a una solicitud anterior, mejorando así el rendimiento en enlaces de alta latencia . Agrega la capacidad de combinar múltiples acciones en una sola solicitud, lo que reduce significativamente la cantidad de viajes de ida y vuelta que el cliente necesita hacer al servidor, mejorando el rendimiento como resultado. [ 13 ] SMB1 también tiene un mecanismo de composición, conocido como AndX, para combinar múltiples acciones, pero los clientes de Microsoft rara vez usan AndX. También introduce la noción de "identificadores de archivo duraderos": estos permiten que una conexión a un servidor SMB sobreviva a breves interrupciones de red, como las típicas en una red inalámbrica, sin tener que incurrir en la sobrecarga de renegociar una nueva sesión.
SMB2 incluye soporte para enlaces simbólicos . Otras mejoras incluyen el almacenamiento en caché de propiedades de archivos, una firma de mensajes mejorada con el algoritmo de hash HMAC SHA-256 y una mejor escalabilidad al aumentar el número de usuarios, recursos compartidos y archivos abiertos por servidor, entre otros. [ 13 ] El protocolo SMB1 utiliza tamaños de datos de 16 bits, lo que, entre otras cosas, limita el tamaño máximo del bloque a 64 KB. SMB2 utiliza campos de almacenamiento de 32 o 64 bits de ancho, y 128 bits en el caso de los identificadores de archivo , eliminando así las restricciones anteriores sobre los tamaños de bloque, lo que mejora el rendimiento con transferencias de archivos grandes en redes rápidas. [ 13 ]
Los sistemas operativos Windows Vista/ Server 2008 y posteriores utilizan SMB2 para comunicarse con otras máquinas que también admiten SMB2. SMB1 se sigue utilizando para conexiones con versiones anteriores de Windows, así como con soluciones NAS de diversos proveedores . Samba 3.5 también incluye soporte experimental para SMB2. [ 31 ] Samba 3.6 es totalmente compatible con SMB2, excepto en lo que respecta a la modificación de cuotas de usuario mediante las herramientas de administración de cuotas de Windows. [ 32 ]
Cuando se introdujo SMB2, trajo consigo una serie de beneficios sobre SMB1 para los implementadores de protocolos SMB de terceros. SMB1, diseñado originalmente por IBM , fue sometido a ingeniería inversa y posteriormente se integró en una amplia variedad de sistemas operativos distintos de Windows, como Xenix , OS/2 y VMS ( Pathworks ). X/Open lo estandarizó parcialmente; Microsoft había presentado borradores de Internet que describían SMB2 al IETF , en parte como respuesta a la estandarización formal del IETF de la versión 4 del Network File System en diciembre de 2000. [ 33 ] Sin embargo, esos borradores de Internet relacionados con SMB caducaron sin obtener ninguna aprobación del IETF ni ningún otro respaldo del IETF. (Véase http://ubiqx.org/cifs/Intro.html para obtener detalles históricos). SMB2 también representa una ruptura relativamente limpia con el pasado. El código SMB1 de Microsoft debe funcionar con una gran variedad de clientes y servidores SMB. SMB1 presenta varias versiones de información para los comandos (seleccionando la estructura que se debe devolver para una solicitud específica) debido a que características como la compatibilidad con Unicode se incorporaron posteriormente. SMB2 implica una reducción significativa en las pruebas de compatibilidad para quienes implementan el protocolo. El código de SMB2 es considerablemente menos complejo, ya que presenta mucha menos variabilidad (por ejemplo, las rutas de código que no son Unicode se vuelven redundantes, puesto que SMB2 requiere compatibilidad con Unicode).
Apple migró a SMB2 (desde su propio Apple Filing Protocol , ahora heredado) a partir de OS X 10.9 "Mavericks" . [ 34 ] Sin embargo, esta transición estuvo plagada de problemas de compatibilidad. [ 35 ] [ 36 ] De hecho, el soporte no predeterminado para SMB2 apareció en OS X 10.7, cuando Apple abandonó Samba en favor de su propia implementación de SMB llamada SMBX [ 34 ] después de que Samba adoptara GPLv3 . [ 37 ] [ 38 ]
El sistema de archivos cliente CIFS del kernel de Linux tiene soporte para SMB2 desde la versión 3.7. [ 39 ]
SMB 2.1
SMB 2.1, introducido con Windows 7 y Server 2008 R2, introdujo mejoras menores de rendimiento con un nuevo mecanismo de bloqueo oportunista. [ 40 ]
SMB 3.0
SMB 3.0 (anteriormente llamado SMB 2.2) [ 41 ] se introdujo con Windows 8 [ 41 ] y Windows Server 2012. [ 41 ] Introdujo varios cambios significativos destinados a agregar funcionalidad y mejorar el rendimiento de SMB2, [ 42 ] especialmente en centros de datos virtualizados :
- el protocolo SMB Direct (SMB sobre acceso directo a memoria remota [RDMA])
- Multicanal SMB (múltiples conexiones por sesión SMB), [ 43 ] [ 44 ]
- Conmutación por error transparente de SMB [ 45 ] [ 46 ]
También introduce varias mejoras de seguridad, como el cifrado de extremo a extremo y un nuevo algoritmo de firma basado en AES . [ 47 ] [ 48 ]
SMB 3.0.2
SMB 3.0.2 (conocido como 3.02 en ese momento) se introdujo con Windows 8.1 y Windows Server 2012 R2; [ 49 ] [ 50 ] en esas versiones y posteriores, la versión anterior de SMB 1 se puede deshabilitar opcionalmente para aumentar la seguridad. [ 51 ] [ 52 ]
SMB 3.1.1
SMB 3.1.1 se introdujo con Windows 10 y Windows Server 2016. [ 53 ] Esta versión admite el cifrado AES-128 GCM , además del cifrado AES-128 CCM añadido en SMB3, e implementa la comprobación de integridad previa a la autenticación mediante el hash SHA-512 . SMB 3.1.1 también hace que la negociación segura sea obligatoria al conectarse a clientes que utilizan versiones de SMB compatibles. [ 54 ]
Presupuesto
Las especificaciones del protocolo SMB son propietarias y, en un principio, eran cerradas, lo que obligó a otros proveedores y proyectos a realizar ingeniería inversa del protocolo para poder interoperar con él. El protocolo SMB 1.0 se publicó algún tiempo después de haber sido sometido a ingeniería inversa, mientras que el protocolo SMB 2.0 estuvo disponible desde el principio en el Centro de desarrolladores de especificaciones abiertas de Microsoft. [ 55 ]
Implementaciones de terceros
Samba
En 1991, Andrew Tridgell comenzó el desarrollo de Samba, una reimplementación de software libre (utilizando ingeniería inversa ) del protocolo de red SMB/CIFS para sistemas tipo Unix , inicialmente para implementar un servidor SMB que permitiera a los clientes de PC que ejecutaban el cliente DEC Pathworks acceder a archivos en máquinas SunOS . [ 3 ] [ 56 ] Debido a la importancia del protocolo SMB en la interacción con la extendida plataforma Microsoft Windows , Samba se convirtió en una popular implementación de software libre de un cliente y servidor SMB compatible para permitir que los sistemas operativos que no son Windows, como los sistemas operativos tipo Unix , interoperaran con Windows.
A partir de la versión 3 (2003), Samba proporciona servicios de archivos e impresión para clientes de Microsoft Windows y puede integrarse con un dominio de servidor Windows NT 4.0 , ya sea como controlador de dominio principal (PDC) o como miembro del dominio. Las instalaciones de Samba4 pueden funcionar como controlador de dominio o servidor miembro de Active Directory , en los niveles funcionales de dominio y bosque de Windows 2008. [ 57 ]
Los gestores de paquetes en las distribuciones de Linux pueden buscar el paquete cifs-utils . Este paquete es propiedad de los mantenedores de Samba.
Netsmb
NSMB (Netsmb y SMBFS) es una familia de implementaciones de cliente SMB en el núcleo de los sistemas operativos BSD . Boris Popov contribuyó por primera vez a FreeBSD 4.4 y ahora se encuentra en una amplia gama de otros sistemas BSD, incluidos NetBSD y macOS . [ 58 ] Las implementaciones han divergido significativamente desde entonces. [ 59 ]
La versión de NSMB para macOS destaca por su esquema, ahora común, de representación de enlaces simbólicos. Este formato "Minshall-French" muestra los enlaces simbólicos como archivos de texto con una .symlinkextensión y un Xsym\nnúmero mágico, siempre de 1067 bytes de longitud. Este formato también se utiliza para almacenar enlaces simbólicos en servidores SMB nativos o sistemas de archivos no compatibles. Samba admite este formato mediante una mfsymlinkopción. [ 60 ] Docker en Windows también parece utilizarlo.
NQ
NQ es una familia de implementaciones portátiles de cliente y servidor SMB desarrolladas por Visuality Systems. [ 61 ] La familia NQ comprende una pila SMB integrada (escrita en C), un cliente SMB en Java puro y una implementación de servidor SMB de almacenamiento. Todas las versiones admiten el dialecto SMB 3.1.1. Son compatibles con Linux, Windows CE, iOS, Android, VxWorks y otros sistemas operativos.
MoSMB
MoSMB es una implementación de SMB en espacio de usuario para Linux. Admite SMB 2.x y SMB 3.x. Sus características principales incluyen clústeres escalables activos-activos a escala de nube, SMB Direct (RDMA), SMB Multichannel, conmutación por error transparente y disponibilidad continua. MoSMB también admite el almacenamiento de objetos Amazon S3 como backend de almacenamiento, además de sistemas de archivos POSIX como ext4 , ZFS , Lustre , Ceph , etc. [ 62 ]
Compartir archivos Fusion de Tuxera
Fusion File Share de Tuxera es una implementación de servidor SMB propietaria desarrollada por Tuxera que puede ejecutarse en el espacio del kernel o en el espacio del usuario . [ 63 ] Es compatible con SMB 3.1.1 y todas las versiones anteriores, además de características SMB avanzadas como disponibilidad continua (identificadores persistentes), escalabilidad horizontal, RDMA (SMB Direct), SMB multicanal, compresión transparente y copia de sombra .
Asimismo
En 2009, Likewise desarrolló una implementación de CIFS/SMB (versiones 1.0, 2.0, 2.1 y SMB 3.0) que proporcionaba una plataforma multiprotocolo con reconocimiento de identidad para el acceso a archivos en red, utilizada en productos de almacenamiento OEM basados en dispositivos Linux/Unix. Esta plataforma podía utilizarse con dispositivos NAS tradicionales, Cloud Gateway y Cloud Caching para ofrecer acceso seguro a archivos a través de la red. En 2012, Likewise fue adquirida por EMC Isilon .
KSMBD
KSMBD es una implementación de servidor CIFS/SMB de código abierto integrada en el kernel de Linux. En comparación con las implementaciones en espacio de usuario, ofrece un mejor rendimiento y facilita la implementación de algunas características, como SMB Direct. Es compatible con SMB 3.1.1 y versiones anteriores.
Seguridad
A lo largo de los años, se han detectado numerosas vulnerabilidades de seguridad en la implementación del protocolo o de los componentes de los que Microsoft depende directamente. [ 64 ] [ 65 ] Las vulnerabilidades de seguridad de otros proveedores radican principalmente en la falta de compatibilidad con protocolos de autenticación más recientes como NTLMv2 y Kerberos, en favor de protocolos como NTLMv1, LanMan o contraseñas en texto plano . El seguimiento de ataques en tiempo real [ 66 ] muestra que SMB es uno de los principales vectores de ataque para intentos de intrusión, [ 67 ] por ejemplo el ataque a Sony Pictures de 2014 [ 68 ] y el ataque de ransomware WannaCry de 2017. [ 69 ] En 2020, se revelaron dos vulnerabilidades de alta gravedad de SMB y se denominaron SMBGhost ( CVE-2020-0796 ) y SMBleed ( CVE-2020-1206 ), que cuando se encadenan juntas pueden proporcionar privilegios de ejecución remota de código (RCE) al atacante. [ 70 ]
Véase también
Referencias
- ↑ "Descripción general del protocolo SMB de Microsoft y del protocolo CIFS" . Microsoft . 22 de octubre de 2009. Archivado del original el 2 de agosto de 2016. Consultado el 10 de abril de 2019 .
- 1 2 "Conceptos de redes de Lan Manager" . Soporte . Microsoft. Archivado del original el 30 de diciembre de 2012. Recuperado el 18 de septiembre de 2014 .
- 1 2 3 4 Tridgell, Andrew . "Mitos sobre la samba" . Archivado del original el 20 de octubre de 2017. Recuperado el 3 de enero de 2016 .
- 1 2 3 "Sistema de archivos común de Internet" . Descripción general técnica de los servicios web y de aplicaciones de Windows 2000. Microsoft. 18 de julio de 2012. Archivado del original el 30 de enero de 2022. Recuperado el 30 de enero de 2022 a través de Microsoft Docs .
- ↑ Coulter, David; Satran, Michael; Batchelor, Drew (8 de enero de 2021). "Descripción general del protocolo SMB de Microsoft y del protocolo CIFS" . Desarrollo de aplicaciones para Windows . Microsoft . Archivado del original el 28 de enero de 2022. Recuperado el 30 de enero de 2022 a través de Microsoft Docs .
- 1 2 Ver:
- Heizer, I.; Leach, P.; Perry, D. (13 de junio de 1996). "Protocolo común del sistema de archivos de Internet (CIFS/1.0)" . Archivado del original el 8 de agosto de 2019.
- Leach, Paul J.; Naik, Dilip C. (3 de enero de 1997). "Inicio de sesión CIFS y autenticación de paso" . Archivado del original el 31 de mayo de 2024. Recuperado el 10 de diciembre de 2017 .
- Leach, Paul J.; Naik, Dilip C. (10 de enero de 1997). "Protocolo de navegador CIFS/E" . Archivado del original el 31 de mayo de 2024. Recuperado el 10 de diciembre de 2017 .
- Leach, Paul J.; Naik, Dilip C. (31 de enero de 1997). "Especificación de impresión CIFS" . Archivado del original el 31 de mayo de 2024. Recuperado el 10 de diciembre de 2017 .
- Leach, Paul J.; Naik, Dilip C. (26 de febrero de 1997). "Protocolo de administración remota CIFS" . Archivado del original el 31 de mayo de 2024. Recuperado el 10 de diciembre de 2017 .
- Leach, Paul J.; Naik, Dilip C. (19 de diciembre de 1997). "Un protocolo común del sistema de archivos de Internet (CIFS/1.0)" . Archivado del original el 31 de mayo de 2024. Recuperado el 10 de diciembre de 2017 .
- ↑ "Información general sobre la firma de bloques de mensajes del servidor" . Solución de problemas de Windows Server . Microsoft . 24 de noviembre de 2021. Archivado del original el 29 de enero de 2022. Recuperado el 29 de enero de 2022 a través de Microsoft Docs .
- 1 2 Johansson, Jesper M. (20 de mayo de 2005). "Cómo dispararse en el pie con la seguridad, parte 1" . Guía de seguridad . Microsoft . Archivado del original el 19 de octubre de 2018. Recuperado el 19 de octubre de 2018 a través de Microsoft Docs .
Este artículo trata sobre [...] la firma de mensajes de Server Message Block (SMB).
- ↑ Barreto, Jose (1 de diciembre de 2010). "Los fundamentos de la firma SMB (que abarca tanto SMB1 como SMB2)" . Archivo del blog de Jose Barreto . Microsoft . Archivado del original el 2 de diciembre de 2012 , a través de Microsoft Docs .
Este mecanismo de seguridad en el protocolo SMB ayuda a evitar problemas como la manipulación de paquetes y los ataques de "intermediario". [...] La firma SMB está disponible en todas las versiones de Windows compatibles actualmente, pero solo está habilitada de forma predeterminada en los controladores de dominio. Esto se recomienda para los controladores de dominio porque SMB es el protocolo que utilizan los clientes para descargar información de directivas de grupo. La firma SMB proporciona una forma de garantizar que el cliente reciba directivas de grupo auténticas.
- ↑ "MSKB887429: Información general sobre la firma de SMB" . Microsoft . 30 de noviembre de 2007. Archivado del original el 20 de noviembre de 2010. Consultado el 24 de octubre de 2012. De
forma predeterminada, la firma SMB es necesaria para las sesiones SMB entrantes en los controladores de dominio basados en Windows Server 2003.
- ↑ "Bloqueos oportunistas" . Microsoft. 31 de mayo de 2018. Archivado del original el 19 de agosto de 2021. Consultado el 19 de agosto de 2021 .
- ↑ "Todo sobre el bloqueo oportunista" . Sphere IT . 2014. Archivado del original el 19 de agosto de 2021. Recuperado el 19 de agosto de 2021 .
- 1 2 3 4 5 Jose Barreto (9 de diciembre de 2008). "SMB2, un rediseño completo del protocolo principal de archivos remotos para Windows" . Blogs de Microsoft Server & Management. Archivado del original el 12 de enero de 2013. Recuperado el 1 de noviembre de 2009 .
- ↑ Neil Carpenter (26 de octubre de 2004). "Rendimiento de SMB/CIFS a través de enlaces WAN" . Microsoft . Archivado del original el 13 de febrero de 2020. Recuperado el 13 de febrero de 2020 .
- ↑ "Novedades de SMB en Windows Server" . Microsoft . 31 de agosto de 2016. Archivado del original el 11 de febrero de 2017. Consultado el 6 de febrero de 2017 .
- ↑ Mark Rabinovich, Igor Gokhman. "Técnicas de aceleración CIFS" (PDF) . Storage Developer Conference, SNIA, Santa Clara 2009. Archivado (PDF) del original el 30 de septiembre de 2020. Recuperado el 6 de julio de 2020 .
- ↑ Mark Rabinovich. "Acelerando SMB2" (PDF) . Conferencia de desarrolladores de almacenamiento, SNIA, Santa Clara 2011. Archivado (PDF) del original el 31 de mayo de 2024. Recuperado el 6 de julio de 2020 .
- ↑ Speed, Richard. "¿Hay que usar SMB 1.0? La actualización de Windows 10 de abril de 2018 dice que NO" . theregister.com . Archivado del original el 18 de febrero de 2023. Consultado el 18 de febrero de 2023 .
- ↑ guenni (15 de junio de 2017). "Microsoft planea desactivar SMBv1 en Windows 10 V1709" . Born's Tech and Windows World . Archivado del original el 18 de febrero de 2023. Recuperado el 18 de febrero de 2023 .
- ↑ Giret, Laurent (20 de abril de 2022). "Microsoft se prepara para deshabilitar el protocolo SMB1 en Windows 11" . Thurrott.com . Archivado del original el 31 de mayo de 2024. Consultado el 18 de febrero de 2023 .
- ↑ Christopher Hertel (1999). "SMB: El protocolo de bloque de mensajes del servidor" . Archivado del original el 10 de marzo de 2010. Recuperado el 1 de noviembre de 2009 .
- ↑ "Descripción del paquete de cifrado 1 de Microsoft Windows" . Microsoft . 1 de noviembre de 2006. Archivado del original el 2 de octubre de 2009. Consultado el 1 de noviembre de 2009 .
- ↑ "Orden Ejecutiva 13026 de EE. UU." (PDF) . Gobierno de los Estados Unidos . 1996. Archivado (PDF) del original el 10 de octubre de 2009. Consultado el 1 de noviembre de 2009 .
- 1 2 "Alojamiento directo de SMB sobre TCP/IP" . Microsoft . 11 de octubre de 2007. Archivado del original el 26 de marzo de 2011. Recuperado el 1 de noviembre de 2009 .
- ↑ Kyttle, Ralph (13 de mayo de 2017). "SMB1: Auditoría del uso activo mediante Message Analyzer" . Microsoft TechNet . Microsoft. Archivado del original el 28 de marzo de 2019. Recuperado el 28 de marzo de 2019 .
- ↑ "La descontinuación de SMB1: deberías planificar deshacerte de este antiguo dialecto de SMB - Blog de José Barreto" . blogs.technet.microsoft.com . 21 de abril de 2015. Archivado del original el 21 de mayo de 2017. Consultado el 9 de octubre de 2019 .
- ↑ "SMBv1 no se instala de forma predeterminada en Windows 10 Fall Creators Update y Windows Server, versión 1709 y versiones posteriores" . support.microsoft.com . Archivado del original el 10 de octubre de 2019. Consultado el 9 de octubre de 2019 .
- ↑ "WebNFS - Descripción técnica" . Archivado del original el 18 de mayo de 2007.
- ↑ Navjot Virk y Prashanth Prahalad (10 de marzo de 2006). "Novedades de SMB en Windows Vista" . Chk Your Dsks . Microsoft . Archivado del original el 5 de mayo de 2006. Consultado el 1 de mayo de 2006 .
- ↑ Protocolo Server Message Block (SMB) versiones 2 y 3. Protocolos de Windows. Especificaciones abiertas (Informe técnico). Microsoft Docs . Microsoft . MS-SMB2 . Consultado el 29/11/2020 .
- ↑ "Samba 3.5.0 disponible para descargar" . Archivado del original el 24 de julio de 2011. Consultado el 8 de julio de 2011 .
- ↑ "Samba 3.6.0 disponible para descargar" . Archivado del original el 24 de septiembre de 2011. Consultado el 10 de agosto de 2011 .
- ↑ S. Shepler; B. Callaghan; D. Robinson; R. Thurlow; C. Beame; M. Eisler; D. Noveck (diciembre de 2000). Protocolo NFS versión 4. Grupo de trabajo de redes. doi : 10.17487/RFC3010 . RFC 3010 .Norma propuesta. Sustituye a las RFC 1813 y 1094 .
- 1 2 Eran, Daniel (11 de junio de 2013). "Apple cambia del uso compartido de archivos AFP a SMB2 en OS X 10.9 Mavericks" . Appleinsider.com. Archivado del original el 12 de febrero de 2017. Recuperado el 12 de enero de 2014 .
- ↑ Vaughan, Steven J. (28 de octubre de 2013). "Problema de SMB2 en Mavericks y soluciones" . ZDNet. Archivado del original el 5 de enero de 2014. Recuperado el 12 de enero de 2014 .
- ↑ MacParc. "10.9: Cambiar la pila SMB para usar SMB1 como predeterminado" . Consejos para Mac OS X. macworld.com. Archivado del original el 12 de enero de 2014. Consultado el 12 de enero de 2014 .
- ↑ Topher Kessler (23 de marzo de 2011). "Dile adiós a Samba en OS X" . CNET. Archivado del original el 15 de enero de 2014. Consultado el 12 de enero de 2014 .
- ↑ Thom Holwerda (26 de marzo de 2011). "Apple abandona SAMBA en favor de un sustituto de cultivo propio" . Archivado del original el 2 de noviembre de 2013. Consultado el 12 de enero de 2014 .
- ↑ "Linux 3.7 - Linux Kernel Newbies" . Archivado del original el 11 de septiembre de 2016. Consultado el 4 de septiembre de 2016 .
- ↑ "Implementación de una solución de centralización de datos para el usuario final" . Microsoft . 21 de octubre de 2009. págs. 10-11 . Archivado del original el 6 de septiembre de 2010. Consultado el 2 de noviembre de 2009 .
- 1 2 3 Jeffrey Snover (19 de abril de 2012). "SMB 2.2 ahora es SMB 3.0" . Blog de Windows Server . Archivado del original el 8 de julio de 2020. Recuperado el 6 de julio de 2020 .
- ↑ Chelsio Communications (2 de abril de 2013). "40G SMB Direct" . Archivado del original el 7 de septiembre de 2013. Recuperado el 18 de junio de 2013 .
- ↑ Jose Barreto (19 de octubre de 2012). "Tutorial de SNIA sobre el protocolo SMB" (PDF) . Storage Networking Industry Association . Archivado (PDF) del original el 3 de junio de 2013. Recuperado el 28 de noviembre de 2012 .
- ↑ Thomas Pfenning. "El futuro de los protocolos de archivos: SMB 2.2 en el centro de datos" (PDF) . Archivado del original (PDF) el 20 de julio de 2012.
- ↑ Joergensen, Claus (7 de junio de 2012). "Conmutación por error transparente de SMB: cómo hacer que los recursos compartidos de archivos estén disponibles continuamente" . Microsoft TechNet . Archivado del original el 11 de enero de 2019. Recuperado el 1 de febrero de 2017 .
- ↑ Savill, John (21 de agosto de 2012). "Nuevas formas de habilitar la alta disponibilidad para recursos compartidos de archivos" . Windows IT Pro . Archivado del original el 27 de noviembre de 2016. Recuperado el 1 de febrero de 2017 .
- ↑ "Mejoras de seguridad para PYMES" . Microsoft Technet. 15 de enero de 2014. Archivado del original el 9 de octubre de 2014. Consultado el 18 de junio de 2014 .
- ↑ Jose Barreto (5 de mayo de 2013). "Enlaces actualizados sobre el servidor de archivos de Windows Server 2012 y SMB 3.0" . Blogs de Microsoft TechNet sobre servidores y administración. Archivado del original el 3 de agosto de 2016. Consultado el 14 de agosto de 2016 .
- ↑ Jose Barreto (7 de julio de 2014). "Enlaces actualizados sobre Windows Server 2012 R2 File Server y SMB 3.02" . Blogs de Microsoft TechNet Server & Management. Archivado del original el 26 de agosto de 2016. Consultado el 14 de agosto de 2016 .
- ↑ Jose Barreto (12 de diciembre de 2013). "Las diapositivas de la Conferencia de Desarrolladores de Almacenamiento (SDC 2013) ya están disponibles públicamente. Aquí están los enlaces a las diapositivas de Microsoft…" . Blogs de Microsoft TechNet sobre servidores y administración. Archivado del original el 26 de agosto de 2016. Consultado el 14 de agosto de 2016 .
- ↑ Eric Geier (5 de diciembre de 2013). "WindowsNetworking.com: Mejoras en las actualizaciones del protocolo SMB 3.0 y 3.02" . WindowsNetworking.com . Archivado del original el 9 de abril de 2015. Consultado el 6 de abril de 2015 .
- ↑ Jose Barreto (30 de abril de 2015). "Enlaces de red SMB3 para Windows Server 2012 R2" . Blogs de Microsoft TechNet sobre servidores y administración. Archivado del original el 26 de agosto de 2016. Consultado el 14 de agosto de 2016 .
- ↑ Jose Barreto (5 de mayo de 2015). "Novedades de SMB 3.1.1 en la versión preliminar técnica 2 de Windows Server 2016" . Blogs de Microsoft TechNet sobre servidores y administración. Archivado del original el 8 de octubre de 2016. Consultado el 14 de agosto de 2016 .
- ↑ "Mejoras de seguridad para pymes" . Microsoft Learn. Archivado del original el 10 de abril de 2023. Consultado el 10 de abril de 2023 .
- ↑ "Protocolos de Windows" . Archivado del original el 26 de septiembre de 2009. Consultado el 13 de octubre de 2009 .
- ↑ Tridgell, Andrew (27 de junio de 1997). "Un poco de historia y un poco de diversión" . Archivado del original el 17 de julio de 2011. Recuperado el 26 de julio de 2011 .
- ↑ "Niveles funcionales de Samba 4" . 25 de febrero de 2011. Archivado del original el 29 de julio de 2014. Consultado el 12 de enero de 2014 .
- ↑ "netsmb(4)" . Páginas del manual de NetBSD 8.0 . Archivado del original el 17 de noviembre de 2022. Consultado el 5 de enero de 2020 .
- ↑ – Manual de formatos de archivo de FreeBSD .
- ↑ "Extensiones UNIX" . SambaWiki . Archivado del original el 12 de junio de 2020. Consultado el 15 de marzo de 2020 .
- ↑ "Visuality Systems - Los expertos en el protocolo SMB" .
- ↑ Ingeniero de Sunu. "Construyendo un servidor de protocolo SMB altamente escalable y de alto rendimiento" (PDF) . Archivado (PDF) del original el 27 de septiembre de 2016. Recuperado el 25 de septiembre de 2016 .
- ↑ "Microsoft y Tuxera fortalecen su alianza a través de Tuxera SMB Server" . Microsoft . Centro de noticias de Microsoft. 14 de septiembre de 2016. Archivado del original el 17 de noviembre de 2016. Consultado el 6 de febrero de 2017 .
- ↑ "MS02-070: Un fallo en la firma SMB podría permitir la modificación de la directiva de grupo" . Microsoft . 1 de diciembre de 2007. Archivado del original el 8 de octubre de 2009. Consultado el 1 de noviembre de 2009 .
- ↑ "MS09-001: Vulnerabilidades en SMB podrían permitir la ejecución remota de código" . Microsoft . 13 de enero de 2009. Archivado del original el 5 de octubre de 2009. Consultado el 1 de noviembre de 2009 .,
- ↑ "Sicherheitstacho.eu" . Deutsche Telekom . 7 de marzo de 2013. Archivado del original el 8 de marzo de 2013. Consultado el 7 de marzo de 2013 .
- ↑ "Alerta (TA14-353A) Malware destructivo dirigido" . US-CERT . Archivado del original el 20 de diciembre de 2014. Recuperado el 20 de diciembre de 2014 .
- ↑ "Hackers de Sony utilizaron la herramienta de gusano Server Message Block (SMB)" . 19 de diciembre de 2014. Archivado del original el 20 de diciembre de 2014. Consultado el 20 de diciembre de 2014 .
- ↑ "El ataque de ransomware WannaCry afecta a las víctimas con una vulnerabilidad de Microsoft SMB" . eWeek . Consultado el 13 de mayo de 2017 .
- ↑ "SMBleedingGhost Writeup: Chaining SMBleed (CVE-2020-1206) with SMBGhost" . Blog de Jamf . 9 de junio de 2020. Consultado el 19 de noviembre de 2020 .
Lecturas adicionales
Especificaciones para PYMES
- " [ MS-CIFS]: Protocolo del sistema de archivos común de Internet (CIFS)" . Especificaciones abiertas . Microsoft . 30 de octubre de 2020.
- Especifica el protocolo del Sistema Común de Archivos de Internet (CIFS), un protocolo multiplataforma e independiente del transporte que proporciona un mecanismo para que los sistemas cliente utilicen los servicios de archivos e impresión que los sistemas servidor ponen a disposición a través de una red.
- " [ MS-SMB]: Protocolo de bloque de mensajes del servidor (SMB)" . Especificaciones abiertas . Microsoft . 25 de junio de 2021.
- Especifica el protocolo Server Message Block (SMB), que define extensiones a la especificación existente del Common Internet File System (CIFS) que Microsoft ha implementado desde la publicación de dicha especificación.
- " [ MS-SMB2]: Versiones 2 y 3 del protocolo Server Message Block (SMB)" . Especificaciones abiertas . Microsoft . 14 de diciembre de 2021.
- Especifica las versiones 2 y 3 del protocolo Server Message Block (SMB), que admiten el uso compartido de archivos y recursos de impresión entre máquinas y amplían los conceptos del protocolo Server Message Block.
- " [ MS-SMBD]: Protocolo de transporte de acceso directo a memoria remota (RDMA) SMB2" . Especificaciones abiertas . Microsoft . 25 de junio de 2021.
- Especifica el protocolo de transporte de acceso directo a memoria remota (RDMA) SMB2, una capa de abstracción para el protocolo SMB2 existente que permite la entrega de paquetes SMB2 a través de protocolos de transporte compatibles con RDMA, como iWARP o Infiniband, aprovechando las capacidades de colocación directa de datos (DDP) de estos protocolos. Entre sus ventajas se incluyen una menor sobrecarga de CPU, una menor latencia y un mayor rendimiento.
Misceláneas
- Hertel, Christopher (2003). Implementación de CIFS : el sistema de archivos común de Internet. Archivado el 2 de febrero de 2004 en Wayback Machine . Prentice Hall. ISBN 0-13-047116-X(Texto bajo licencia Open Publication License , versión 1.0 o posterior, disponible en el enlace anterior).
- Steven M. French, Nace un nuevo sistema de archivos de red: comparación de SMB2, CIFS y NFS. Archivado el 7 de septiembre de 2012 en Wayback Machine , Simposio Linux 2007.
- Steve French, El futuro de los protocolos de archivos: SMB2 se encuentra con Linux. Archivado el 17 de agosto de 2018 en Wayback Machine , Linux Collaboration Summit 2012.
Enlaces externos
- Sección DFS en la documentación de "Desarrollador de Windows"
- El dialecto NT LM 0.12 de SMB . En formato Microsoft Word .
- protocolos de la capa de aplicación
- Comunicación entre procesos
- Sistemas de archivos de red
- protocolos de red
- Comunicación y servicios de Windows