Nova verzija POP3 i IMAP4 poslužitelja Dovecot 2.3.21

Objavljena je nova verzija višep платформskog visoko performativnog POP3/IMAP4 poslužitelja Dovecot 2.3.21, koja podržava protokole POP3 i IMAP4rev1 s popularnim proširenjima poput SORT, THREAD i IDLE, te mehanizmima autentifikacije i enkripcije (SASL, TLS, SCRAM). Dovecot održava potpunu kompatibilnost s klasičnim mbox i Maildir, koristeći vanjske indekse za poboljšanje performansi. Za proširenje funkcionalnosti mogu se koristiti dodaci (na primjer, preko dodataka su implementirane kvote i ACL). Izvorni kod projekta distribuira se pod licencama LGPL i MIT.

Glavne promjene:

  • lib-oauth2: Omogućena je provjera JWT tokena bez polja 'typ'. Polje 'typ' ne koriste neki izdavači ključeva radi uštede prostora, posebice kubernetes. Sada je dopušteno odsustvo 'typ', no ako je prisutno, i dalje bi trebalo biti 'jwt'.
  • auth: Odgovor 'Auth' od passdb i userdb može sadržavati vrijednost 'event_=value', koja će biti dodana događaju prijave u sustav i događaju poštanskog korisnika sukladno tome.
  • lib-master: Postavlja zaglavlje procesa u različitim fazama inicijalizacije kako bi objasnilo što proces očekuje.
  • lib-storage: Interval mail_temp_scan_interval sada se povećava za 0…30% ovisno o hash-u korisničkog imena kako bi se smanjila vjerojatnost skakanja opterećenja.
  • lib-storage: Skaniranje privremene datoteke pomaknuto je s trenutka otvaranja poštanskog sandučića na trenutak njegovog zatvaranja kako bi se smanjila latencija koju korisnici doživljavaju.
  • stats: Ako su u metrikama navedena polja, svi ti podaci se izvoze kao brojaci za prometheus u formatu exposition.
  • '*-login': Procesi su mogli iznenada završiti zbog nespretnih prekida SSL veze. — acl: Tijekom učitavanja dodatka, oznake \HasChildren i \HasNoChildren su pogrešno izračunate za poštanske sandučiće koji u svom imenu sadrže '*' i '%'.
  • auth: Očitan je kvar prilikom neuspješnog povezivanja sa SGBD PostgreSQL tijekom pokretanja.
  • auth: Prilikom prijave s pogrešnim lozinkama (na primjer, s nepoznatom shemom) u passdb se umjesto 'internog pogreška' izdavala pogreška 'neusklađenost lozinke'.
  • auth: Mehanizmi XOAUTH2 i OAUTHBEARER nisu davali poruku o pogrešci specifičnu za protokol u slučaju bilo kakvih pogrešaka. To je posebno omelo otkrivanje OIDC.
  • dbox: Ako naslov last_temp_file_scan nije bio postavljen (osobito nakon dsync migracije), skeniranje privremenih datoteka uvijek se pokretalo prilikom sljedećeg otvaranja poštanskog sandučića. To je moglo uzrokovati porast opterećenja nakon migracija. Ispravljeno korištenjem atime direktorija poštanskog sandučića kada naslov nije bio prisutan, što obično pomiče vrijeme skeniranja u budućnost.
  • dict-redis: Došlo je do pogreške prilikom vraćanja transakcija.
  • dsync: Pri brisanju poštanskog sandučića na udaljenom kraju, kada razdjelnici razina hijerarhije nisu odgovarali, dogodila se beskonačna petlja koja je dovela do prekoračenja memorije.
  • dsync: Inkremetni dsync nije bio izvršen za nazive mapa koji završavaju s '%', osim ako nije postavljena vrijednost BROKENCHAR. Također, nazivi mapa s '%' na drugim mjestima dovodili su do nepotrebnog preimenovanja mape u privremeno ime i obrnuto pri svakom inkrementalnom dsync-u. Regresija v2.3.19.
  • imap-hibernate: Ako je prilikom otključavanja IMAP klijenta došlo do isteka vremena s porukom „(verzija primljena)“, tada je kasnije otključavanje moglo uspješno završiti i nastaviti normalan rad. To je dovelo do konfuzije, jer je imap-hibernate već zabilježio da je klijent isključen. To se može izbjeći time što se veza završava zbog isteka vremena završetka hibernacije.
  • imapc: Pad prilikom nestanka mape prikazane putem virtualnog dodatka iz pohrane.
  • imapc: Odgovori EXPUNGE, EXISTS ili FETCH s poslužitelja ranije odabranog poštanskog sandučića mogli su se obrađivati kao da pripadaju novom poštanskom sandučiću koji je trenutno odabran. To je moglo dovesti do pojave upozorenja.
  • lib-http: HTTP poslužitelj Dovecot (doveadm, stats/openmetrics) mogao je isključiti HTTP klijente prije nego što je odgovor bio u potpunosti poslan. Ovo se događalo samo na opterećenim poslužiteljima gdje su se kernel socket baferi bili značajno preopteretili.
  • lib-http: Ispravljena je moguća pogreška http poslužitelja u slučaju ranog isključivanja klijenta. Regresija u 2.3.18.
  • lib-index: Oštećenje indeksne datoteke moglo je dovesti do iznenadnog prekida rada. Ispravljeno: Panic: file mail-transaction-log-view.c: line 165 (mail_transaction_log_view_set): neuspjela tvrdnja: (min_file_seq <= max_file_seq).
  • lib-index: Čišćenje postojećeg keš fajla većeg od 1 GB moglo je izazvati kvar. Sada, nakon čišćenja, keš fajlovi koji su još uvek veći od 1 GB se brišu. Ispravljeno: Panic: file mail-index-util.c: line 10 (mail_index_uint32_to_offset): assertion failed: (offset < 0x40000000).
  • lib-lua: HTTP klijent nije mogao odrediti DNS imena u poštanskim procesima, jer je očekivao da će soket 'dns-client' biti u trenutnom direktorijumu.
  • lib-oauth2: Dovecot je slao client_id i client_secret kao POST parametre na server introspekcije. Međutim, prilikom Basic auth njihova upotreba je opcionalna.
  • lib-oauth2: Validacija JWT 'aud' nije se izvršavala ako 'aud' nije bio prisutan u tokenu, ali je bio podešen u Dovecotu.
  • lib-oauth2: Previše stroga provera tipa JWT ključa.
  • lib-oauth2: Publika JWT tokena nije se proveravala u odnosu na client_id, kako zahteva specifikacija.
  • lib-ssl-iostream: Korišćenje parametra ssl_require_crl=yes moglo je prouzrokovati kvarove u proveri CRL za odlazne SSL/TLS veze, iako se pretpostavljalo da utiče na proveru CRL samo za klijentske. SSL certifikata. v2.3.17 regresija.
  • lib-sql: MySQL drajver je dozvoljavao curenje memorije prilikom neuspešnog povezivanja.
  • lib-storage: Različite ispravke pri nedostatku prostora na disku.
  • master: Podesavanje idle_kill servisa nije radilo ispravno na opterećenim serverima. Bilo je veoma malo verovatno da će neki proces biti neaktivan dovoljno dugo da bi bio ubijen. Pored toga, pri velikom broju procesa (na primer, imap) logika za obradu idle_kill je trošila dovoljno CPU-a na glavnom procesu. Sada će svaka vremenska jedinica idle_kill pratiti najmanji broj neaktivnih procesa i potom ubijati taj broj.
  • mdbox: Proveravanje privremenih fajlova se vršilo za uvek prazne direktorijume.
  • mdbox: Prilikom pisanja poruka, poziv fdatasync() se izvršavao u pogrešnom roditeljskom direktorijumu. Takođe, u slučaju kvara dolazilo je do pada umesto da se zapiše greška u dnevnik.
  • notify_status: Plugin se ruši pri neuspešnoj inicijalizaciji korisnika. — pop3: Slanje komande sa simbolom ':' dovodilo je do kvara 'assert-crash'. Regresija u izdanju 2.3.18.
  • stats: Ispravljena panika koja se javljala prilikom pristupa nepostojećem izvođaču događaja pri dinamičkom dodavanju nove metrike putem komande 'doveadm stats add'. Sada se prikazuje ispravna greška.
  • stats: Ako je proces izvezao puno događaja, a zatim završio, neki od posljednjih događaja mogli su biti izgubljeni.
  • stats: Nepostojana imena oznaka Prometheus stvarana su u određenim konfiguracijama histogram group_by. Prometheus je odbacio te oznake.
  • welcome: Plugin nije radio u nekim situacijama kada je INBOX kreiran, ali nije otvoren, na primjer, ako je GETMETADATA korišten prije otvaranja INBOX-a.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster