Versi baharu pelayan POP3 dan IMAP4 Dovecot 2.3.21

Versi baharu pelayan POP3/IMAP4 berprestasi tinggi berbilang platform Dovecot 2.3.21 telah diterbitkan, menyokong protokol POP3 dan IMAP4rev1 dengan sambungan popular seperti SORT, THREAD dan IDLE serta mekanisme pengesahan dan penyulitan (SASL, TLS, SCRAM). Dovecot kekal serasi sepenuhnya dengan mbox klasik dan Maildir, menggunakan indeks luaran untuk meningkatkan prestasi. Pemalam boleh digunakan untuk mengembangkan fungsi (contohnya, kuota dan ACL dilaksanakan melalui pemalam). Kod projek diedarkan di bawah lesen LGPL dan MIT.

Perubahan utama:

  • lib-oauth2: Benarkan pengesahan token JWT dengan medan "taip" yang tiada. Medan "taip" tidak digunakan oleh sesetengah pengeluar utama untuk menjimatkan ruang, terutamanya kubernetes. Sekarang ketiadaan "taip" boleh diterima, tetapi jika ia ada ia mesti masih "jwt".
  • auth: Respons "Auth" daripada passdb dan userdb mungkin mengandungi nilai "event_" =value" yang akan ditambahkan pada acara log masuk dan acara pengguna mel masing-masing.
  • lib-master: Menetapkan tajuk proses pada pelbagai peringkat permulaan untuk menjelaskan perkara yang sedang menunggu proses.
  • lib-storage: Mail_temp_scan_interval kini meningkat sebanyak 0...30% berdasarkan cincang nama pengguna untuk mengurangkan kemungkinan lonjakan beban.
  • lib-storage: Memindahkan pengimbasan fail sementara dari saat peti mel dibuka hingga saat ia ditutup untuk mengurangkan kelewatan yang dialami oleh pengguna.
  • statistik: Jika medan dinyatakan dalam metrik, maka semua medan ini dieksport sebagai pembilang kepada prometheus dalam format eksposisi.
  • "*-login": Proses boleh ranap jika sambungan SSL ditamatkan secara tidak sengaja. - acl: Semasa memuatkan pemalam, bendera \\HasChildren dan \\HasNoChildren telah salah dikira untuk peti mel yang mengandungi '*' dan '%' dalam nama mereka.
  • auth: Ranap sistem berlaku apabila menyambung ke DBMS PostgreSQL semasa permulaan gagal.
  • auth: Apabila log masuk dengan kata laluan yang tidak sah (contohnya, dengan skema yang tidak diketahui), passdb telah membuang ralat "salah padan kata laluan" dan bukannya "ralat dalaman".
  • auth: Mekanisme XOAUTH2 dan OAUTHBEARER tidak mengeluarkan mesej ralat khusus protokol pada sebarang ralat. Ini sangat menghalang pengesanan OIDC.
  • dbox: Jika pengepala last_temp_file_scan tidak ditetapkan (terutamanya selepas pemindahan dsync), maka pada kali berikutnya peti mel dibuka, imbasan fail sementara akan sentiasa dilancarkan. Ini boleh menyebabkan lonjakan beban selepas migrasi. Dibetulkan menggunakan direktori peti mel pada masa apabila tiada pengepala, yang biasanya menolak masa imbasan ke masa hadapan.
  • dict-redis: Pengembalian transaksi gagal.
  • dsync: Apabila memadam peti mel pada hujung jauh, apabila pembatas hierarki tidak sepadan, gelung tak terhingga berlaku, mengakibatkan peristiwa kehabisan ingatan.
  • dsync: Dsync tambahan tidak dilakukan pada nama folder yang berakhir dengan '%' melainkan BROKENCHAR telah ditetapkan. Selain itu, nama folder dengan '%' di tempat lain menyebabkan folder itu dinamakan semula secara tidak perlu kepada nama sementara dan kembali semula dengan setiap dsync tambahan. Regresi v2.3.19.
  • imap-hibernate: Jika klien IMAP tamat masa dengan mesej "(versi diterima)" semasa membuka kunci, buka kunci kemudiannya boleh diselesaikan dengan jayanya dan meneruskan operasi biasa. Ini mengelirukan kerana imap-hibernate telah pun mengesan bahawa pelanggan telah memutuskan sambungan. Anda boleh mengelakkan ini dengan memaksa sambungan ditamatkan dengan tamat masa hibernasi.
  • imapc: Ranap apabila folder yang dipaparkan melalui pemalam maya hilang daripada storan.
  • imapc: EXPUNGE, EXISTS atau FETCH respons daripada pelayan untuk peti mel yang dipilih sebelum ini boleh dianggap seolah-olah ia tergolong dalam peti mel baharu yang dipilih pada masa ini. Ini boleh mengakibatkan amaran.
  • lib-http: Pelayan HTTP Dovecot (doveadm, statistik/openmetrics) boleh memutuskan sambungan klien HTTP sebelum respons dihantar sepenuhnya. Ini hanya berlaku pada pelayan yang sibuk di mana penimbal soket kernel sangat penuh.
  • lib-http: Memperbaiki kemungkinan ranap pelayan http jika pelanggan memutuskan sambungan awal. Regresi dalam 2.3.18.
  • lib-index: Kerosakan fail indeks boleh menyebabkan ranap sistem. Selesai: Panik: fail mail-transaction-log-view.c: baris 165 (mail_transaction_log_view_set): penegasan gagal: (min_file_seq <= max_file_seq).
  • lib-index: Membersihkan fail cache sedia ada yang lebih besar daripada 1 GB boleh menyebabkan ranap sistem. Kini, selepas mengosongkan, fail cache yang masih lebih besar daripada 1 GB akan dipadamkan. Dibetulkan: Panik: fail mail-index-util.c: baris 10 (mail_index_uint32_to_offset): penegasan gagal: (offset < 0x40000000).
  • lib-lua: Pelanggan HTTP tidak dapat menyelesaikan nama DNS dalam proses mel kerana ia menjangkakan soket "dns-client" berada dalam direktori semasa.
  • lib-oauth2: Dovecot menghantar client_id dan client_secret sebagai parameter POST ke pelayan introspeksi. Walau bagaimanapun, dengan pengesahan Asas penggunaannya adalah pilihan.
  • lib-oauth2: Pengesahan JWT "aud" tidak dilakukan jika "aud" tiada dalam token tetapi telah dikonfigurasikan dalam Dovecot.
  • lib-oauth2: Pemeriksaan jenis kunci JWT terlalu ketat.
  • lib-oauth2: Khalayak token JWT tidak disemak terhadap client_id seperti yang diperlukan oleh spesifikasi.
  • lib-ssl-iostream: Menggunakan pilihan ssl_require_crl=yes boleh menyebabkan semakan CRL gagal untuk sambungan SSL/TLS keluar, walaupun ia bertujuan untuk hanya menjejaskan pemeriksaan CRL untuk sijil SSL pelanggan. v2.3.17 regresi.
  • lib-sql: Pemacu MySQL membocorkan memori apabila sambungan gagal.
  • lib-storage: Pelbagai pembetulan untuk ruang cakera yang rendah.
  • master: Menetapkan perkhidmatan idle_kill tidak berfungsi dengan betul pada pelayan yang sibuk. Sangat tidak mungkin bahawa sebarang proses terbiar cukup lama untuk dibunuh. Di samping itu, dengan sejumlah besar proses (contohnya, imap), kod pemprosesan idle_kill menggunakan CPU yang agak banyak pada proses utama. Kini setiap selang masa idle_kill akan memantau bilangan terkecil proses terbiar dan kemudian membunuh nombor itu.
  • mdbox: Semakan fail sementara telah dilakukan untuk direktori yang sentiasa kosong.
  • mdbox: Semasa menulis e-mel, panggilan fdatasync() telah dilaksanakan dalam direktori induk yang salah. Selain itu, apabila ia ranap, ia ranap dan bukannya menulis ralat pada log.
  • notify_status: Pemalam ranap apabila pemulaan pengguna gagal. - pop3: Menghantar arahan dengan ':' menghasilkan "assert-crash". Regresi dalam keluaran 2.3.18.
  • statistik: Memperbaiki panik yang berlaku apabila mengakses pengeksport peristiwa yang tidak wujud apabila menambahkan metrik baharu secara dinamik menggunakan perintah "doveadm stats add". Sekarang ralat yang betul diberikan.
  • statistik: Jika proses mengeksport banyak acara dan kemudian keluar, beberapa acara terbaharu mungkin telah hilang.
  • statistik: Nama label Prometheus yang salah telah dibuat dengan konfigurasi histogram group_by tertentu. Prometheus menolak tag ini.
  • selamat datang: Pemalam gagal dalam beberapa situasi di mana INBOX dicipta tetapi tidak dibuka, contohnya jika GETMETADATA digunakan sebelum membuka PETI MASUK.

Sumber: opennet.ru

Tambah komen