Cómo habilitar o deshabilitar los protocolos Samba SMB en Windows

Habilitar o deshabilitar los protocolos SMB de Samba en Windows

SMB (Server Message Block) es uno de los protocolos por excelencia para compartir archivos en la red local, en 1998 Microsoft renombró este protocolo a CIFS (anteriormente se conocía como SMB pero ha sido renombrado a CIFS (Common Internet File System)) . Desde entonces es conocido como SMB/CIFS en muchos lugares, las últimas versiones de SMB/CIFS incorporan soporte para enlaces duros y simbólicos, archivos de mayor tamaño, e incluso contamos con autenticación y transferencia segura de archivos mediante protocolos criptográficos. Samba es la implementación gratuita del protocolo SMB/CIFS de Windows, por lo que tendremos compatibilidad entre sistemas Microsoft y sistemas operativos basados ​​en Linux y Unix sin problemas. Hoy vamos a explicar cómo habilitar o deshabilitar los diferentes protocolos SMBv1,

Características SMB/CIFS en sus diferentes versiones

SMB es un protocolo de red que nos permite compartir archivos, carpetas e impresoras en la red local entre diferentes sistemas operativos, incluidos Windows, Linux, MacOS y cualquier sistema operativo basado en Unix que incorpore Samba. Este protocolo está dentro de la capa de aplicación, y debajo, hace uso del puerto TCP 445, por lo tanto, las transferencias de datos son confiables porque hay retransmisión de los datos en caso de problemas. Desde el nacimiento de SMB/CIFS hasta la actualidad, contamos con varias versiones que han ido incorporando mejoras en el funcionamiento y también en la seguridad del protocolo, sin embargo, no todos los servidores que funcionan con SMB/CIFS hacen uso de las últimas versiones. protocolo, por lo que podríamos encontrarnos con bloqueos inesperados al intentar conectarnos a un servidor SMB local.

El acceso a los recursos SMB/CIFS se puede realizar mediante autenticación con usuarios locales, mediante autenticación basada en servidor RADIUS o LDAP y, por supuesto, mediante autenticación de directorio activo. A nivel de configuración podríamos configurar el servidor para evitar contraseñas nulas, también podríamos crear cuentas de invitado que permitirán el acceso a determinados recursos sin ningún tipo de autenticación. Otras características de SMB/CIFS es que podemos habilitar el soporte para atributos extendidos de OS/2 en un recurso compartido, así como almacenar estos atributos de DOS si estamos usando sistemas operativos de Microsoft. Por supuesto, podemos establecer una máscara para crear archivos y también directorios, de forma que aquellos archivos o carpetas que vayamos a crear nuevos tengan permisos específicos.

En cuanto al rendimiento de SMB/CIFS, podemos habilitar E/S asíncrona, con el fin de lograr mejores velocidades de lectura y escritura en los recursos de Samba, además, esto solo podría usarse para archivos de un tamaño mayor al definido en la configuración de el servidor. Cuando vamos a configurar un servidor SMB/CIFS, la versión utilizada es muy importante, tanto en el servidor como en el cliente. A nivel de configuración, podemos definir diferentes parámetros para establecer el protocolo máximo a nivel de servidor soportado, y también el protocolo mínimo a nivel de servidor, con el fin de brindar la mejor seguridad a los clientes. Por ejemplo, una configuración muy segura sería soportar solo el protocolo SMB3, sin embargo, podemos tener problemas con algunos clientes que solo soportan hasta SMB2,

SMB/CIFS versión 1

La primera versión de este protocolo nació en 1983 y se construyó usando NetBIOS de Microsoft, sin embargo, en versiones posteriores ya no se usó NetBIOS. Todas las versiones antiguas de Microsoft Windows hacen uso de SMBv1, sin embargo, las nuevas versiones de las versiones de Windows 10 y Windows Server no incorporan SMBv1 instalado en el sistema operativo por motivos de seguridad, ya que se ha demostrado que este protocolo actualmente no está seguro en absoluto y no se recomienda su uso. Por ejemplo, Windows Server 2016 y versiones posteriores y Windows 10 Fall Creators Update no incluyen esta versión de forma predeterminada.

