il rilascio , continuando lo sviluppo della serie con una piena implementazione del controller di dominio e del servizio Active Directory, compatibile con l'implementazione di Windows 2000 e in grado di supportare tutte le versioni di Windows client supportate da Microsoft, inclusi Windows 10. Samba 4 è un prodotto server multifunzionale, che offre anche l'implementazione del file server, del servizio di stampa e del server di identificazione (winbind).
Le chiave in Samba 4.12:
- Sono state rimosse le implementazioni incorporate delle funzioni crittografiche a favore dell'uso di librerie esterne. Come principale libreria crittografica, è stato deciso di utilizzare GnuTLS (è richiesta almeno la versione 3.4.7). Oltre alla riduzione delle potenziali minacce legate alla scoperta di vulnerabilità nelle implementazioni incorporate degli algoritmi crittografici, la transizione a GnuTLS ha anche consentito di ottenere un significativo aumento delle prestazioni nell'uso della crittografia in SMB3. Durante i test con l'implementazione client CIFS del kernel Linux 5.3, è stata registrata un'accelerazione della velocità di scrittura di 3 volte e di lettura di 2.5 volte.
- Aggiunto un nuovo backend per la ricerca su partizioni SMB utilizzando il protocollo , basato sul motore di ricerca (precedentemente era fornito un backend basato su ). È stata inclusa anche l'utilità "mdfind" con l'implementazione del client, che consente di inviare query 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").
- Modificato il comportamento delle operazioni ‘net ads kerberos pac save’ e ‘net eventlog export’, che ora non sovrascrivono il file, e in caso di tentativo di esportazione in un file esistente restituiscono un errore.
- In samba-tool è stato migliorato l'aggiunta di registrazioni di contatto per i membri dei gruppi. Se prima, con il comando ‘samba-tool group addmembers’, era possibile semplicemente aggiungere utenti, gruppi e computer come nuovi membri del gruppo, ora è stata aggiunta la possibilità di aggiungere contatti come membri dei gruppi.
- In samba-tool è consentita la filtrazione per le unità organizzative (OU, Organizational Unit) o per sottodirectory. Sono stati aggiunti nuovi flag «—base-dn» e «—member-base-dn», che consentono di eseguire l'operazione solo su una determinata parte dell'albero Active Directory, ad esempio, solo all'interno di una singola unità 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 dell'input/output e può lavorare con la bufferizzazione (il meccanismo precedente proposto “aio” non supportava l'input/output bufferizzato). Quando si utilizza il polling abilitato, io_uring supera notevolmente le prestazioni di aio. Attualmente, sulla base di io_uring, Samba supporta SMB_VFS_{PREAD,PWRITE,FSYNC}_SEND/RECV e sono stati ridotti i costi di gestione di un pool di esecuzione multithread (threadpool) nello spazio utente quando si applica il backend VFS predefinito proposto. Per compilare il modulo VFS ‘io_uring’, è necessaria la libreria e il kernel Linux 5.1+.
- Nel VFS è stata garantita 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.
- Nel Samba-DC e Kerberos è stata interrotta la supporto per la crittografia utilizzando l'algoritmo DES. Nel Heimdal-DC è stato rimosso il codice weak-crypto.
- È stato rimosso il modulo vfs_netatalk, che è rimasto senza supporto e ha perso attualità.
- È stato dichiarato obsoleto il backend BIND9_FLATFILE, che sarà rimosso in una delle prossime versioni.
- La libreria zlib è stata inclusa tra le dipendenze di compilazione. L'implementazione integrata di zlib è stata rimossa dal codice sorgente (il codice era basato su una vecchia versione di zlib, in cui il supporto per la crittografia non funzionava correttamente).
- Sono stati avviati test di fuzzing sulla base di codice, inclusi nel servizio
oss-fuzz. Durante il fuzzing sono stati identificati e corretti numerosi bug. - I requisiti per la versione minima di Python sono stati aumentati da Python
3.4 a Python 3.5. È ancora possibile compilare il server di file con Python 2 (prima di eseguire ‘./configure’ e ‘make’ bisogna impostare la variabile di ambiente ‘PYTHON=python2’).
Fonte: opennet.ru
