Bloque de mensajes del servidor

Protocolo de comunicación de red para proporcionar acceso compartido a recursos
Cuadro de diálogo Asignar unidad de red en Windows 10, conexión a una unidad de red SMB local

Server Message Block ( SMB ) es un protocolo de comunicación [1] utilizado para compartir archivos, impresoras , puertos serie y comunicaciones diversas entre nodos de una red . En Microsoft Windows , la implementación de SMB consta de dos servicios de Windows con nombres vagos : "Servidor" (ID: LanmanServer) y "Estación de trabajo" (ID: LanmanWorkstation). [2] Utiliza 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 de IBM . En 1987, Microsoft y 3Com implementaron SMB en LAN Manager para OS/2 , momento en el que SMB utilizó el servicio NetBIOS sobre el protocolo NetBIOS Frames como su transporte subyacente. Más tarde, 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 nuevos: 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 Common Internet File System ( CIFS / sɪfs / ) . CIFS era compatible incluso con la primera encarnación de SMB, incluido 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 permaneció como 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 este.

Características

El bloque de mensajes del servidor (SMB) permite compartir archivos e impresoras , navegar en red y comunicarse entre procesos (a través de canales con nombre ) en una red informática . SMB sirve como base para la implementación del sistema de archivos distribuido 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 la Internet pública. El componente de servidor SMB utiliza el puerto TCP 445. SMB originalmente operaba en NetBIOS sobre IEEE 802.2 ( NetBIOS Frames o NBF) y sobre IPX/SPX , y más tarde en NetBIOS sobre TCP/IP (NetBT), pero desde entonces Microsoft ha dejado de utilizar estos protocolos. En NetBT, el componente de servidor utiliza tres puertos TCP o UDP : 137 (NETBIOS Name Service), 138 (NETBIOS Datagram Service) y 139 (NETBIOS Session Service).

En Microsoft Windows, dos servicios de Windows con nombres vagos implementan SMB. El servicio "Servidor" (ID: LanmanServer) se encarga de servir recursos compartidos . El servicio "Estación de trabajo" (ID: LanmanWorkstation) mantiene el nombre de la computadora y ayuda a acceder a los recursos compartidos en otras computadoras. [2] SMB usa el protocolo Kerberos para autenticar usuarios en Active Directory en redes de dominio de Windows . En redes punto a punto más simples, SMB usa el protocolo NTLM .

Windows NT 4.0 SP3 y posteriores pueden firmar digitalmente mensajes SMB para evitar algunos ataques de intermediarios . [7] [8] [9] La firma SMB se puede configurar individualmente para conexiones SMB entrantes (por el servicio "LanmanServer") y conexiones SMB salientes (por el servicio "LanmanWorkstation"). La configuración predeterminada para los controladores de dominio de Windows que ejecutan Windows Server 2003 y posteriores es no permitir conexiones entrantes sin firmar. [10] Por lo tanto, las versiones anteriores de Windows que no admiten la firma SMB desde el principio (incluido Windows 9x ) no pueden conectarse a un controlador de dominio de Windows Server 2003. [8]

SMB admite el bloqueo oportunista (ver a continuación) de 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 , los bloqueos oportunistas (OpLocks) no son estrictamente bloqueos de archivos ni se utilizan para proporcionar exclusión mutua.

Hay cuatro tipos de bloqueos oportunistas.