También es cierto que algunos routers aún utilizan la primera versión del protocolo en sus servidores SMB/CIFS, en este caso poco o nada se puede hacer para configurarlo con versiones superiores, pues depende del fabricante en la gran mayoría de los casos. casos. Por ejemplo, si tiene un firmware de terceros, como OpenWRT o DD-WRT, puede deshabilitar este protocolo SMBv1 y activar las últimas versiones, ya que el software incorporado en el firmware lo admite.

SMB/CIFS versión 2

Microsoft lanzó la versión SMBv2 para Windows Vista en 2006 y en Windows Server 2008. Aunque este protocolo es privado, se ha publicado toda su especificación para permitir que programas como Samba para Linux y Unix lo utilicen y que los diferentes sistemas operativos sean interoperables. . de lo contrario, solo los sistemas operativos Windows podrían intercambiar información entre sí.

SMB2 supone un gran cambio respecto a la primera versión, tanto en funcionamiento como en seguridad. SMB2 reduce el establecimiento de la conexión en comparación con SMB1.0, reduciendo la cantidad de comandos y subcomandos, además, permite enviar solicitudes adicionales antes de que llegue la respuesta a una solicitud anterior, ahorrando mucho tiempo y mejorando la velocidad cuando tenemos una alta latencia en las conexiones, o cuando queremos conseguir el mejor rendimiento posible. Otras opciones muy importantes son la posibilidad de combinar múltiples acciones en una sola solicitud, reduciendo la cantidad de información intercambiada. SMB 2.0 incorpora una serie de identificadores para evitar volver a conectarnos desde cero en caso de un breve corte de red, de esta forma no tendremos que restablecer la comunicación.

Esta nueva versión SMB 2.0 admite enlaces simbólicos, almacenamiento en caché, firma de mensajes con HMAC-SHA256 y mejor escalabilidad para tener múltiples usuarios concurrentes en el mismo servidor, además, también permite mejorar la cantidad de recursos compartidos y archivos abiertos por el servidor. . Mientras que SMBv1 utiliza un tamaño de datos de 16 bits y el límite máximo de tamaño de bloque es de 64 K, en SMB2 se utilizan 32 o 64 bits para el almacenamiento, lo que significa que en enlaces de red ultrarrápidos como redes Gigabit, Multigigabit o 10G, la transferencia de archivos es mucho mayor. más rápido al enviar archivos muy grandes.

En RedesZone hemos podido conseguir velocidades de 1.2 GB/s en una red 10G usando SMB2, con un servidor NAS QNAP TS-1277 con almacenamiento SSD, y en el PC de origen también teníamos almacenamiento SSD, porque el almacenamiento tradicional con Discos Duros No admitimos estas altas velocidades a menos que usemos cierto RAID de muchos discos.

Windows Vista y Windows Server 2008 y los sistemas operativos posteriores utilizan SMB2 de manera predeterminada; sin embargo, aún puede encontrar SMB1 en ciertas computadoras, por lo que es posible que deba habilitarlo específicamente para conectarse a estos servidores también. antiguo. Finalmente, SMB 2.1, que se introdujo en Windows 7 y Windows Server 2008 R2, mejoró aún más el rendimiento con un nuevo mecanismo de bloqueo oportunista.

SMB/CIFS versión 3

Esta versión SMB 3.0 anteriormente se llamaba SMB 2.2, se introdujo con Windows 8 y Windows Server 2012, con nuevos cambios muy importantes destinados a agregar nuevas funcionalidades y mejorar el rendimiento de SMB2 en los centros de datos virtualizados. Algunos de los cambios introducidos fueron los siguientes:

  • SMB Direct Protocol: permite utilizar SMB sobre acceso directo a memoria remota RDMA, cualquier servidor con esta versión incorpora esta funcionalidad para mejorar mucho el rendimiento.
  • SMB multicanal: esta característica nos permite realizar múltiples conexiones por sesión SMB, para forzar al máximo las comunicaciones y exprimir la red local donde estemos corriendo el servidor y los clientes.
  • Conmutación por error totalmente transparente.

