lanzamiento , continuando el desarrollo de la rama con una implementación completa del controlador de dominio y el servicio Active Directory, compatible con la implementación de Windows 2000 y capaz de servir a todas las versiones de clientes de Windows admitidas por Microsoft, incluidos Windows 10. Samba 4 es un producto de servidor multifuncional que también proporciona una implementación de servidor de archivos, servicio de impresión y servidor de identificación (winbind).
Mejoras clave en Samba 4.12:
- Se han eliminado las implementaciones criptográficas integradas de la base de código en favor del uso de bibliotecas externas. Se ha decidido utilizar GnuTLS como la biblioteca criptográfica principal (se requiere al menos la versión 3.4.7). Además de reducir las posibles amenazas relacionadas con la aparición de vulnerabilidades en las implementaciones incorporadas de algoritmos criptográficos, el cambio a GnuTLS también ha permitido lograr un aumento significativo en el rendimiento al utilizar cifrado en SMB3. En pruebas con la implementación del cliente CIFS del núcleo de Linux 5.3, se ha registrado un aumento en la velocidad de escritura de 3 veces y de lectura de 2.5 veces.
- Se ha añadido un nuevo backend para la búsqueda en secciones SMB utilizando el protocolo , basado en el motor de búsqueda (anteriormente se proporcionaba un backend basado en ). También se ha añadido la utilidad «mdfind» con una implementación de cliente que permite enviar consultas de búsqueda a cualquier servidor SMB en el que esté ejecutándose el servicio RPC Spotlight. El valor de la configuración «spotlight backend» por defecto se ha cambiado a «noindex» (para Tracker o Elasticsearch, se deben establecer explícitamente los valores «tracker» o «elasticsearch»).
- Se ha modificado el comportamiento de las operaciones ‘net ads kerberos pac save’ y ‘net eventlog export’, que ahora no sobrescriben el archivo, y en caso de intentar exportar a un archivo existente, se muestra un error.
- En samba-tool se ha mejorado la adición de registros de contacto para miembros de grupos. Si antes, mediante el comando ‘samba-tool group addmemers’, solo se podían agregar usuarios, grupos y computadoras como nuevos miembros del grupo, ahora se ha añadido soporte para agregar contactos como miembros de grupos.
- En samba-tool se ha habilitado la filtración por unidades organizativas (OU, Organizational Unit) o subárbol. Se han añadido nuevas banderas «—base-dn» y «—member-base-dn», que permiten realizar la operación solo en una parte específica del árbol de Active Directory, por ejemplo, solo dentro de una unidad OU.
- Se ha añadido un nuevo módulo VFS ‘io_uring’, que utiliza la nueva interfaz del núcleo de Linux. para la entrada/salida asíncrona. Io_uring admite el sondeo de entrada/salida y puede trabajar con almacenamiento en búfer (mientras que el mecanismo propuesto anteriormente «aio» no admitía la entrada/salida con búfer). Al operar con el sondeo activado, io_uring supera considerablemente a aio en rendimiento. Actualmente, basado en io_uring, Samba ha implementado soporte para SMB_VFS_{PREAD,PWRITE,FSYNC}_SEND/RECV y ha reducido la sobrecarga para mantener el grupo de ejecución en múltiples hilos (threadpool) en el espacio de usuario al aplicar el backend VFS propuesto por defecto. Para compilar el módulo VFS ‘io_uring’ se requiere la biblioteca y un kernel de Linux 5.1+.
- En VFS se ha proporcionado la opción de especificar un valor especial de tiempo UTIME_OMIT para marcar la necesidad de ignorar el tiempo en la función SMB_VFS_NTIMES().
- En smb.conf se ha eliminado el soporte para el parámetro «write cache size», que ha perdido su sentido tras la llegada del soporte para io_uring.
- En Samba-DC y Kerberos se ha dejado de dar soporte a la encriptación utilizando el algoritmo DES. En Heimdal-DC se ha eliminado el código de weak-crypto.
- Se ha eliminado el módulo vfs_netatalk, que había quedado sin soporte y ha perdido relevancia.
- Se ha declarado obsoleto el backend BIND9_FLATFILE, que se eliminará en una de las próximas versiones.
- La biblioteca zlib se ha incluido entre las dependencias de compilación. La implementación interna de zlib se ha eliminado de la base de código (el código se basaba en una versión antigua de zlib, en la que el soporte para la encriptación no funcionaba correctamente).
- Se ha establecido una prueba de fuzzing para la base de código, incluidos los servicios
oss-fuzz. Durante las pruebas de fuzzing se han identificado y corregido numerosos errores. - Los requisitos para la versión mínima de Python se han elevado de Python
3.4 a Python 3.5. La posibilidad de compilar un servidor de archivos con Python 2 aún se conserva (antes de ejecutar ‘./configure’ y ‘make’ se debe establecer la variable de entorno ‘PYTHON=python2’).
Fuente: opennet.ru
