En redes informáticas , Server Message Block ( SMB ), una versión del cual también se conocía como Common Internet File System ( CIFS / s ɪ f s / ), [1] [2] es un protocolo de comunicación [3] para proporcionar acceso compartido a archivos , impresoras y puertos serie entre nodos en una red. También proporciona un mecanismo de comunicación entre procesos (IPC) autenticado . La mayor parte del uso de SMB implica computadoras que ejecutanMicrosoft Windows , donde se conocía como "Red de Microsoft Windows" antes de la introducción de Active Directory . Los servicios de Windows correspondientes son LAN Manager Server para el componente de servidor y LAN Manager Workstation para el componente de cliente . [4]
Características
El bloque de mensajes del servidor permite compartir archivos, navegar por la red, imprimir y comunicarse entre procesos (IPC) a través de una red.
El protocolo SMB se basa en protocolos de nivel inferior para el transporte.
El protocolo SMB de Microsoft se usó a menudo con NetBIOS sobre TCP / IP (NBT) sobre UDP, usando los números de puerto 137 y 138, y los números de puerto TCP 137 y 139. NBT para uso de NetBIOS es compatible con Windows Server 2003, Windows XP, Windows 2000, Windows NT y Windows Me / 98/95. NetBIOS no es compatible con Windows Vista, Windows Server 2008 y versiones posteriores de Windows. La combinación SMB / NBT se usa generalmente para compatibilidad con versiones anteriores .
El protocolo NetBIOS sobre NetBEUI proporciona compatibilidad con NetBIOS para el protocolo NetBEUI. Este protocolo también se denomina NetBIOS Frames (NBF). NBF es compatible con Windows 2000, Windows NT y Windows Me / 98/95. NetBEUI ya no es compatible con Windows XP y versiones posteriores. Sin embargo, el protocolo SMB también se puede usar sin un protocolo de transporte separado directamente sobre TCP, puerto 445. NetBIOS también fue compatible con varios protocolos heredados como IPX / SPX .
El sistema de comunicación entre procesos SMB (IPC) proporciona canalizaciones con nombre y fue uno de los primeros mecanismos entre procesos comúnmente disponibles para los programadores que proporciona un medio para que los servicios hereden la autenticación realizada cuando un cliente [ aclaración necesaria ] se conecta por primera vez a un Servidor SMB. [ cita requerida ]
Algunos servicios que operan sobre canalizaciones con nombre, como los que utilizan la propia implementación de Microsoft de DCE / RPC sobre SMB, conocida como MSRPC sobre SMB, también permiten que los programas cliente de MSRPC realicen la autenticación, lo que anula la autorización proporcionada por el servidor SMB, pero solo en el contexto del programa cliente MSRPC que realiza correctamente la autenticación adicional.
Firma SMB : Windows NT 4.0 Service Pack 3 y versiones posteriores tienen la capacidad de utilizar criptografía para firmar digitalmente conexiones SMB. El término oficial más común es "firma SMB". Otros términos que se han utilizado oficialmente son "Firmas de seguridad [SMB]", "Números de secuencia SMB" [5] y "Firma de mensajes SMB". [6] La firma SMB puede configurarse individualmente para conexiones SMB entrantes (manejadas por el servicio "LanManServer") y conexiones SMB salientes (manejadas por el servicio "LanManWorkstation"). La configuración predeterminada de Windows 98 y versiones posteriores es firmar de manera oportunista las conexiones salientes siempre que el servidor también lo admita, y recurrir a SMB sin firmar si ambos socios lo permiten. La configuración predeterminada para los controladores de dominio de Windows desde Windows Server 2003 y versiones posteriores es no permitir la reserva para las conexiones entrantes. [7] La función también se puede activar para cualquier servidor que ejecute Windows NT 4.0 Service Pack 3 o posterior. Esto protege de los ataques man-in-the-middle contra los Clientes que recuperan sus políticas de los controladores de dominio al iniciar sesión. [8]
SMB admite el bloqueo oportunista , un tipo especial de mecanismo de bloqueo, en archivos para mejorar el rendimiento.
SMB sirve como base para la implementación del sistema de archivos distribuido de Microsoft .
Historia
SMB / CIFS / SMB1
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. [9] Microsoft ha realizado modificaciones considerables a la versión más utilizada. Microsoft fusionó el protocolo SMB con el producto LAN Manager que había comenzado a desarrollar para OS / 2 con 3Com alrededor de 1990 y continuó agregando características al protocolo en Windows para trabajo en grupo ( c. 1992 ) y en versiones posteriores de Windows.
SMB se diseñó originalmente para ejecutarse sobre la API NetBIOS / NetBEUI (generalmente implementada con NBF , NetBIOS sobre IPX / SPX o NBT ). Desde Windows 2000 , SMB se ejecuta, de forma predeterminada, con una capa delgada, similar al paquete de mensajes de sesión del servicio de sesión de NBT, sobre TCP , utilizando el puerto TCP 445 en lugar del puerto TCP 139, una función conocida como "SMB de host directo" . [10]
Windows Server 2003 y los dispositivos NAS más antiguos utilizan SMB1 / CIFS de forma nativa. SMB1 / CIFS es un protocolo extremadamente hablador que no es un problema en una red de área local con baja latencia, pero se vuelve muy lento en redes de área amplia ya que el intercambio de información del protocolo magnifica la alta latencia inherente de dicha red. Las versiones posteriores del protocolo redujeron la gran cantidad de intercambios de apretón de manos. Si bien Microsoft estima que SMB1 / CIFS comprende menos del 10% del tráfico de red en la red empresarial promedio, sigue siendo una cantidad significativa de tráfico. Un enfoque para mitigar las ineficiencias en el protocolo es utilizar productos de aceleración WAN como los proporcionados por Riverbed, Silver Peak o Cisco Systems. Un mejor enfoque es simplemente eliminar SMB1 / CIFS actualizando la infraestructura del servidor que lo usa. Esto incluye tanto los dispositivos NAS como Windows Server 2003. El método más eficaz que se utiliza actualmente para identificar el tráfico SMB1 / CIFS es utilizar una herramienta analizadora de red como Wireshark, etc., para identificar a los "interlocutores" SMB1 / CIFS y luego retirarlos o actualizarlos con el tiempo. Microsoft también proporciona una herramienta de auditoría en Windows Server 2016, que se puede utilizar para rastrear a los interlocutores SMB1 / CIFS. [11]
En 1996, cuando Sun Microsystems anunció WebNFS , [12] Microsoft lanzó una iniciativa para cambiar el nombre de SMB a Common Internet File System (CIFS) [9] y agregó más funciones, incluida la compatibilidad con enlaces simbólicos , enlaces duros , archivos de mayor tamaño y intento inicial de admitir conexiones directas a través del 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 , [13] aunque estos envíos han expirado.
Microsoft "añadió SMB1 a la R2 de Windows Server 2012 desaprobación lista en junio de 2013." [14] Windows Server 2016 y algunas versiones de Windows 10 Fall Creators Update no tienen SMB1 instalado de forma predeterminada. [15]
SMB 2.0
Microsoft introdujo una nueva versión del protocolo (SMB 2.0 o SMB2) con Windows Vista en 2006 [16] y Server 2008 . Aunque el protocolo es propietario, su especificación se ha publicado para permitir que otros sistemas interoperen con los sistemas operativos de Microsoft que utilizan el nuevo protocolo. [17]
SMB2 reduce la "charla" del protocolo SMB 1.0 al reducir el número de comandos y subcomandos de más de cien a solo diecinueve. [18] Tiene mecanismos de canalización , es decir, enviar solicitudes adicionales antes de que llegue la respuesta a una solicitud anterior, mejorando así el rendimiento sobre 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. [18] SMB1 también tiene un mecanismo de combinación, conocido como AndX, para componer múltiples acciones, pero los clientes de Microsoft rara vez usan AndX. [ cita requerida ] También introduce la noción de "manejadores de archivos duraderos": estos permiten una conexión a un servidor SMB para sobrevivir breves cortes de red, como son típicos en una red inalámbrica, sin tener que incurrir en la sobrecarga de renegociar un nuevo sesión.
SMB2 incluye soporte para enlaces simbólicos . Otras mejoras incluyen el almacenamiento en caché de las propiedades de los archivos, la firma de mensajes mejorada con el algoritmo hash HMAC SHA-256 y una mejor escalabilidad al aumentar la cantidad de usuarios, recursos compartidos y archivos abiertos por servidor, entre otros. [18] 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 , lo que elimina las restricciones anteriores sobre los tamaños de bloque, lo que mejora el rendimiento con transferencias de archivos grandes en redes rápidas. [18]
Windows Vista / Server 2008 y los sistemas operativos posteriores usan SMB2 cuando se comunican con otras máquinas que también pueden usar SMB2. SMB1 sigue utilizándose para conexiones con versiones anteriores de Windows, así como soluciones NAS de varios proveedores . Samba 3.5 también incluye soporte experimental para SMB2. [19] Samba 3.6 es totalmente compatible con SMB2, excepto la modificación de las cuotas de usuario mediante las herramientas de gestión de cuotas de Windows. [20]
Cuando se introdujo SMB2, trajo una serie de beneficios sobre SMB1 para los implementadores de protocolos SMB de terceros. SMB1, originalmente diseñado por IBM , se sometió a ingeniería inversa y luego se convirtió en parte de una amplia variedad de sistemas operativos distintos de Windows, como Xenix , OS / 2 y VMS ( Pathworks ). X / Open lo estandarizó parcialmente; también tenía proyectos de normas IETF que caducaron. (Consulte http://ubiqx.org/cifs/Intro.html para obtener detalles históricos). SMB2 también es una ruptura relativamente limpia con el pasado. El código SMB1 de Microsoft tiene que funcionar con una gran variedad de clientes y servidores SMB. SMB1 presenta muchas versiones de información para comandos (seleccionando qué estructura devolver para una solicitud en particular) porque características como la compatibilidad con Unicode se actualizaron en una fecha posterior. 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 soporte Unicode).
Apple también está migrando a SMB2 (desde su propio Protocolo de archivos de Apple , ahora heredado) con OS X 10.9. [21] Sin embargo, esta transición estuvo plagada de problemas de compatibilidad. [22] [23] El soporte no predeterminado para SMB2 apareció de hecho en OS X 10.7, cuando Apple abandonó Samba a favor de su propia implementación SMB llamada SMBX. [21] Apple cambió a su propia implementación SMBX después de que Samba adoptó GPLv3 . [24] [25]
El sistema de archivos del cliente CIFS del kernel de Linux tiene soporte SMB2 desde la versión 3.7. [26]
SMB 2.1
SMB 2.1, introducido con Windows 7 y Server 2008 R2, introdujo mejoras de rendimiento menores con un nuevo mecanismo de bloqueo oportunista. [27]
SMB 3.0
SMB 3.0 (anteriormente llamado SMB 2.2) [28] se introdujo con Windows 8 [28] y Windows Server 2012 . [28] Trajo varios cambios significativos que están destinados a agregar funcionalidad y mejorar el rendimiento de SMB2, [29] notablemente en los centros de datos virtualizados :
- el Protocolo directo SMB (SMB sobre acceso directo a memoria remota [RDMA])
- SMB multicanal (múltiples conexiones por sesión SMB), [30] [31]
- Conmutación por error transparente SMB [32] [33]
También presenta varias mejoras de seguridad, como el cifrado de extremo a extremo y un nuevo algoritmo de firma basado en AES . [34] [35]
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; [36] [37] en esas versiones y versiones posteriores, la versión 1 de SMB anterior se puede deshabilitar opcionalmente para aumentar la seguridad. [38] [39]
SMB 3.1.1
SMB 3.1.1 se introdujo con Windows 10 y Windows Server 2016 . [40] 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 el hash SHA-512 . SMB 3.1.1 también hace que la negociación segura sea obligatoria cuando se conecta a clientes que utilizan SMB 2.xy versiones posteriores.
Implementación
Asuntos Generales
SMB funciona a través de un enfoque cliente-servidor , donde un cliente realiza solicitudes específicas y el servidor responde en consecuencia. Una sección del protocolo SMB se ocupa específicamente del acceso a los sistemas de archivos , de modo que los clientes pueden realizar solicitudes a un servidor de archivos ; pero algunas otras secciones del protocolo SMB se especializan en la comunicación entre procesos (IPC). El recurso compartido de comunicación entre procesos (IPC), o ipc $, es un recurso compartido de red en computadoras que ejecutan Microsoft Windows. Este recurso compartido virtual se utiliza para facilitar la comunicación entre procesos y computadoras a través de SMB, a menudo para intercambiar datos entre computadoras que han sido autenticadas.
Los desarrolladores han optimizado el protocolo SMB para el uso de subredes locales , pero los usuarios también han puesto a SMB a trabajar para acceder a diferentes subredes a través de Internet; las vulnerabilidades que involucran compartir archivos o imprimir en entornos MS Windows generalmente se enfocan en tal uso.
Los servidores SMB ponen sus sistemas de archivos y otros recursos a disposición de los clientes de la red. Es posible que los equipos cliente deseen acceder a los sistemas de archivos compartidos y las impresoras del servidor, y en esta funcionalidad principal, SMB se ha vuelto más conocido y más utilizado. Sin embargo, el aspecto del servidor de archivos SMB valdría poco sin el conjunto de protocolos de dominios NT , que proporcionan como mínimo una autenticación basada en dominios al estilo NT . Casi todas las implementaciones de servidores SMB utilizan la autenticación de dominio NT para validar el acceso de los usuarios a los recursos.
Problemas de desempeño
El uso del protocolo SMB a menudo se ha correlacionado con un aumento significativo en el tráfico de transmisión en una red. Sin embargo, SMB en sí no utiliza difusiones; los problemas de difusión comúnmente asociados con SMB se originan en realidad con el protocolo de ubicación del servicio NetBIOS . [ aclaración necesaria ] De forma predeterminada, un servidor de Microsoft Windows NT 4.0 utilizaba NetBIOS para anunciar y localizar servicios. NetBIOS funciona mediante la transmisión de servicios disponibles en un host en particular a intervalos regulares. Si bien esto generalmente lo convierte en un valor predeterminado aceptable en una red con una menor cantidad de hosts, el aumento del tráfico de transmisión puede causar problemas a medida que aumenta la cantidad de hosts en la red. La implementación de la infraestructura de resolución de nombres en forma de Servicio de nombres de Internet de Windows (WINS) o Sistema de nombres de dominio (DNS) resuelve este problema. WINS era una implementación propietaria usada con redes de Windows NT 4.0, pero traía consigo sus propios problemas y complejidades en el diseño y mantenimiento de una red de Microsoft.
Desde el lanzamiento de Windows 2000, Microsoft ha desaprobado el uso de WINS para la resolución de nombres, y el DNS dinámico jerárquico ahora está configurado como el protocolo de resolución de nombres predeterminado para todos los sistemas operativos de Windows. La resolución de nombres NetBIOS (cortos) por 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 de 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 de 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 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 . El monitoreo revela un alto grado de "charla" y un desprecio por la latencia de la red entre hosts. [18] Por ejemplo, una conexión VPN a través de Internet a menudo introducirá latencia en la 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 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. [41] Las soluciones a este problema incluyen el protocolo SMB 2.0 actualizado, [42] Archivos sin conexión , escalado de ventana TCP y dispositivos de aceleración WAN de varios proveedores de red que almacenan en caché y optimizan SMB 1.0 [43] y 2.0. [44]
Modificaciones de Microsoft
Microsoft agregó varias extensiones a su propia implementación SMB. Por ejemplo, agregó NTLM , seguido de los protocolos de autenticación NTLMv2, para abordar la debilidad de seguridad en la autenticación de LAN Manager original . La autenticación de LAN Manager se implementó según el requisito de la especificación SMB heredada original de utilizar contraseñas de IBM "LAN Manager", pero implementó DES de una manera defectuosa que permitía descifrar las contraseñas. [45] Más tarde, también se agregó la autenticación Kerberos . Los protocolos de inicio de sesión de dominio NT 4.0 inicialmente usaban cifrado de 40 bits fuera de los Estados Unidos , debido a restricciones de exportación sobre cifrado de 128 bits más fuerte [46] (posteriormente levantado en 1996 cuando el presidente Bill Clinton firmó la Orden Ejecutiva 13026 [47] ). El soporte de bloqueo oportunista ha cambiado con cada versión del servidor.
Samba
En 1991, Andrew Tridgell inició el desarrollo de Samba, una reimplementación de software libre (utilizando ingeniería inversa ) del protocolo de red SMB / CIFS para sistemas similares a Unix, inicialmente para implementar un servidor SMB para permitir que los clientes de PC ejecuten el cliente DEC Pathworks. para acceder a archivos en máquinas SunOS . [9] [48] Debido a la importancia del protocolo SMB en la interacción con la plataforma Microsoft Windows extendida , Samba se convirtió en una popular implementación de software libre de un cliente y servidor SMB compatible para permitir sistemas operativos que no sean Windows, como los de tipo Unix. sistemas operativos, para interoperar con Windows.
A partir de la versión 3 (2003), Samba proporciona servicios de archivo e impresión para clientes de Microsoft Windows y puede integrarse con un dominio de servidor de Windows NT 4.0 , ya sea como controlador de dominio primario (PDC) o como miembro de dominio. Las instalaciones de Samba4 pueden actuar como un controlador de dominio de Active Directory o un servidor miembro, en los niveles funcionales de bosque y dominio de Windows 2008 . [49]
Los administradores de paquetes en las distribuciones de Linux pueden buscar el paquete cifs-utils . El paquete es de los mantenedores de Samba.
Netsmb
NSMB (Netsmb y SMBFS) es una familia de implementaciones de servidor y cliente SMB en el kernel [ cita requerida ] en 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 . [50] Las implementaciones han divergido significativamente desde entonces. [51]
La versión macOS de NSMB se destaca por su esquema ahora común de representar enlaces simbólicos. Este formato "Minshall-French" muestra los enlaces simbólicos como archivos de texto con una .symlink
extensión y un Xsym\n
número mágico, siempre de 1067 bytes de longitud. Este formato también se utiliza para almacenar enlaces simbólicos en servidores SMB ingenuos o sistemas de archivos no compatibles. Samba admite este formato con una mfsymlink
opción. [52] Docker en Windows también parece usarlo. [ cita requerida ]
NQ
NQ es una familia de implementaciones de servidor y cliente SMB portátiles desarrolladas por Visuality Systems , una empresa con sede en Israel establecida en 1998 por Sam Widerman, ex director ejecutivo de Siemens Data Communications. La familia NQ comprende una pila SMB integrada (escrita en C), un cliente SMB de Java puro y una implementación de servidor SMB de almacenamiento. Todas las soluciones admiten el último dialecto SMB 3.1.1. NQ para Linux , NQ para WinCE , iOS, Android, VxWorks y otros sistemas operativos en tiempo real son compatibles con la solución configurable NQ.
MoSMB
MoSMB es una implementación SMB patentada para Linux y otros sistemas similares a Unix, desarrollada por Ryussi Technologies. Solo es compatible con SMB 2.xy SMB 3.x. [53]
Tuxera SMB
Tuxera SMB es una implementación de servidor SMB patentada desarrollada por Tuxera que se puede ejecutar en el kernel o en el espacio del usuario . [54] Es compatible con SMB 3.1.1 y versiones anteriores.
igualmente
Asimismo, desarrolló una implementación CIFS / SMB (versiones 1.0, 2.0, 2.1 y NFS 3.0) en 2009 que proporcionó una plataforma multiprotocolo y con reconocimiento de identidad para el acceso de red a archivos utilizados en productos de almacenamiento OEM construidos en dispositivos basados en Linux / Unix. La plataforma podría usarse para dispositivos NAS tradicionales, Cloud Gateway y Cloud Caching para proporcionar acceso seguro a archivos a través de una red. Asimismo fue comprado por EMC Isilon en 2012.
CIFSD
CIFSD es una implementación de servidor CIFS / SMB en el kernel de código abierto para el kernel de Linux. Tiene las siguientes ventajas sobre las implementaciones de espacio de usuario: Proporciona un mejor rendimiento y es más fácil implementar algunas características como SMB Direct. Es compatible con SMB 3.1.1 y versiones anteriores.
Bloqueo oportunista
En el protocolo SMB, el bloqueo oportunista es un mecanismo diseñado para mejorar el rendimiento controlando el almacenamiento en caché de los archivos de red por parte del cliente. [55] A diferencia de los bloqueos tradicionales , los 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 Batch OpLocks se crearon originalmente para admitir 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 solucionar esto, 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 se da una solicitud de apertura posterior, las dos solicitudes se cancelan entre sí. [56]
- OpLocks de nivel 1 / Cerraduras exclusivas
- Cuando una aplicación se abre en "modo compartido", un archivo alojado en un servidor SMB que no es 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 enviarlo al servidor. Esta es una mejora del 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 ruptura o revocación ) que invalida el bloqueo exclusivo otorgado previamente al cliente. A continuación, el cliente elimina todos los cambios del archivo.
- OpLocks 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. 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.
- Filtrar OpLocks
- Añadidos en NT 4.0, los bloqueos de opciones de filtro son similares a los bloqueos de opciones de nivel 2, pero evitan las violaciones del modo de intercambio entre la apertura de archivos y la recepción de bloqueos. Microsoft recomienda el uso de Filter OpLocks solo cuando sea importante permitir varios lectores y OpLocks de nivel 2 en otras circunstancias.
Los clientes que tienen un OpLock en realidad no mantienen un bloqueo en el archivo, sino que se les notifica mediante una interrupción cuando otro cliente desea acceder al archivo de una manera inconsistente con su bloqueo. La solicitud del otro cliente se retiene mientras se procesa la interrupción.
- Pausas
- En contraste con el comportamiento "estándar" del protocolo SMB, se puede enviar una solicitud de interrupción del servidor al cliente. Informa al cliente 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, al primer cliente se le envía una interrupción de OpLock y se le solicita que envíe todos sus cambios locales (en caso de OpLocks por lotes o exclusivos), si los hubiera, y reconozca la interrupción de OpLock. Tras este reconocimiento, el servidor puede responder al segundo cliente de manera coherente.
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. [57] [58] 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 plano . El seguimiento de ataques en tiempo real [59] muestra que SMB es uno de los principales vectores de ataque para los intentos de intrusión, [60] por ejemplo, el ataque Sony Pictures de 2014 , [61] y el ataque de ransomware WannaCry de 2017. [62] En 2020, Se revelaron dos vulnerabilidades de SMB de alta gravedad y se denominaron SMBGhost ( CVE-2020-0796 ) y SMBleed ( CVE-2020-1206 ), que cuando se encadenan pueden proporcionar privilegios RCE (ejecución remota de código) al atacante. [63]
Especificaciones
Las especificaciones para SMB son propietarias y originalmente se cerraron, lo que obligó a otros proveedores y proyectos a realizar ingeniería inversa del protocolo para interoperar con él. El protocolo SMB 1.0 finalmente se publicó algún tiempo después de su ingeniería inversa, mientras que el protocolo SMB 2.0 estuvo disponible en el Centro de desarrolladores de especificaciones abiertas MSDN de Microsoft desde el principio. [64] Hay una serie de especificaciones que son relevantes para el protocolo SMB:
- [MS-CIFS]: Protocolo común del sistema de archivos de Internet (CIFS)
- Especifica el protocolo Common Internet File System (CIFS), un protocolo multiplataforma independiente del transporte que proporciona un mecanismo para que los sistemas cliente utilicen los servicios de archivo e impresión que los sistemas de servidor ponen a disposición a través de una red.
- [MS-SMB]: Protocolo de bloque de mensajes del servidor (SMB)
- Especifica el Protocolo de bloque de mensajes del servidor (SMB), que define las extensiones de la especificación del Sistema de archivos de Internet común (CIFS) existente que ha implementado Microsoft desde la publicación de la especificación CIFS.
- [MS-SMB2]: Protocolo de bloque de mensajes de servidor (SMB) Versiones 2 y 3
- Especifica las versiones 2 y 3 del Protocolo de bloque de mensajes del 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 del servidor.
- [MS-SMBD]: Protocolo de transporte de acceso directo remoto a memoria (RDMA) SMB2
- Especifica el protocolo de transporte SMB2 Remote Direct Memory Access (RDMA), 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 sobrecarga de CPU reducida, una latencia más baja y un rendimiento mejorado.
- [MS-FSSO]: Descripción general del sistema de servicios de acceso a archivos ( estado de documentos archivados )
- Describe la funcionalidad prevista del Sistema de servicios de acceso a archivos, cómo interactúa con los sistemas y aplicaciones que necesitan servicios de archivos y cómo interactúa con los clientes administrativos para configurar y administrar el sistema. Los servicios de acceso a archivos utilizan varios protocolos para el acceso a archivos y la administración del servidor de archivos. Este documento enumera esos protocolos y describe cómo se utilizan para implementar el sistema de servicios de acceso a archivos. Las vistas generales del sistema se sustituyen por vistas más nuevas.
Ver también
- Lista de productos compatibles con PYMES
- Directorio Activo
- Reparto administrativo
- Acceso a archivos compartidos
- AppleTalk
- Sistema de archivos de red (protocolo)
- Sistema de archivos remoto
- WebDAV
- Convención de nomenclatura uniforme
- DCE / RPC
- Vecindad de la red
Referencias
- ^ "Sistema de archivos de Internet común" . Biblioteca de Microsoft TechNet. Archivado desde el original el 7 de julio de 2017 . Consultado el 20 de agosto de 2013 .
- ^ "Descripción general del protocolo Microsoft SMB y el protocolo CIFS" . Biblioteca de Microsoft MSDN. 25 de julio de 2013. Archivado desde el original el 21 de agosto de 2013 . Consultado el 20 de agosto de 2013 .
- ^ "Descripción general del protocolo Microsoft SMB y el protocolo CIFS" . Microsoft . 22 de octubre de 2009. Archivado desde el original el 2 de agosto de 2016 . Consultado el 10 de abril de 2019 .
- ^ "Conceptos de redes de Lan Manager" . Microsoft. Archivado desde el original el 30 de diciembre de 2012 . Consultado el 18 de septiembre de 2014 .
- ^ "MSKB887429: descripción general de la firma del bloque de mensajes del servidor" . Microsoft Corporation . 30 de noviembre de 2007. Archivado desde el original el 20 de noviembre de 2010 . Consultado el 24 de octubre de 2012 .
Firmas de seguridad (números de secuencia SMB)
- ^ Jesper M. Johansson (8 de septiembre de 2005). "Cómo dispararse en el pie con seguridad, parte 1" . Microsoft Corporation . Archivado desde el original el 19 de octubre de 2018 . Consultado el 24 de octubre de 2012 .
Este artículo trata sobre la firma de mensajes [...] del bloque de mensajes del servidor (SMB).
- ^ "MSKB887429: descripción general de la firma del bloque de mensajes del servidor" . Microsoft Corporation . 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, se requiere la firma SMB para las sesiones SMB entrantes en controladores de dominio basados en Windows Server 2003.
- ^ José Barreto (1 de diciembre de 2010). "Conceptos básicos de la firma SMB (que cubre tanto SMB1 como SMB2)" . Blogs de administración y servidor de Microsoft TechNet . Archivado desde el original el 2 de diciembre de 2012 . Consultado el 24 de octubre de 2012 .
Este mecanismo de seguridad en el protocolo SMB ayuda a evitar problemas como la manipulación de paquetes y los ataques "man in the middle". [...] La firma SMB está disponible en todas las versiones actualmente compatibles de Windows, 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 una directiva de grupo genuina.
- ^ a b c Tridgell, Andrew . "Mitos sobre la samba" . Archivado desde el original el 20 de octubre de 2017 . Consultado el 3 de enero de 2016 .
- ^ "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 .
- ^ Kyttle, Ralph (13 de mayo de 2017). "SMB1 - Auditar el uso activo mediante el analizador de mensajes" . Microsoft TechNet . Microsoft. Archivado desde el original el 28 de marzo de 2019 . Consultado el 28 de marzo de 2019 .
- ^ "WebNFS - Descripción técnica general" . Archivado desde el original el 18 de mayo de 2007.
- ^ * I. Heizer; P. Leach; D. Perry (13 de junio de 1996). "Protocolo común del sistema de archivos de Internet (CIFS / 1.0)" . Archivado desde el original el 8 de agosto de 2019 . Consultado el 10 de diciembre de 2017 .
- Paul J. Leach; Dilip C. Naik (3 de enero de 1997). "Autenticación de paso y inicio de sesión CIFS" .
- Paul J. Leach; Dilip C. Naik (10 de enero de 1997). "Protocolo de navegador CIFS / E" .
- Paul J. Leach; Dilip C. Naik (31 de enero de 1997). "Especificación de impresión CIFS" .
- Paul J. Leach; Dilip C. Naik (26 de febrero de 1997). "Protocolo de administración remota CIFS" .
- Paul J. Leach; Dilip C. Naik (19 de diciembre de 1997). "Un protocolo de sistema de archivos de Internet común (CIFS / 1.0)" .
- ^ "La desaprobación de SMB1 - Debería estar planeando deshacerse de este viejo dialecto de SMB - Blog de José Barreto" . blogs.technet.microsoft.com . Archivado desde el original el 21 de mayo de 2017 . Consultado el 9 de octubre de 2019 .
- ^ "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 .
- ^ Navjot Virk y Prashanth Prahalad (10 de marzo de 2006). "Novedades de SMB en Windows Vista" . Chk Your Dsks . MSDN. Archivado desde el original el 5 de mayo de 2006 . Consultado el 1 de mayo de 2006 .
- ^ 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 .
- ^ a b c d e José Barreto (9 de diciembre de 2008). "SMB2, un rediseño completo del protocolo de archivo remoto principal para Windows" . Blogs de administración y servidor de Microsoft TechNet . Archivado desde el original el 3 de junio de 2012 . Consultado el 1 de noviembre de 2009 .
- ^ "Samba 3.5.0 disponible para descargar" . Archivado desde el original el 24 de julio de 2011 . Consultado el 8 de julio de 2011 .
- ^ "Samba 3.6.0 disponible para descargar" . Archivado desde el original el 24 de septiembre de 2011 . Consultado el 10 de agosto de 2011 .
- ^ a b Eran, Daniel (11 de junio de 2013). "Apple cambia de compartir 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 .
- ^ Vaughan, Steven J. (28 de octubre de 2013). "Problema SMB2 de Mavericks y arreglos" . ZDNet. Archivado desde el original el 5 de enero de 2014 . Consultado el 12 de enero de 2014 .
- ^ MacParc. "10.9: Cambie la pila SMB para usar SMB1 como predeterminado" . Mac OS X Hints . macworld.com. Archivado desde el original el 12 de enero de 2014 . Consultado el 12 de enero de 2014 .
- ^ Topher Kessler (23 de marzo de 2011). "Di 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 .
- ^ Thom Holwerda (26 de marzo de 2011). "Apple abandona SAMBA a favor del reemplazo de cosecha propia" . Archivado desde el original el 2 de noviembre de 2013 . Consultado el 12 de enero de 2014 .
- ^ "Linux 3.7 - principiantes del kernel de Linux" . Archivado desde el 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 del 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 .
- ^ a b c Jeffrey Snover (19 de abril de 2012). "SMB 2.2 ahora es SMB 3.0" . Blog de Windows Server . Consultado el 6 de julio de 2020 .
- ^ Chelsio Communications. "40G SMB directo" . Archivado desde el original el 7 de septiembre de 2013 . Consultado el 18 de junio de 2013 .
- ^ José Barreto (19 de octubre de 2012). "Tutorial SNIA sobre el protocolo SMB" (PDF) . Asociación de la industria de redes de almacenamiento . Archivado (PDF) desde el original el 3 de junio de 2013 . Consultado el 28 de noviembre de 2012 .
- ^ Thomas Pfenning. "El futuro de los protocolos de archivo: SMB 2.2 en el centro de datos" (PDF) . Archivado desde el original (PDF) el 20 de julio de 2012.
- ^ Joergensen, Claus (7 de junio de 2012). "Conmutación por error transparente SMB: hacer que los recursos compartidos de archivos estén continuamente disponibles" . Microsoft TechNet . Archivado desde el original el 11 de enero de 2019 . Consultado 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 desde el original el 27 de noviembre de 2016 . Consultado el 1 de febrero de 2017 .
- ^ "Mejoras de seguridad 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 .
- ^ José Barreto (5 de mayo de 2013). "Vínculos actualizados en el servidor de archivos de Windows Server 2012 y SMB 3.0" . Blogs de administración y servidor de Microsoft TechNet . Archivado desde el original el 3 de agosto de 2016 . Consultado el 14 de agosto de 2016 .
- ^ José Barreto (7 de julio de 2014). "Enlaces actualizados en el servidor de archivos de Windows Server 2012 R2 y SMB 3.02" . Blogs de administración y servidor de Microsoft TechNet . Archivado desde el original el 26 de agosto de 2016 . Consultado el 14 de agosto de 2016 .
- ^ José Barreto (12 de diciembre de 2013). "Storage Developer Conference - Las diapositivas de SDC 2013 ahora están disponibles públicamente. Aquí están los enlaces a las diapositivas de Microsoft ..." . Blogs de administración y servidor de Microsoft TechNet . Archivado desde el 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 desde el original el 9 de abril de 2015 . Consultado el 6 de abril de 2015 .
- ^ José Barreto (30 de abril de 2015). "Enlaces de red SMB3 para Windows Server 2012 R2" . Blogs de administración y servidor de Microsoft TechNet . Archivado desde el original el 26 de agosto de 2016 . Consultado el 14 de agosto de 2016 .
- ^ José Barreto (5 de mayo de 2015). "Novedades de SMB 3.1.1 en Windows Server 2016 Technical Preview 2" . Blogs de administración y servidor de Microsoft TechNet . Archivado desde el original el 8 de octubre de 2016 . Consultado el 14 de agosto de 2016 .
- ^ Neil Carpenter (26 de octubre de 2004). "Rendimiento SMB / CIFS sobre enlaces WAN" . Microsoft . Archivado desde el original el 13 de febrero de 2020 . Consultado el 13 de febrero de 2020 .
- ^ "Novedades de SMB en Windows Server" . Microsoft . Archivado desde el 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) . Conferencia de desarrolladores de almacenamiento, SNIA, Santa Clara 2009 . Consultado el 6 de julio de 2020 .
- ^ Mark Rabinovich. "Acelerando SMB2" (PDF) . Conferencia de desarrolladores de almacenamiento, SNIA, Santa Clara 2011 . Consultado el 6 de julio de 2020 .
- ^ 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 .
- ^ "Descripción del paquete de cifrado 1 de Microsoft Windows" . Microsoft . 1 de noviembre de 2006. Archivado desde el original el 2 de octubre de 2009 . Consultado el 1 de noviembre de 2009 .
- ^ "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 .
- ^ 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 .
- ^ "Samba 4 niveles funcionales" . 25 de febrero de 2011. Archivado desde el original el 29 de julio de 2014 . Consultado el 12 de enero de 2014 .
- ^ "netsmb (4)" . Páginas de manual de NetBSD 8.0 . Consultado el 5 de enero de 2020 .
- ^ - Manual de formatos de archivo FreeBSD . - Manual de formatos de archivo de Darwin y macOS.
- ^ "Extensiones UNIX" . SambaWiki . Archivado desde el original el 12 de junio de 2020 . Consultado el 15 de marzo de 2020 .
- ^ Dr. Sunu Ingeniero. "Creación de un servidor de protocolo SMB de alto rendimiento y escalabilidad" (PDF) . Archivado (PDF) desde el original el 27 de septiembre de 2016 . Consultado el 25 de septiembre de 2016 .
- ^ "Microsoft y Tuxera fortalecen su asociación a través de Tuxera SMB Server" . Microsoft . Centro de noticias de Microsoft. Archivado desde el original el 17 de noviembre de 2016 . Consultado el 6 de febrero de 2017 .
- ^ "Cerraduras oportunistas" . Microsoft. Archivado desde el original el 23 de octubre de 2012 . Consultado el 6 de noviembre de 2012 .
- ^ Sphere, IT (2014), All About Opportunistic Locking , archivado desde el original el 13 de abril de 2014 , consultado el 9 de abril de 2014
- ^ "MS02-070: falla en la firma de SMB puede permitir que se modifique la política 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 .
- ^ "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 .,
- ^ "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 .
- ^ "Alerta (TA14-353A) dirigida a malware destructivo" . US-CERT . Archivado desde el original el 20 de diciembre de 2014 . Consultado el 20 de diciembre de 2014 .
- ^ "Los piratas informáticos de Sony utilizaron la herramienta de gusano de bloque de mensajes de servidor (SMB)" . Archivado desde el original el 20 de diciembre de 2014 . Consultado el 20 de diciembre de 2014 .
- ^ "WannaCry Ransomware Attack golpea a las víctimas con Microsoft SMB Exploit" . eWeek . Consultado el 13 de mayo de 2017 .
- ^ "Escritura de SMBleedingGhost: encadenamiento de SMBleed (CVE-2020-1206) con SMBGhost" . Blog de ZecOps . 9 de junio de 2020 . Consultado el 19 de noviembre de 2020 .
- ^ "Protocolos de Windows" . Archivado desde el original el 26 de septiembre de 2009 . Consultado el 13 de octubre de 2009 .
enlaces externos
- Sección DFS en la documentación "Desarrollador de Windows"
- Hertel, Christopher (2003). Implementación de CIFS: el sistema de archivos común de Internet . Prentice Hall. ISBN 0-13-047116-X . (Texto con licencia de Open Publication License , v1.0 o posterior, disponible en el enlace anterior).
- Common Internet File System , detalles técnicos de Microsoft Corporation
- el dialecto NT LM 0.12 de SMB . En formato Microsoft Word
- Steven M. French, Nace un nuevo sistema de archivos de red: Comparación de SMB2, CIFS y NFS , Simposio de Linux 2007
- Steve French, El futuro de los protocolos de archivos: SMB2 se encuentra con Linux , Linux Collaboration Summit 2012