Sin embargo, la característica más importante es la autenticación del usuario en el SMB, ahora está totalmente encriptada, antes siempre se hacía en texto claro, por lo que un usuario malicioso podría poner un sniffer de red y capturar las credenciales del usuario. Gracias a esto, la autenticación se realiza de forma segura. También se ha incorporado la posibilidad de contar con encriptación de extremo a extremo con AES para encriptar o encriptar transferencias de archivos y carpetas. Por tanto, con SMB 3.0 tenemos dos posibilidades de configuración:

  • Autenticación segura con cifrado y transferencia de archivos y carpetas sin cifrar.
  • Autenticación e intercambio de archivos y carpetas con encriptación simétrica, esto nos brindará la máxima seguridad, pero el rendimiento podría verse mermado.

Si el servidor SMB no soporta AES-NI en su procesador, es probable que el rendimiento que consigamos a la hora de transferir archivos y carpetas sea realmente bajo, por lo que es muy recomendable que cuentes con un procesador potente con motor de cifrado por hardware. Actualmente todos los procesadores a partir del año 2015 aproximadamente cuentan con esta tecnología, pero debes revisarlo en sus especificaciones técnicas.

Además de la versión SMB 3.0, también se introdujo la versión SMB 3.0.2 en Windows 8.1 y Windows Server 2012 R2, mejorando funcionalidades y rendimiento, además, en estos sistemas operativos ya es posible deshabilitar la versión SMB 1.0 para mejorar seguridad, porque al conectarse, los clientes pueden negociar qué protocolo SMB usar.

Por último, Microsoft ha introducido la versión 3.1.1 de SMB en Windows 10 y en Windows Server 2016 y versiones posteriores. Esta nueva versión incorpora el cifrado simétrico AES-128-GCM para proporcionar la mayor seguridad posible y el mejor rendimiento en lectura y escritura, también tenemos la opción de configurar el modo de cifrado CCM. Además, implementa un chequeo previo de integridad que hace uso de un hash SHA2-512, uno de los más seguros actualmente. Finalmente, esta versión de SMB 3.1.1 obliga a que la negociación de clientes que utilicen SMB 2.0 o superior sea con seguridad, es decir, autenticación con encriptación.

Habilite o deshabilite diferentes protocolos SMB en Windows

Actualmente si estamos usando las últimas versiones del sistema operativo Windows, la versión SMB 1.0 está deshabilitada por defecto por seguridad, debido a que es un protocolo que actualmente no se considera seguro, es necesario que uses SMB 2.0 o superior para evitar la seguridad. problemas. No obstante, sería recomendable comprobar si tenemos habilitados o no los diferentes protocolos para saber cuáles debemos habilitar o deshabilitar.

A continuación, vamos a explicarte cómo detectar, deshabilitar o habilitar las diferentes versiones de Samba, lo primero que tenemos que hacer es pulsar sobre la tecla «Windows» y luego buscar « Powershell «, hacemos clic con el botón derecho del ratón y « ejecutarlo como administrador «.

SMBv1 tanto cliente como servidor

Si queremos habilitar o deshabilitar el soporte SMBv1 en nuestro equipo, primero tenemos que verificar si lo tenemos habilitado o deshabilitado.

Detectar:

Get-WindowsOptionalFeature -Online -FeatureName SMB1ProtocolPara habilitar el protocolo SMBv1 (no es recomendable por seguridad), debes poner:

Enable-WindowsOptionalFeature -Online -FeatureName SMB1ProtocolPara deshabilitarlo:

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

SMBv2 / SMB3 tanto cliente como servidor

Si queremos habilitar o deshabilitar el soporte para SMBv2 o SMBv3 en nuestro equipo, primero tenemos que verificar si lo tenemos habilitado o deshabilitado.

Get-SmbServerConfiguration | Select EnableSMB2ProtocolPara habilitarlo:

Set-SmbServerConfiguration -EnableSMB2Protocol $truePara deshabilitarlo:

Set-SmbServerConfiguration -EnableSMB2Protocol $falseEsto funciona tanto para la versión SMBv2 como para la versión SMBv3, de esta forma, no tendremos un comando específico para SMBv3 porque ya está integrado en SMBv2, pero debemos verificar si el cifrado de datos está activado, una característica única en la última versión. SMBv3:

Get-SmbServerConfiguration | Select EncryptDataSi indica “Falso” significa que el cifrado de datos no está habilitado, para habilitarlo debemos ejecutar el siguiente comando:

Set-SmbServerConfiguration -EncryptData $TrueDebes asegurarte de que el servidor remoto soporte SMBv3, de lo contrario, te dará error al intentar acceder a los recursos compartidos de cualquier servidor.