Nowa wersja serwera POP3 i IMAP4 Dovecot 2.3.21

Opublikowano nową wersję wieloplatformowego, wysokowydajnego serwera POP3/IMAP4 Dovecot 2.3.21, obsługującego protokoły POP3 i IMAP4rev1 z popularnymi rozszerzeniami, takimi jak SORT, THREAD i IDLE, oraz mechanizmami uwierzytelniania i szyfrowania (SASL, TLS, ODWALIĆ SIĘ). Dovecot pozostaje w pełni kompatybilny z klasycznym mboxem i Maildirem, wykorzystując zewnętrzne indeksy w celu poprawy wydajności. Wtyczek można używać do rozszerzania funkcjonalności (na przykład przydziały i listy ACL są implementowane za pomocą wtyczek). Kod projektu jest rozpowszechniany na licencjach LGPL i MIT.

Główne zmiany:

  • lib-oauth2: Zezwalaj na sprawdzanie poprawności tokenów JWT z brakującym polem „typ”. Pole „typ” nie jest używane przez niektórych kluczowych wystawców, zwłaszcza kubernetes, w celu zaoszczędzenia miejsca. Teraz brak „typu” jest akceptowalny, ale jeśli jest obecny, nadal musi to być „jwt”.
  • auth: Odpowiedź „Auth” z passdb i userdb może zawierać wartość „event_” =wartość”, która zostanie dodana odpowiednio do zdarzenia logowania i zdarzenia użytkownika poczty.
  • lib-master: Ustawia tytuł procesu na różnych etapach inicjalizacji, aby wyjaśnić, na co proces czeka.
  • lib-storage: Interwał mail_temp_scan_interval jest teraz zwiększany o 0...30% w oparciu o skrót nazwy użytkownika, aby zmniejszyć prawdopodobieństwo skoków obciążenia.
  • lib-storage: Przeniesiono skanowanie plików tymczasowych od momentu otwarcia skrzynki pocztowej do momentu jej zamknięcia, aby zmniejszyć opóźnienia doświadczane przez użytkowników.
  • statystyki: Jeśli w metryce określono pola, wszystkie te pola są eksportowane jako liczniki do Prometheusa w formacie ekspozycji.
  • „*-login”: Procesy mogą ulec awarii, jeśli połączenie SSL zostało przypadkowo zakończone. - acl: Podczas ładowania wtyczki flagi \\HasChildren i \\HasNoChildren zostały błędnie obliczone dla skrzynek pocztowych zawierających „*” i „%” w nazwach.
  • auth: Wystąpiła awaria podczas łączenia się z systemem DBMS PostgreSQL podczas uruchamiania.
  • auth: Podczas logowania się przy użyciu nieprawidłowych haseł (na przykład według nieznanego schematu) passdb zgłaszał błąd „niezgodność hasła” zamiast „błąd wewnętrzny”.
  • auth: Mechanizmy XOAUTH2 i OAUTHBEARER nie wysłały specyficznego dla protokołu komunikatu o błędzie w przypadku jakichkolwiek błędów. To szczególnie utrudniało wykrywanie OIDC.
  • dbox: Jeśli nie ustawiono nagłówka last_temp_file_scan (szczególnie po migracji dsync), to przy następnym otwarciu skrzynki pocztowej zawsze zostanie uruchomione skanowanie plików tymczasowych. Może to spowodować gwałtowny wzrost obciążenia po migracji. Naprawiono używanie czasu katalogu skrzynki pocztowej, gdy nie ma nagłówka, co zwykle przesuwa czas skanowania w przyszłość.
  • dict-redis: Wycofywanie transakcji nie powiodło się.
  • dsync: Podczas usuwania skrzynki pocztowej na zdalnym końcu, gdy ograniczniki hierarchii nie były zgodne, wystąpiła nieskończona pętla, w wyniku której wystąpiło zdarzenie braku pamięci.
  • dsync: Przyrostowa synchronizacja nie została wykonana w przypadku nazw folderów kończących się na „%”, chyba że ustawiono BROKENCHAR. Ponadto nazwy folderów zawierające „%” w innych miejscach powodowały niepotrzebną zmianę nazwy folderu na tymczasową i z powrotem przy każdej przyrostowej synchronizacji cyfrowej. Regresja v2.3.19.
  • imap-hibernate: Jeśli klient IMAP przekroczył limit czasu i wyświetlił się komunikat „(wersja otrzymana)” podczas odblokowywania, odblokowywanie może później zakończyć się pomyślnie i kontynuować normalne działanie. Było to mylące, ponieważ imap-hibernate wykrył już, że klient się rozłączył. Można tego uniknąć, wymuszając zakończenie połączenia z upływem limitu czasu hibernacji.
  • imapc: Awaria, gdy folder wyświetlany za pomocą wirtualnej wtyczki znika z pamięci.
  • imapc: USUŃ, ISTNIEJE lub POBIERZ odpowiedzi z serwera dla wcześniej wybranej skrzynki pocztowej mogą być traktowane tak, jakby należały do ​​aktualnie wybranej nowej skrzynki pocztowej. Może to skutkować ostrzeżeniami.
  • lib-http: Serwer HTTP Dovecot (doveadm, stats/openmetrics) mógł rozłączyć klientów HTTP przed pełnym wysłaniem odpowiedzi. Miało to miejsce tylko na obciążonych serwerach, gdzie bufory gniazd jądra były bardzo pełne.
  • lib-http: Naprawiono możliwą awarię serwera http, jeśli klient rozłączał się wcześniej. Regresja w 2.3.18.
  • lib-index: Uszkodzenie pliku indeksu może spowodować awarię. Rozwiązano: Panika: plik mail-transaction-log-view.c: linia 165 (mail_transaction_log_view_set): potwierdzenie nie powiodło się: (min_file_seq <= max_file_seq).
  • lib-index: Wyczyszczenie istniejącego pliku pamięci podręcznej większego niż 1 GB może spowodować awarię. Teraz po wyczyszczeniu pliki pamięci podręcznej, które nadal są większe niż 1 GB, są usuwane. Naprawiono: Panika: plik mail-index-util.c: linia 10 (mail_index_uint32_to_offset): potwierdzenie nie powiodło się: (offset < 0x40000000).
  • lib-lua: Klient HTTP nie był w stanie rozpoznać nazw DNS w procesach pocztowych, ponieważ oczekiwał, że gniazdo „dns-client” będzie znajdować się w bieżącym katalogu.
  • lib-oauth2: Dovecot wysłał identyfikator_klienta i sekret_klienta jako parametry POST do serwera introspekcji. Jednak w przypadku uwierzytelniania podstawowego ich użycie jest opcjonalne.
  • lib-oauth2: Walidacja JWT „aud” nie została przeprowadzona, jeśli „aud” nie znajdował się w tokenie, ale został skonfigurowany w Dovecot.
  • lib-oauth2: Sprawdzanie typu klucza JWT jest zbyt rygorystyczne.
  • lib-oauth2: Grupa odbiorców tokenów JWT nie została sprawdzona pod kątem identyfikatora klienta zgodnie z wymaganiami specyfikacji.
  • lib-ssl-iostream: Użycie opcji ssl_require_crl=yes może spowodować niepowodzenie sprawdzania listy CRL dla wychodzących połączeń SSL/TLS, chociaż miało to mieć wpływ tylko na sprawdzanie listy CRL dla certyfikatów SSL klienta. regresja v2.3.17.
  • lib-sql: W sterowniku MySQL doszło do wycieku pamięci, gdy połączenie nie powiodło się.
  • lib-storage: Różne poprawki dotyczące małej ilości miejsca na dysku.
  • master: Ustawienie usługi idle_kill nie działało poprawnie na obciążonych serwerach. Było bardzo mało prawdopodobne, aby jakikolwiek proces był bezczynny na tyle długo, aby mógł zostać zabity. Ponadto przy dużej liczbie procesów (na przykład imap) kod przetwarzania idle_kill zużywał sporo procesora głównego procesu. Teraz każdy przedział czasu idle_kill będzie monitorował najmniejszą liczbę bezczynnych procesów, a następnie zabijał tę liczbę.
  • mdbox: Przeprowadzono sprawdzanie plików tymczasowych dla zawsze pustych katalogów.
  • mdbox: Podczas pisania wiadomości e-mail wywołanie fdatasync() zostało wykonane w niewłaściwym katalogu nadrzędnym. Ponadto, gdy się zawiesił, zawiesił się zamiast zapisać błąd w dzienniku.
  • notify_status: Wtyczka ulega awarii, gdy inicjalizacja użytkownika nie powiedzie się. - pop3: Wysłanie polecenia z „:” spowodowało „awarię potwierdzenia”. Regresja w wersji 2.3.18.
  • stats: Naprawiono panikę występującą podczas uzyskiwania dostępu do nieistniejącego eksportera zdarzeń podczas dynamicznego dodawania nowej metryki za pomocą polecenia „doveadm stats add”. Teraz podano poprawny błąd.
  • statystyki: jeśli proces wyeksportował wiele zdarzeń, a następnie zakończył działanie, niektóre z najnowszych zdarzeń mogły zostać utracone.
  • statystyki: Utworzono nieprawidłowe nazwy etykiet Prometheus z niektórymi konfiguracjami histogramu group_by. Prometeusz odrzucił te tagi.
  • witamy: Wtyczka nie działała w niektórych sytuacjach, gdy INBOX został utworzony, ale nie został otwarty, na przykład, jeśli przed otwarciem INBOX-a użyto GETMETADATA.

Źródło: opennet.ru

Dodaj komentarz