Ny version af POP3- og IMAP4-serveren Dovecot 2.3.21

En ny version af multiplatforms højtydende POP3/IMAP4-server Dovecot 2.3.21 er blevet offentliggjort, der understøtter POP3- og IMAP4rev1-protokollerne med populære udvidelser såsom SORT, THREAD og IDLE, og godkendelses- og krypteringsmekanismer (SASL, TLS, SCRAM). Dovecot forbliver fuldt kompatibel med klassisk mbox og Maildir ved at bruge eksterne indekser til at forbedre ydeevnen. Plugins kan bruges til at udvide funktionaliteten (for eksempel implementeres kvoter og ACL'er gennem plugins). Projektkoden distribueres under LGPL- og MIT-licenser.

Vigtigste ændringer:

  • lib-oauth2: Tillad validering af JWT-tokens med manglende "typ"-felt. "Typ"-feltet bruges ikke af nogle nøgleudstedere til at spare plads, især kubernetes. Nu er fraværet af "typ" acceptabelt, men hvis det er til stede, skal det stadig være "jwt".
  • auth: "Auth"-svaret fra passdb og userdb kan indeholde værdien "event_" =værdi", som vil blive tilføjet til henholdsvis loginhændelsen og mailbrugerhændelsen.
  • lib-master: Indstiller procestitlen på forskellige trin af initialiseringen for at tydeliggøre, hvad processen venter på.
  • lib-storage: mail_temp_scan_interval er nu øget med 0...30% baseret på brugernavnet hash for at reducere sandsynligheden for load spikes.
  • lib-storage: Flyttet midlertidig filscanning fra det øjeblik, postkassen åbnes til det øjeblik, den lukkes for at reducere forsinkelsen, som brugerne oplever.
  • statistik: Hvis felter er angivet i metrikken, eksporteres alle disse felter som tællere til prometheus i udstillingsformat.
  • "*-login": Processer kunne gå ned, hvis SSL-forbindelsen blev afbrudt ved et uheld. - acl: Ved indlæsning af plugin blev flagene \\HasChildren og \\HasNoChildren forkert beregnet for postkasser, der indeholdt '*' og '%' i deres navne.
  • auth: Der opstod et nedbrud ved forbindelse til PostgreSQL DBMS under opstart mislykkedes.
  • auth: Når du logger ind med ugyldige adgangskoder (for eksempel med et ukendt skema), sendte passdb fejlen "password mismatch" i stedet for en "intern fejl".
  • auth: XOAUTH2- og OAUTHBEARER-mekanismerne udsendte ikke en protokolspecifik fejlmeddelelse på nogen fejl. Dette hæmmede især påvisningen af ​​OIDC.
  • dbox: Hvis headeren last_temp_file_scan ikke blev indstillet (især efter en dsync-migrering), vil der altid blive startet en scanning af midlertidige filer, næste gang postkassen åbnes. Dette kan forårsage en belastningsstigning efter migreringer. Rettet ved hjælp af postkassebibliotek på et tidspunkt, hvor der ikke er nogen header, hvilket normalt skubber scanningstiden ind i fremtiden.
  • dict-redis: Transaktionsrulning mislykkedes.
  • dsync: Når du sletter en postkasse i den eksterne ende, når hierarki-afgrænsningerne ikke matchede, opstod der en uendelig løkke, hvilket resulterede i en hændelse uden hukommelse.
  • dsync: Inkrementel dsync blev ikke udført på mappenavne, der slutter på '%', medmindre BROKENCHAR blev indstillet. Også mappenavne med '%' andre steder bevirkede, at mappen unødigt blev omdøbt til et midlertidigt navn og tilbage igen med hver inkrementel dsync. Regression v2.3.19.
  • imap-hibernate: Hvis en IMAP-klient fik timeout med en "(version modtaget)"-meddelelse under oplåsning, kunne oplåsningen senere fuldføres med succes og fortsætte normal drift. Dette var forvirrende, fordi imap-hibernate allerede havde registreret, at klienten havde afbrudt forbindelsen. Du kan undgå dette ved at tvinge forbindelsen til at afslutte med en dvale-timeout.
  • imapc: Crash, når en mappe vist via et virtuelt plugin forsvinder fra lageret.
  • imapc: EXPUNGE-, EXISTS- eller FETCH-svar fra serveren for en tidligere valgt postkasse kunne behandles, som om de tilhørte den nye postkasse, der aktuelt er valgt. Dette kan resultere i advarsler.
  • lib-http: Dovecot HTTP-serveren (doveadm, stats/openmetrics) kunne afbryde HTTP-klienter, før svaret blev sendt fuldstændigt. Dette skete kun på travle servere, hvor kernesocket-bufferne var meget fulde.
  • lib-http: Rettede et muligt nedbrud af http-serveren, hvis klienten afbrydes tidligt. Regression i 2.3.18.
  • lib-index: Korruption af indeksfilen kan forårsage et nedbrud. Løst: Panik: fil mail-transaction-log-view.c: linje 165 (mail_transaction_log_view_set): påstand mislykkedes: (min_file_seq <= max_file_seq).
  • lib-index: Rydning af en eksisterende cache-fil, der er større end 1 GB, kan forårsage et nedbrud. Nu, efter rydning, slettes cachefiler, der stadig er større end 1 GB. Rettet: Panik: fil mail-index-util.c: linje 10 (mail_index_uint32_to_offset): påstand mislykkedes: (offset < 0x40000000).
  • lib-lua: HTTP-klienten var ikke i stand til at løse DNS-navne i mail-processer, fordi den forventede, at "dns-client"-socket var i den aktuelle mappe.
  • lib-oauth2: Dovecot sendte client_id og client_secret som POST-parametre til introspektionsserveren. Med Basic auth er deres brug dog valgfri.
  • lib-oauth2: Validering af JWT "aud" blev ikke udført, hvis "aud" ikke var i tokenet, men var konfigureret i Dovecot.
  • lib-oauth2: JWT-nøgletypekontrol er for streng.
  • lib-oauth2: JWT-tokenpublikummet blev ikke kontrolleret mod client_id som krævet af specifikationen.
  • lib-ssl-iostream: Brug af indstillingen ssl_require_crl=yes kan få CRL-kontrol til at mislykkes for udgående SSL/TLS-forbindelser, selvom det kun var beregnet til at påvirke CRL-kontrol for klient-SSL-certifikater. v2.3.17 regression.
  • lib-sql: MySQL-driver lækkede hukommelse, da forbindelsen mislykkedes.
  • lib-storage: Forskellige rettelser til lav diskplads.
  • master: Indstilling af idle_kill-tjenesten virkede ikke korrekt på travle servere. Det var meget usandsynligt, at nogen proces var inaktiv længe nok til at blive dræbt. Derudover brugte idle_kill-behandlingskoden med et stort antal processer (for eksempel imap) ret meget CPU på hovedprocessen. Nu vil hvert idle_kill-tidsinterval overvåge det mindste antal inaktive processer og derefter dræbe det tal.
  • mdbox: Kontrol af midlertidige filer blev udført for altid tomme mapper.
  • mdbox: Når du skriver e-mails, blev fdatasync()-kaldet udført i den forkerte overordnede mappe. Når det gik ned, gik det også ned i stedet for at skrive en fejl til loggen.
  • notify_status: Pluginnet går ned, når brugerinitialisering mislykkes. - pop3: Sending af en kommando med et ':' resulterede i et "assert-crash". Regression i udgivelse 2.3.18.
  • statistik: Rettede en panik, der opstod ved adgang til en ikke-eksisterende hændelseseksportør, når du dynamisk tilføjede en ny metrik ved hjælp af kommandoen "doveadm stats add". Nu er den korrekte fejl givet.
  • statistik: Hvis en proces eksporterede mange hændelser og derefter afsluttede, kan nogle af de seneste hændelser være gået tabt.
  • statistik: Forkerte Prometheus-etiketnavne blev oprettet med visse histogram group_by-konfigurationer. Prometheus afviste disse tags.
  • velkommen: Pluginnet mislykkedes i nogle situationer, hvor en INBOX blev oprettet, men ikke åbnet, for eksempel hvis GETMETADATA blev brugt før åbning af INBOX.

Kilde: opennet.ru

Tilføj en kommentar