Bloqueos por lotes
Los bloqueos de operaciones por lotes se crearon originalmente para respaldar un comportamiento particular de la operación de ejecución de archivos por lotes de DOS en la que el archivo se abre y se cierra muchas veces en un período corto, lo que constituye un problema de rendimiento. Para resolver esto, un cliente puede solicitar un bloqueo de operaciones de tipo "por lotes". En este caso, el cliente demora el envío de la solicitud de cierre y, si se da una solicitud de apertura posterior, las dos solicitudes se cancelan entre sí. [12]
Cerraduras OpLock de nivel 1 / Cerraduras exclusivas
Cuando una aplicación abre en "modo compartido" un archivo alojado en un servidor SMB que no está abierto por ningún otro proceso (u otros clientes), el cliente recibe un OpLock exclusivo del servidor. Esto significa que el cliente ahora puede asumir que es el único proceso con acceso a este archivo en particular, y el cliente ahora puede almacenar en caché todos los cambios en el archivo antes de confirmarlo en el servidor. Esto es una mejora en el rendimiento, ya que se requieren menos viajes de ida y vuelta para leer y escribir en el archivo. Si otro cliente/proceso intenta abrir el mismo archivo, el servidor envía un mensaje al cliente (llamado break o revocation ) que invalida el bloqueo exclusivo previamente otorgado al cliente. El cliente luego borra todos los cambios en el archivo.
Bloqueos operativos de nivel 2
Si un cliente tiene un OpLock exclusivo y un tercero abre un archivo bloqueado, el cliente debe renunciar a su OpLock exclusivo para permitir el acceso de escritura/lectura del otro cliente. En ese caso, un cliente puede recibir un "OpLock de nivel 2" del servidor. Un OpLock de nivel 2 permite el almacenamiento en caché de solicitudes de lectura, pero excluye el almacenamiento en caché de escritura.
Bloqueos de filtros
Los bloqueos de filtro, que se agregaron en Windows NT 4.0, son similares a los bloqueos de nivel 2, pero evitan violaciones del modo de uso compartido entre la apertura del archivo y la recepción del bloqueo. Microsoft recomienda el uso de bloqueos de filtro solo cuando es importante permitir múltiples lectores y bloqueos de nivel 2 en otras circunstancias. Los clientes que tienen un bloqueo de filtro no tienen realmente un bloqueo en el archivo, sino que se les notifica mediante una interrupción cuando otro cliente desea acceder al archivo de una manera 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, se puede enviar una solicitud de interrupción del servidor al cliente. Esta solicitud informa al cliente de que un OpLock ya no es válido. Esto sucede, por ejemplo, cuando otro cliente desea abrir un archivo de una manera que invalida el OpLock. Luego se envía una interrupción del OpLock al primer cliente y se le solicita que envíe todos sus cambios locales (en el caso de OpLocks por lotes o exclusivos), si los hubiera, y que reconozca la interrupción del OpLock. Tras este reconocimiento, el servidor puede responder al segundo cliente de manera coherente.

Actuación

El uso del protocolo SMB se ha relacionado a menudo 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 que se suelen asociar con SMB se originan en realidad en el protocolo de ubicación de servicios NetBIOS . [ aclaración necesaria ] De forma predeterminada, un servidor Microsoft Windows NT 4.0 utiliza NetBIOS para anunciar y localizar servicios. NetBIOS funciona difundiendo los servicios disponibles en un host en particular a intervalos regulares. Aunque esto suele ser un valor predeterminado aceptable en una red con un número menor 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 la infraestructura de resolución de nombres en forma de Windows Internet Naming Service (WINS) o Domain Name System (DNS) resuelve este problema. WINS era una implementación propietaria utilizada con redes Windows NT 4.0, pero trajo consigo 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 utilizar 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) por DNS requiere que un cliente DNS amplíe los nombres cortos, normalmente añadiendo un sufijo DNS específico de la conexión a sus consultas de búsqueda DNS. WINS todavía 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 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 tiene un rendimiento peor que otros protocolos como FTP . El monitoreo revela un alto grado de "conversación" y una indiferencia hacia la latencia de red entre hosts. [13] Por ejemplo, una conexión VPN a través de Internet a menudo introducirá latencia de red. Microsoft ha explicado que los problemas de rendimiento surgen principalmente porque SMB 1.0 es un protocolo de nivel de bloque en lugar de un protocolo de transmisión , que originalmente fue diseñado para LAN pequeñas ; tiene un tamaño de bloque que está 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 de WAN de varios proveedores de red que almacenan en caché y optimizan SMB 1.0 [16] y 2.0. [17]

Historia

PYME 1.0

Barry Feigenbaum diseñó originalmente SMB en IBM a principios de 1983 con el objetivo de convertir el acceso a archivos locales de 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 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 Trabajo en Grupo ( c.  1992 ) y en versiones posteriores de Windows. La autenticación de LAN Manager se implementó en base al requisito de la especificación SMB heredada original de usar contraseñas de "LAN Manager" de IBM, pero implementó DES de una manera defectuosa que permitió que las contraseñas se descifraran. [21] Más tarde, también se agregó la autenticación Kerberos . Los protocolos de inicio de sesión de dominio de Windows inicialmente usaban un cifrado de 40 bits fuera de los Estados Unidos , debido a las restricciones a la exportación de un 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 utilizando el puerto TCP 445, una característica conocida como "SMB de host directo". [24] Todavía hay una capa delgada (similar al paquete de mensajes de sesión del servicio de sesión de NetBT) entre SMB y TCP. [24] Windows Server 2003 y los dispositivos NAS heredados utilizan SMB1 de forma nativa.

SMB1 es un protocolo extremadamente comunicativo, lo que no es un problema en una red de área local (LAN) con baja latencia. Se vuelve muy lento en redes de área amplia (WAN) ya que el protocolo de enlace de ida y vuelta magnifica la alta latencia inherente de dicha red. Las versiones posteriores del protocolo redujeron la gran cantidad de intercambios de enlaces. Un enfoque para mitigar las ineficiencias en el protocolo es utilizar productos de optimización de WAN como los proporcionados por Riverbed , Silver Peak o Cisco . Un mejor enfoque 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 con una herramienta de análisis de red, como Wireshark . Microsoft también proporciona una herramienta de auditoría en Windows Server 2016 para rastrear dispositivos que usan 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 más grandes y un intento inicial de soportar conexiones directas sobre el puerto TCP 445 sin requerir NetBIOS como transporte (un esfuerzo en gran parte experimental que requirió un mayor refinamiento). Microsoft presentó algunas especificaciones parciales como Borradores de Internet al IETF . [6] Estas presentaciones han expirado desde entonces.

