Wydanie Samby 4.12.0

Przesłane przez wydanie Samba 4.12.0, który kontynuował rozwój oddziału Samba 4 z pełną implementacją kontrolera domeny i usługą Active Directory, kompatybilną z implementacją Windows 2000 i zdolną do obsługi wszystkich wersji klientów Windows obsługiwanych przez Microsoft, w tym Windows 10. Samba 4 to wielofunkcyjny produkt serwerowy, który zapewnia również implementację serwer plików, usługa drukowania i serwer tożsamości (winbind).

Klucz zmiany w Sambie 4.12:

  • Wbudowane implementacje funkcji kryptograficznych zostały usunięte z bazy kodu na rzecz wykorzystania bibliotek zewnętrznych. Zdecydowano się użyć GnuTLS jako głównej biblioteki kryptograficznej (wymagana jest co najmniej wersja 3.4.7). Oprócz ograniczenia potencjalnych zagrożeń związanych z identyfikacją podatności we wbudowanych implementacjach algorytmów kryptograficznych, przejście na GnuTLS pozwoliło także na znaczną poprawę wydajności podczas korzystania z szyfrowania w SMB3. Podczas testów z implementacją klienta CIFS z jądra Linux 5.3 zanotowano 3-krotny wzrost prędkości zapisu i 2.5-krotny wzrost prędkości odczytu.
  • Dodano nowy backend do wyszukiwania na partycjach SMB przy użyciu protokołu reflektoroparty na wyszukiwarce Elasticsearch (wcześniej backend był udostępniany w oparciu o Śledzenie GNOME). Do pakietu dodano także narzędzie „mdfind” z implementacją klienta, które umożliwia wysyłanie żądań wyszukiwania do dowolnego serwera SMB z uruchomioną usługą Spotlight RPC. Domyślna wartość ustawienia „backend reflektora” została zmieniona na „noindex” (w przypadku Trackera lub Elasticsearch należy jawnie ustawić wartości na „tracker” lub „elasticsearch”).
  • Zmieniono zachowanie operacji „net ads kerberos pac save” i „net eventlog eksport” w taki sposób, że nie zastępują one już pliku, ale zamiast tego wyświetlają błąd przy próbie eksportu do istniejącego pliku.
  • samba-tool poprawiło dodawanie wpisów kontaktów dla członków grupy. Jeśli wcześniej za pomocą polecenia „samba-tool group addmemers” można było po prostu dodawać użytkowników, grupy i komputery jako nowych członków grupy, teraz dostępna jest obsługa dodawania kontaktów jako członków grupy.
  • Narzędzie Samba umożliwia filtrowanie według jednostek organizacyjnych (OU, Jednostka organizacyjna) lub poddrzewa. Dodano nowe flagi „--base-dn” i „-member-base-dn”, dzięki którym możliwe jest wykonanie operacji tylko na określonej części drzewa Active Directory, np. tylko w obrębie jednej jednostki organizacyjnej.
  • Dodano nowy moduł VFS „io_uring” wykorzystujący nowy interfejs jądra Linuksa io_uring dla asynchronicznych wejść/wyjść. Io_uring obsługuje odpytywanie wejść/wyjść i może współpracować z buforowaniem (poprzednio proponowany mechanizm „aio” nie obsługiwał buforowanych wejść/wyjść). Podczas pracy z włączonym odpytywaniem wydajność io_uring znacznie przewyższa aio. Samba używa teraz io_uring do obsługi SMB_VFS_{PREAD,PWRITE,FSYNC}_SEND/RECV i zmniejsza obciążenie związane z utrzymaniem puli wątków w przestrzeni użytkownika podczas korzystania z domyślnego zaplecza VFS. Do zbudowania modułu VFS „io_uring” wymagana jest biblioteka lizanie i jądra Linuksa 5.1+.
  • VFS zapewnia możliwość określenia specjalnej wartości czasu UTIME_OMIT, aby zaznaczyć potrzebę ignorowania czasu w funkcji SMB_VFS_NTIMES().
  • W smb.conf zaprzestano obsługi parametru „rozmiar pamięci podręcznej zapisu”, który stracił znaczenie po wprowadzeniu obsługi io_uring.
  • Samba-DC i Kerberos nie obsługują już szyfrowania DES. Usunięto słaby kod kryptograficzny z Heimdal-DC.
  • Moduł vfs_netatalk został usunięty, pozostawiony bez konserwacji i nieaktualny.
  • Backend BIND9_FLATFILE jest przestarzały i zostanie usunięty w przyszłej wersji.
  • Biblioteka zlib jest dołączona jako zależność zestawu. Natywna implementacja zlib została usunięta z bazy kodu (kod został oparty na starszej wersji zlib, która nie obsługiwała poprawnie szyfrowania).
  • Wprowadzono fuzzingowe testy bazy kodu, m.in. w serwisie
    oss-fuzz. Podczas testów fuzzingowych zidentyfikowano i skorygowano wiele błędów.

  • Zwiększono minimalne wymagania dotyczące wersji Pythona z Pythona
    3.4 do Pythona 3.5. Możliwość zbudowania serwera plików przy użyciu języka Python 2 jest nadal zachowana (przed uruchomieniem ./configure i „make” należy ustawić zmienną środowiskową „PYTHON=python2”).

Źródło: opennet.ru

Dodaj komentarz