rilascio , continuando lo sviluppo della branche con una completa implementazione del controller di dominio e del servizio Active Directory, compatibile con l'implementazione di Windows 2000 e capace di gestire tutte le versioni di Windows client supportate da Microsoft, inclusa Windows 10. Samba 4 è un prodotto server multifunzionale, che offre anche l'implementazione di un file server, servizio di stampa e server di identificazione (winbind).
Chiave in Samba 4.12:
- Le implementazioni crittografiche integrate sono state rimosse dal codice sorgente a favore dell'uso di librerie esterne. È stato deciso di utilizzare GnuTLS come libreria crittografica principale (richiesta almeno la versione 3.4.7). Oltre a ridurre le potenziali minacce legate alla scoperta di vulnerabilità nelle implementazioni crittografiche integrate, il passaggio a GnuTLS ha anche portato a un significativo aumento delle prestazioni durante l'uso della crittografia in SMB3. Nei test con l'implementazione del client CIFS dal kernel Linux 5.3, è stata registrata un'accelerazione della velocità di scrittura di 3 volte e di lettura di 2.5 volte.
- È stato aggiunto un nuovo backend per la ricerca su condivisioni SMB utilizzando il protocollo , basato sul motore di ricerca (in precedenza fornito un backend basato su ). È stata inclusa anche l'utilità «mdfind» con un client che consente di inviare richieste di ricerca a qualsiasi server SMB su cui è in esecuzione il servizio RPC Spotlight. Il valore predefinito dell'impostazione «spotlight backend» è stato modificato in «noindex» (per Tracker o Elasticsearch, è necessario impostare esplicitamente i valori «tracker» o «elasticsearch»).
- Il comportamento delle operazioni ‘net ads kerberos pac save’ e ‘net eventlog export’ è stato modificato: ora non sovrascrivono il file, ma in caso di tentativo di esportazione in un file esistente restituiscono un errore.
- In samba-tool è stato migliorato l'aggiunta di record di contatto per i membri dei gruppi. Se in precedenza era possibile aggiungere semplicemente utenti, gruppi e computer come nuovi membri dei gruppi con il comando ‘samba-tool group addmemers’, ora è stata aggiunta la possibilità di integrare i contatti come membri dei gruppi.
- In samba-tool è consentita la filtrazione per unità organizzative (OU, Organizational Unit) o sotto-alberi. Sono stati aggiunti i nuovi flag ‘—base-dn’ e ‘—member-base-dn’, che consentono di eseguire l'operazione solo su una parte specifica dell’albero di Active Directory, ad esempio, solo all'interno di una singola unità organizzativa OU.
- È stato aggiunto un nuovo modulo VFS ‘io_uring’, che utilizza una nuova interfaccia del kernel Linux. per l'input/output asincrono. Io_uring supporta il polling per l'input/output e può lavorare con la memorizzazione in buffer (in precedenza il meccanismo proposto «aio» non supportava l'input/output con buffering). Con il polling attivato, io_uring supera notevolmente aio in termini di prestazioni. Attualmente, su base io_uring, Samba ha implementato il supporto per SMB_VFS_{PREAD,PWRITE,FSYNC}_SEND/RECV e ha ridotto le spese generali per mantenere un pool di esecuzione multi-thread (threadpool) nello spazio utente utilizzando il backend VFS proposto per impostazione predefinita. Per la costruzione del modulo VFS 'io_uring' è necessaria la libreria e il kernel Linux 5.1+.
- In VFS è stata fornita la possibilità di specificare un valore speciale di tempo UTIME_OMIT per contrassegnare la necessità di ignorare il tempo nella funzione SMB_VFS_NTIMES().
- In smb.conf è stata interrotta la supporto per il parametro «write cache size», che ha perso significato dopo l'introduzione del supporto per io_uring.
- In Samba-DC e Kerberos è stata interrotta la supporto alla crittografia usando l'algoritmo DES. In Heimdal-DC è stato rimosso il codice weak-crypto.
- Rimosso il modulo vfs_netatalk, che è rimasto senza supporto e ha perso rilevanza.
- È stato dichiarato obsoleto il backend BIND9_FLATFILE, che sarà rimosso in una delle prossime versioni.
- La libreria zlib è inclusa tra le dipendenze di build. L'implementazione incorporata di zlib è stata rimossa dalla base di codice (il codice si basava su una vecchia versione di zlib, in cui il supporto per la crittografia non funzionava correttamente).
- È stato avviato il fuzzing testing della base di codice, incluso il servizio
oss-fuzz. Durante il fuzzing testing sono stati identificati e corretti numerosi errori. - I requisiti per la versione minima di Python sono stati innalzati da Python
3.4 a Python 3.5. La possibilità di costruire il server file con Python 2 è ancora disponibile (prima di eseguire ‘./configure’ e ‘make’ si deve impostare la variabile di ambiente ‘PYTHON=python2’).
Fonte: opennet.ru