PYME 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 ha sido publicada para permitir que otros sistemas interoperen con los sistemas operativos de Microsoft que utilizan el nuevo protocolo. [30]

SMB2 reduce la "locuacidad" 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 canalizar , es decir, enviar solicitudes adicionales antes de que llegue la respuesta a una solicitud anterior, mejorando así el rendimiento en enlaces de alta latencia . Añade la capacidad de combinar múltiples acciones en una sola solicitud, lo que reduce significativamente el número 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. [ cita requerida ] También introduce la noción de "identificadores de archivos duraderos": estos permiten que una conexión a un servidor SMB sobreviva a breves cortes de red, como son típicos 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, firma de mensajes mejorada con el algoritmo de hash HMAC SHA-256 y 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 de bloque a 64K. SMB2 utiliza campos de almacenamiento de 32 o 64 bits de ancho y 128 bits en el caso de los identificadores de archivos , 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 cuando se comunican con otras máquinas que también pueden utilizar SMB2. SMB1 sigue utilizándose para conexiones con versiones anteriores de Windows, así como con soluciones NAS de varios proveedores . Samba 3.5 también incluye soporte experimental para SMB2. [31] Samba 3.6 es totalmente compatible con SMB2, excepto la modificación de cuotas de usuario mediante las herramientas de gestión de cuotas de Windows. [32]

