release , waarmee de ontwikkeling van de tak is voortgezet met een volledige implementatie van de domeincontroller en de Active Directory-service, compatibel met de implementatie van Windows 2000 en in staat om alle ondersteunde Microsoft versies van Windows-clients te bedienen, waaronder Windows 10. Samba 4 is een multifunctioneel serverproduct dat ook een bestandsserver, printservice en identificatieserver (winbind) biedt.
Belangrijkste in Samba 4.12:
- In de codebase zijn de ingebouwde implementaties van cryptografische functies verwijderd ten gunste van het gebruik van externe bibliotheken. Gekozen is om GnuTLS als de belangrijkste cryptobibliotheek te gebruiken (versie 3.4.7 of hoger vereist). Naast het verminderen van mogelijke bedreigingen die voortkomen uit kwetsbaarheden in ingebouwde cryptographische algoritmen, heeft de overstap naar GnuTLS ook geleid tot een aanzienlijke prestatieverbetering bij het gebruik van encryptie in SMB3. Tijdens tests met de CIFS-clientimplementatie uit de Linux-kernel 5.3 is er een toename van de schrijfsnelheid met 3 keer en van de leessnelheid met 2,5 keer waargenomen.
- Een nieuwe backend is toegevoegd voor zoeken op SMB-schijven met gebruik van het protocol , gebaseerd op de zoekmachine (voorheen werd een backend op basis van ) geleverd. Ook is de 'mdfind' tool toegevoegd met een implementatie van de client, die het mogelijk maakt om zoekopdrachten naar elke SMB-server te verzenden, waar de RPC-service Spotlight draait. De standaardwaarde van de instelling 'spotlight backend' is gewijzigd naar 'noindex' (voor Tracker of Elasticsearch moet expliciet de waarde 'tracker' of 'elasticsearch' worden ingesteld).
- Het gedrag van de opdrachten ānet ads kerberos pac saveā en ānet eventlog exportā is gewijzigd, waardoor ze nu het bestand niet overschrijven en bij een poging om naar een bestaand bestand te exporteren een foutmelding geven.
- In samba-tool is het toevoegen van contactrecords voor groepsleden verbeterd. Waar voorheen met de opdracht āsamba-tool group addmemersā alleen gebruikers, groepen en computers als nieuwe leden konden worden toegevoegd, is er nu ook ondersteuning voor het toevoegen van contacten als groepsleden.
- In samba-tool is filtering op organisatorische eenheden (OU, Organizational Unit) of subbomen toegestaan. Nieuwe vlaggen āābase-dnā en āāmember-base-dnā zijn toegevoegd die het mogelijk maken om de bewerking alleen met een bepaald deel van de Active Directory-boom uit te voeren, bijvoorbeeld alleen binnen ƩƩn OU.
- Een nieuwe VFS-module āio_uringā is toegevoegd, die een nieuwe interface van de Linux-kernel gebruikt. voor asynchrone invoer/uitvoer. Io_uring ondersteunt polling voor invoer/uitvoer en kan werken met buffering (de eerder voorgestelde 'aio'-mechanisme ondersteunde geen gebufferde invoer/uitvoer). Bij gebruik van actieve polling overtreft io_uring aanzienlijk de prestaties van aio. Momenteel biedt Samba op basis van io_uring ondersteuning voor SMB_VFS_{PREAD,PWRITE,FSYNC}_SEND/RECV en zijn de overheadkosten voor het onderhouden van een pool voor multi-threaded uitvoer (threadpool) in gebruikersruimte verlaagd bij gebruik van de standaard voorgestelde VFS-backend. Voor het bouwen van de VFS-module 'io_uring' is de bibliotheek vereist en Linux-kernel 5.1+.
- In VFS is het mogelijk om een speciale tijdwaarde UTIME_OMIT te specificeren om de noodzaak te markeren voor het negeren van de tijd in de functie SMB_VFS_NTIMES().
- In smb.conf is de ondersteuning voor de parameter 'write cache size' beƫindigd, die zijn nut heeft verloren na de introductie van io_uring-ondersteuning.
- In Samba-DC en Kerberos is de ondersteuning voor encryptie met het DES-algoritme beƫindigd. In Heimdal-DC is de weak-crypto code verwijderd.
- De vfs_netatalk-module is verwijderd, aangezien deze niet meer werd onderhouden en zijn акŃŃaliteit heeft verloren.
- De backend BIND9_FLATFILE is als verouderd verklaard en zal in een van de volgende versies worden verwijderd.
- De zlib-bibliotheek is toegevoegd aan de bouwafhankelijkheden. De ingebouwde implementatie van zlib is uit de codebasis verwijderd (de code was gebaseerd op een oude versie van zlib, waarin de ondersteuning voor encryptie niet goed functioneerde).
- Fuzzing-tests voor de codebasis zijn opgezet, inclusief in de service
oss-fuzz. Tijdens fuzzing-tests zijn veel bugs gevonden en opgelost. - De vereisten voor de minimale versie van Python zijn verhoogd van Python
3.4 naar Python 3.5. De mogelijkheid om een bestandserver met Python 2 te bouwen blijft behouden (voordat je './configure' en 'make' uitvoert, moet je de omgevingsvariabele 'PYTHON=python2' instellen).
Bron: opennet.ru