Cuando se introdujo SMB2, trajo consigo una serie de ventajas sobre SMB1 para los implementadores de protocolos SMB de terceros. SMB1, diseñado originalmente por IBM , fue sometido a ingeniería inversa y más tarde pasó a formar parte de una amplia variedad de sistemas operativos no Windows, como Xenix , OS/2 y VMS ( Pathworks ). X/Open lo estandarizó parcialmente; Microsoft había enviado 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 Sistema de archivos de red en diciembre de 2000 como IETF RFC 3010; [33] sin embargo, esos borradores de Internet relacionados con SMB expiraron sin lograr ninguna aprobación de la vía de estándares del IETF ni ningún otro respaldo del IETF. (Consulte http://ubiqx.org/cifs/Intro.html para obtener detalles históricos). SMB2 también supone una ruptura relativamente clara con el pasado. El código SMB1 de Microsoft tiene que funcionar con una gran variedad de clientes y servidores SMB. SMB1 incluye muchas versiones de información para comandos (selección de la estructura que se devolverá para una solicitud en particular) porque características como la compatibilidad con Unicode se incorporaron posteriormente. SMB2 implica pruebas de compatibilidad significativamente reducidas para los implementadores del protocolo. El código SMB2 tiene una complejidad considerablemente menor, ya que existe mucha menos variabilidad (por ejemplo, las rutas de código que no son Unicode se vuelven redundantes ya que SMB2 requiere compatibilidad con Unicode).

Apple migró a SMB2 (de 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 la GPLv3 . [37] [38]

El sistema de archivos cliente CIFS del kernel de Linux tiene soporte SMB2 desde la versión 3.7. [39]

PYME 2.1

SMB 2.1, introducido con Windows 7 y Server 2008 R2, introdujo mejoras menores en el rendimiento con un nuevo mecanismo de bloqueo oportunista. [40]

PYME 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 que tienen como objetivo agregar funcionalidad y mejorar el rendimiento de SMB2, [42] especialmente en centros de datos virtualizados :

  • el protocolo SMB directo (SMB sobre acceso directo a memoria remota [RDMA])
  • SMB multicanal (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]

PYME 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 y versiones posteriores, la versión 1 anterior de SMB se puede deshabilitar opcionalmente para aumentar la seguridad. [51] [52]

PYME 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 agregado en SMB3, e implementa la verificación de integridad previa a la autenticación mediante hash SHA-512 . SMB 3.1.1 también hace obligatoria la negociación segura al conectarse a clientes que usan versiones de SMB que lo admiten. [54]

Presupuesto

Las especificaciones del SMB son propietarias y estaban inicialmente cerradas, lo que obligó a otros proveedores y proyectos a aplicar ingeniería inversa al protocolo para que pudiera interoperar con él. El protocolo SMB 1.0 se publicó finalmente algún tiempo después de que se aplicara ingeniería inversa, mientras que el protocolo SMB 2.0 se puso a disposición desde el Centro de desarrolladores de especificaciones abiertas de Microsoft desde el principio. [55]

Implementaciones de terceros

Samba

En 1991, Andrew Tridgell comenzó el desarrollo de Samba, una reimplementación de software libre (usando ingeniería inversa ) del protocolo de red SMB/CIFS para sistemas tipo Unix , inicialmente para implementar un servidor SMB para permitir que los clientes de PC que ejecutan el cliente DEC Pathworks accedan a archivos en máquinas SunOS . [3] [56] Debido a la importancia del protocolo SMB en la interacción con la plataforma generalizada Microsoft Windows , Samba se convirtió en una implementación de software libre popular de un cliente y servidor SMB compatible para permitir que los sistemas operativos que no son Windows, como los sistemas operativos tipo Unix , interoperen 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 primario (PDC) o como miembro del dominio. Las instalaciones de Samba4 pueden actuar como un controlador de dominio de Active Directory o un servidor miembro, en los niveles funcionales de dominio y bosque de Windows 2008. [57]

Los administradores de paquetes en las distribuciones Linux pueden buscar el paquete cifs-utils . El paquete es obra de los mantenedores de Samba.

Redesmb

NSMB (Netsmb y SMBFS) es una familia de implementaciones de clientes SMB en el núcleo de los sistemas operativos BSD. Fue aportada por primera vez a FreeBSD 4.4 por Boris Popov, 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 es notable 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 con una mfsymlinkopción. [60] Docker en Windows también parece usarlo. [ cita requerida ]

No disponible

NQ es una familia de implementaciones de cliente y servidor SMB portátiles desarrolladas por Visuality Systems, una empresa con sede en Israel fundada en 1998 por Sam Widerman, exdirector ejecutivo de Siemens Data Communications. La familia NQ incluye una pila SMB integrada (escrita en C), un cliente SMB basado en Java puro y una implementación de servidor SMB de almacenamiento. Todas las soluciones son compatibles con el último dialecto SMB 3.1.1. La solución configurable NQ es compatible con NQ para Linux, NQ para WinCE, iOS, Android, VxWorks y otros sistemas operativos en tiempo real.

Ministerio de Salud y Medicina

MoSMB es una implementación de SMB de espacio de usuario para Linux. Es compatible con SMB 2.x y SMB 3.x. Las características clave incluyen clústeres de escalamiento activo-activo a escala de nube, SMB Direct (RDMA), SMB multicanal, conmutación por error transparente y disponibilidad continua. MoSMB también es compatible con el almacenamiento de objetos Amazon S3 como backend de almacenamiento, además de los sistemas de archivos POSIX como ext4 , ZFS , Lustre , Ceph , etc. [61]

Uso compartido de archivos Fusion de Tuxera

Fusion File Share de Tuxera es una implementación de servidor SMB patentada desarrollada por Tuxera que se puede ejecutar tanto en el kernel como en el espacio de usuario . [62] Es compatible con SMB 3.1.1 y todas las versiones anteriores, además de funciones SMB avanzadas como disponibilidad continua (controladores persistentes), escalabilidad horizontal, RDMA (SMB Direct), SMB multicanal, compresión transparente, copia de sombra .

Asimismo

Asimismo, desarrolló una implementación CIFS/SMB (versiones 1.0, 2.0, 2.1 y NFS 3.0) en 2009 que proporcionaba una plataforma multiprotocolo que reconoce la identidad para el acceso en red a archivos utilizados en productos de almacenamiento OEM creados en dispositivos basados ​​en Linux/Unix. La plataforma se podía utilizar para dispositivos NAS, Cloud Gateway y Cloud Caching tradicionales para proporcionar acceso seguro a archivos en una red. Asimismo, fue adquirida por EMC Isilon en 2012.

KSMBD

KSMBD es una implementación de servidor CIFS/SMB de código abierto para el núcleo Linux. En comparación con las implementaciones en el espacio de usuario, ofrece un mejor rendimiento y facilita la implementación de algunas funciones, como SMB Direct. Es compatible con SMB 3.1.1 y versiones anteriores.

Seguridad

A lo largo de los años, ha habido muchas vulnerabilidades de seguridad en la implementación de Microsoft del protocolo o los componentes en los que se basa directamente. [63] [64] Las vulnerabilidades de seguridad de otros proveedores radican principalmente en la falta de soporte para protocolos de autenticación más nuevos como NTLMv2 y Kerberos en favor de protocolos como NTLMv1, LanMan o contraseñas de texto simple . El seguimiento de ataques en tiempo real [65] muestra que SMB es uno de los principales vectores de ataque para los intentos de intrusión, [66] por ejemplo, el ataque de Sony Pictures de 2014 , [67] y el ataque de ransomware WannaCry de 2017. [68] 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 pueden proporcionar privilegios de ejecución remota de código (RCE) al atacante. [69]

Véase también

Referencias

  1. ^ "Descripción general del protocolo SMB y del protocolo CIFS de Microsoft". Microsoft . 22 de octubre de 2009. Archivado desde el original el 2 de agosto de 2016 . Consultado el 10 de abril de 2019 .
  2. ^ ab "Conceptos de red de Lan Manager". Soporte . Microsoft. Archivado desde el original el 30 de diciembre de 2012 . Consultado el 18 de septiembre de 2014 .
  3. ^ abcd Tridgell, Andrew . «Mitos sobre la samba». Archivado desde el original el 20 de octubre de 2017. Consultado el 3 de enero de 2016 .
  4. ^ abc «Sistema de archivos de Internet común». Descripción técnica de los servicios web y de aplicaciones de Windows 2000. Microsoft. 18 de julio de 2012. Archivado desde el original el 30 de enero de 2022. Consultado el 30 de enero de 2022 a través de Microsoft Docs .
  5. ^ 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 de Windows . Microsoft . Archivado desde el original el 28 de enero de 2022 . Consultado el 30 de enero de 2022 – a través de Microsoft Docs .
  6. ^ ab Ver:
    • Heizer, I.; Leach, P.; Perry, D. (13 de junio de 1996). «Common Internet File System Protocol (CIFS/1.0)». Archivado desde el original el 8 de agosto de 2019.
    • Leach, Paul J.; Naik, Dilip C. (3 de enero de 1997). "CIFS Logon and Pass Through Authentication". Archivado desde el original el 31 de mayo de 2024. Consultado el 10 de diciembre de 2017 .
    • Leach, Paul J.; Naik, Dilip C. (10 de enero de 1997). «CIFS/E Browser Protocol». Archivado desde el original el 31 de mayo de 2024. Consultado el 10 de diciembre de 2017 .
    • Leach, Paul J.; Naik, Dilip C. (31 de enero de 1997). «CIFS Printing Specification». Archivado desde el original el 31 de mayo de 2024. Consultado el 10 de diciembre de 2017 .
    • Leach, Paul J.; Naik, Dilip C. (26 de febrero de 1997). «CIFS Remote Administration Protocol». Archivado desde el original el 31 de mayo de 2024. Consultado el 10 de diciembre de 2017 .
    • Leach, Paul J.; Naik, Dilip C. (19 de diciembre de 1997). "Un protocolo de sistema de archivos de Internet común (CIFS/1.0)". Archivado desde el original el 31 de mayo de 2024. Consultado el 10 de diciembre de 2017 .
  7. ^ "Descripción general de la firma del bloque de mensajes del servidor". Solución de problemas de Windows Server . Microsoft . 24 de noviembre de 2021. Archivado desde el original el 29 de enero de 2022 . Consultado el 29 de enero de 2022 – a través de Microsoft Docs .
  8. ^ ab 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 desde el original el 19 de octubre de 2018 . Consultado el 19 de octubre de 2018 – a través de Microsoft Docs . Este artículo trata sobre [...] la firma de mensajes del Bloque de mensajes del servidor (SMB).
  9. ^ Barreto, Jose (1 de diciembre de 2010). "Los conceptos básicos de la firma SMB (que abarca tanto SMB1 como SMB2)". Archivo del blog de Jose Barreto . Microsoft . Archivado desde el original el 2 de diciembre de 2012 – vía Microsoft Docs . Este mecanismo de seguridad en el protocolo SMB ayuda a evitar problemas como la manipulación de paquetes y los ataques de "man in the middle". [...] 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 la directiva de grupo. La firma SMB proporciona una forma de garantizar que el cliente reciba la directiva de grupo genuina.
  10. ^ "MSKB887429: Descripción general de la firma de bloques de mensajes del servidor". Microsoft . 30 de noviembre de 2007. Archivado desde el 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.
  11. ^ "Bloqueos oportunistas". Microsoft. 31 de mayo de 2018. Archivado desde el original el 19 de agosto de 2021. Consultado el 19 de agosto de 2021 .
  12. ^ "Todo sobre el bloqueo oportunista". Sphere IT . 2014. Archivado desde el original el 19 de agosto de 2021 . Consultado el 19 de agosto de 2021 .
  13. ^ abcde Jose Barreto (9 de diciembre de 2008). "SMB2, un rediseño completo del protocolo principal de archivos remotos para Windows". Blogs de administración y servidores de Microsoft . Archivado desde el original el 12 de enero de 2013. Consultado el 1 de noviembre de 2009 .
  14. ^ Neil Carpenter (26 de octubre de 2004). «Rendimiento de SMB/CIFS en enlaces WAN». Microsoft . Archivado desde el original el 13 de febrero de 2020 . Consultado el 13 de febrero de 2020 .
  15. ^ "Novedades de SMB en Windows Server". Microsoft . 31 de agosto de 2016. Archivado desde el original el 11 de febrero de 2017 . Consultado el 6 de febrero de 2017 .
  16. ^ Mark Rabinovich, Igor Gokhman. "CIFS Acceleration Techniques" (PDF) . Conferencia de desarrolladores de almacenamiento, SNIA, Santa Clara 2009. Archivado (PDF) del original el 30 de septiembre de 2020. Consultado el 6 de julio de 2020 .
  17. ^ Mark Rabinovich. "Accelerating SMB2" (PDF) . Conferencia de desarrolladores de almacenamiento, SNIA, Santa Clara 2011. Archivado (PDF) del original el 31 de mayo de 2024. Consultado el 6 de julio de 2020 .
  18. ^ Speed, Richard. "¿Es necesario usar SMB 1.0? La actualización de abril de 2018 de Windows 10 dice NO". theregister.com . Archivado desde el original el 18 de febrero de 2023. Consultado el 18 de febrero de 2023 .
  19. ^ guenni (15 de junio de 2017). «Microsoft planea desactivar SMBv1 en Windows 10 V1709». Born's Tech and Windows World . Archivado desde el original el 18 de febrero de 2023. Consultado el 18 de febrero de 2023 .
  20. ^ Giret, Laurent (20 de abril de 2022). «Microsoft se prepara para deshabilitar el protocolo SMB1 en Windows 11». Thurrott.com . Archivado desde el original el 31 de mayo de 2024. Consultado el 18 de febrero de 2023 .
  21. ^ Christopher Hertel (1999). «SMB: el protocolo de bloque de mensajes del servidor». Archivado desde el original el 10 de marzo de 2010. Consultado el 1 de noviembre de 2009 .
  22. ^ "Descripción de Microsoft Windows Encryption Pack 1". Microsoft . 1 de noviembre de 2006. Archivado desde el original el 2 de octubre de 2009 . Consultado el 1 de noviembre de 2009 .
  23. ^ "Orden ejecutiva estadounidense 13026" (PDF) . Gobierno de los Estados Unidos . 1996. Archivado (PDF) desde el original el 10 de octubre de 2009 . Consultado el 1 de noviembre de 2009 .
  24. ^ ab "Alojamiento directo de SMB sobre TCP/IP". Microsoft . 11 de octubre de 2007. Archivado desde el original el 26 de marzo de 2011 . Consultado el 1 de noviembre de 2009 .
  25. ^ Kyttle, Ralph (13 de mayo de 2017). «SMB1: auditoría del uso activo mediante Message Analyzer». Microsoft TechNet . Microsoft. Archivado desde el original el 28 de marzo de 2019. Consultado el 28 de marzo de 2019 .
  26. ^ "La descontinuación de SMB1: debería estar planeando deshacerse de este antiguo dialecto SMB - Blog de Jose Barreto". blogs.technet.microsoft.com . 21 de abril de 2015. Archivado desde el original el 21 de mayo de 2017 . Consultado el 9 de octubre de 2019 .
  27. ^ "SMBv1 no está instalado de forma predeterminada en Windows 10 Fall Creators Update y Windows Server, versión 1709 y versiones posteriores". support.microsoft.com . Archivado desde el original el 10 de octubre de 2019 . Consultado el 9 de octubre de 2019 .
  28. ^ "WebNFS - Descripción técnica". Archivado desde el original el 18 de mayo de 2007.
  29. ^ Navjot Virk y Prashanth Prahalad (10 de marzo de 2006). "Novedades de SMB en Windows Vista". Chk Your Dsks . Microsoft . Archivado desde el original el 5 de mayo de 2006 . Consultado el 1 de mayo de 2006 .
  30. ^ Protocolo de bloque de mensajes de servidor (SMB) versiones 2 y 3. Protocolos de Windows. Especificaciones abiertas (informe técnico). Microsoft Docs . Microsoft . MS-SMB2 . Consultado el 29 de noviembre de 2020 .
  31. ^ "Samba 3.5.0 disponible para descargar". Archivado desde el original el 24 de julio de 2011 . Consultado el 8 de julio de 2011 .
  32. ^ "Samba 3.6.0 disponible para descargar". Archivado desde el original el 24 de septiembre de 2011 . Consultado el 10 de agosto de 2011 .
  33. ^ Protocolo NFS versión 4. Diciembre de 2000. doi : 10.17487/RFC3010 . RFC 3010.
  34. ^ ab 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 desde el original el 12 de febrero de 2017. Consultado el 12 de enero de 2014 .
  35. ^ Vaughan, Steven J. (28 de octubre de 2013). "El problema de SMB2 de los Mavericks y sus soluciones". ZDNet. Archivado desde el original el 5 de enero de 2014. Consultado el 12 de enero de 2014 .
  36. ^ MacParc. «10.9: Cambiar la pila SMB para utilizar SMB1 como predeterminado». Consejos para Mac OS X. macworld.com. Archivado desde el original el 12 de enero de 2014. Consultado el 12 de enero de 2014 .
  37. ^ Topher Kessler (23 de marzo de 2011). "Dile adiós a Samba en OS X". CNET. Archivado desde el original el 15 de enero de 2014. Consultado el 12 de enero de 2014 .
  38. ^ Thom Holwerda (26 de marzo de 2011). «Apple abandona SAMBA en favor de un sustituto de cosecha propia». Archivado desde el original el 2 de noviembre de 2013. Consultado el 12 de enero de 2014 .
  39. ^ "Linux 3.7 - Linux Kernel Newbies". Archivado desde el original el 11 de septiembre de 2016 . Consultado el 4 de septiembre de 2016 .
  40. ^ "Implementación de una solución de centralización de datos de usuario final". Microsoft . 21 de octubre de 2009. págs. 10-11. Archivado desde el original el 6 de septiembre de 2010 . Consultado el 2 de noviembre de 2009 .
  41. ^ abc Jeffrey Snover (19 de abril de 2012). «SMB 2.2 ahora es SMB 3.0». Blog de Windows Server . Archivado desde el original el 8 de julio de 2020. Consultado el 6 de julio de 2020 .
  42. ^ Chelsio Communications (2 de abril de 2013). «40G SMB Direct». Archivado desde el original el 7 de septiembre de 2013. Consultado el 18 de junio de 2013 .
  43. ^ 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. Consultado el 28 de noviembre de 2012 .
  44. ^ Thomas Pfenning. "El futuro de los protocolos de archivos: SMB 2.2 en el centro de datos" (PDF) . Archivado desde el original (PDF) el 20 de julio de 2012.
  45. ^ Joergensen, Claus (7 de junio de 2012). «SMB Transparent Failover – making file shares continues to available» (Conmutación por error transparente de SMB: cómo hacer que los recursos compartidos de archivos estén disponibles de forma continua). Microsoft TechNet . Archivado desde el original el 11 de enero de 2019. Consultado el 1 de febrero de 2017 .
  46. ^ Savill, John (21 de agosto de 2012). "Nuevas formas de habilitar la alta disponibilidad para recursos compartidos de archivos". Windows IT Pro . Archivado desde el original el 27 de noviembre de 2016. Consultado el 1 de febrero de 2017 .
  47. ^ "Mejoras de seguridad de SMB". Microsoft Technet. 15 de enero de 2014. Archivado desde el original el 9 de octubre de 2014 . Consultado el 18 de junio de 2014 .
  48. ^ Jose Barreto (5 de mayo de 2013). "Enlaces actualizados sobre el servidor de archivos de Windows Server 2012 y SMB 3.0". Blogs de administración y servidores de Microsoft TechNet . Archivado desde el original el 3 de agosto de 2016. Consultado el 14 de agosto de 2016 .
  49. ^ Jose Barreto (7 de julio de 2014). "Enlaces actualizados sobre el servidor de archivos de Windows Server 2012 R2 y SMB 3.02". Blogs de administración y servidores de Microsoft TechNet . Archivado desde el original el 26 de agosto de 2016. Consultado el 14 de agosto de 2016 .
  50. ^ Jose Barreto (12 de diciembre de 2013). "Las diapositivas de la Storage Developer Conference – SDC 2013 ya están disponibles públicamente. Aquí están los enlaces a las diapositivas de Microsoft…". Blogs de administración y servidores de Microsoft TechNet . Archivado desde el original el 26 de agosto de 2016. Consultado el 14 de agosto de 2016 .
  51. ^ Eric Geier (5 de diciembre de 2013). «WindowsNetworking.com: Mejoras en las actualizaciones de los protocolos SMB 3.0 y 3.02». WindowsNetworking.com . Archivado desde el original el 9 de abril de 2015. Consultado el 6 de abril de 2015 .
  52. ^ Jose Barreto (5 de mayo de 2015). "Novedades de SMB 3.1.1 en Windows Server 2016 Technical Preview 2". Blogs de administración y servidores de Microsoft TechNet . Archivado desde el original el 8 de octubre de 2016. Consultado el 14 de agosto de 2016 .
  53. ^ "Mejoras de seguridad para SMB". Microsoft Learn. Archivado desde el original el 2023-04-10 . Consultado el 2023-04-10 .
  54. ^ "Protocolos de Windows". Archivado desde el original el 26 de septiembre de 2009. Consultado el 13 de octubre de 2009 .
  55. ^ Tridgell, Andrew (27 de junio de 1997). «Un poco de historia y un poco de diversión». Archivado desde el original el 17 de julio de 2011. Consultado el 26 de julio de 2011 .
  56. ^ "Niveles funcionales de Samba 4". 25 de febrero de 2011. Archivado desde el original el 29 de julio de 2014. Consultado el 12 de enero de 2014 .
  57. ^ "netsmb(4)". Páginas del manual de NetBSD 8.0 . Archivado desde el original el 17 de noviembre de 2022 . Consultado el 5 de enero de 2020 .
  58. ^ nsmb.conf(5)  –  Manual de formatos de archivos de FreeBSD .
  59. ^ "Extensiones UNIX". SambaWiki . Archivado desde el original el 12 de junio de 2020 . Consultado el 15 de marzo de 2020 .
  60. ^ Sunu Engineer. "Building a Highly Scalable and Performance SMB Protocol Server" (PDF) . Archivado (PDF) del original el 27 de septiembre de 2016. Consultado el 25 de septiembre de 2016 .
  61. ^ "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 desde el original el 17 de noviembre de 2016 . Consultado el 6 de febrero de 2017 .
  62. ^ "MS02-070: Un error en la firma SMB puede permitir que se modifique la directiva de grupo". Microsoft . 1 de diciembre de 2007. Archivado desde el original el 8 de octubre de 2009 . Consultado el 1 de noviembre de 2009 .
  63. ^ "MS09-001: Vulnerabilidades en SMB podrían permitir la ejecución remota de código". Microsoft . 13 de enero de 2009. Archivado desde el original el 5 de octubre de 2009 . Consultado el 1 de noviembre de 2009 .,
  64. ^ "Sicherheitstacho.eu". Deutsche Telekom . 7 de marzo de 2013. Archivado desde el original el 8 de marzo de 2013. Consultado el 7 de marzo de 2013 .
  65. ^ "Alerta (TA14-353A) sobre malware destructivo dirigido". US-CERT . Archivado desde el original el 20 de diciembre de 2014 . Consultado el 20 de diciembre de 2014 .
  66. ^ "Los piratas informáticos de Sony utilizaron la herramienta de gusano Server Message Block (SMB)". 19 de diciembre de 2014. Archivado desde el original el 20 de diciembre de 2014 . Consultado el 20 de diciembre de 2014 .
  67. ^ "El ataque del ransomware WannaCry ataca a las víctimas con un exploit SMB de Microsoft". eWeek . Consultado el 13 de mayo de 2017 .
  68. ^ "SMBleedingGhost Writeup: Chaining SMBleed (CVE-2020-1206) with SMBGhost" (Escrito por SMBleedingGhost: encadenamiento de SMBleed (CVE-2020-1206) con SMBGhost). Blog de ZecOps . 2020-06-09. Archivado desde el original el 2020-11-27 . Consultado el 2020-11-19 .

Lectura adicional

Especificaciones de SMB

  • "[MS-CIFS]: Protocolo del Sistema de archivos de Internet común (CIFS)". Especificaciones abiertas . Microsoft . 30 de octubre de 2020.
    • Especifica el Protocolo del Sistema de archivos de Internet común (CIFS), un protocolo multiplataforma e independiente del transporte que proporciona un mecanismo para que los sistemas cliente utilicen servicios de archivos e impresión puestos a disposición por los sistemas servidor a través de una red.
  • "[MS-SMB]: Protocolo de bloque de mensajes de servidor (SMB)". Especificaciones abiertas . Microsoft . 25 de junio de 2021.
    • Especifica el Protocolo de bloque de mensajes de servidor (SMB), que define extensiones a la especificación del Sistema de archivos común de Internet (CIFS) existente que Microsoft ha implementado desde la publicación de la especificación CIFS.
  • "[MS-SMB2]: Protocolo de bloque de mensajes de servidor (SMB) versiones 2 y 3". Especificaciones abiertas . Microsoft . 14 de diciembre de 2021.
    • Especifica las versiones 2 y 3 del Protocolo de bloque de mensajes de servidor (SMB), que admiten el uso compartido de recursos de archivos e impresión entre máquinas y amplían los conceptos del Protocolo de bloque de mensajes de servidor.
  • "[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, un contenedor para el protocolo SMB2 existente que permite que los paquetes SMB2 se entreguen a través de transportes compatibles con RDMA, como iWARP o Infiniband, mientras se utilizan las capacidades de colocación directa de datos (DDP) de estos transportes. Los beneficios incluyen una menor sobrecarga de CPU, menor latencia y un mejor rendimiento.

Misceláneas

  • Hertel, Christopher (2003). Implementing CIFS – The Common Internet FileSystem Archivado el 2 de febrero de 2004 en Wayback Machine . Prentice Hall. ISBN 0-13-047116-X . (Texto bajo licencia Open Publication License , v1.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
  • Sección DFS en la documentación de "Windows Developer"
  • El dialecto NT LM 0.12 de SMB. En formato Microsoft Word
Obtenido de "https://es.wikipedia.org/w/index.php?title=Bloqueo_de_mensajes_del_servidor&oldid=1250390060"