Majdnem egy év fejlesztés után megjelent a Postfix levelezőszerver új stabil ága — 3.9.0. Ezzel egyidejűleg bejelentették a Postfix 3.5 ág támogatásának megszüntetését, amely 2020 elején jelent meg. A Postfix az egyik ritka projekt, amely egyesíti a magas biztonságot, megbízhatóságot és teljesítményt, amit átgondolt architektúrával és eléggé szigorú kódformázási és patchaudit politikával értek el. A projekt kódja C nyelven íródott, és az EPL 2.0 (Eclipse Public License) és IPL 1.0 (IBM Public License) licenc alatt terjesztik.
A januári automatikus felmérés szerint körülbelül 400 ezer levelezőszerver szerverek, a Postfix a levelezőszerverek 36,81%-án (egy évvel ezelőtt 33,18%) fut, az Exim részesedése 56,61% (egy évvel ezelőtt 60,27%), a Sendmail 3,60% (3,62%), a MailEnable 1,82% (1,86%), az MDaemon 0,40% (0,39%), a Microsoft Exchange 0,19% (0,19%), az OpenSMTPD 0,09% (0,06%).

Főbb újítások:
- Hozzáadták a MongoDB kliensét, amely lehetővé teszi virtuális felhasználói adatbázisok, álnévjegyzékek, címkiosztási listák és különböző ellenőrző táblák tárolását ebben az adatbázis-kezelő rendszerben. A MongoDB-hez való kapcsolódás beállításához hozzáadtak egy "mongodb" típusú táblát. Például, "alias_maps = proxy:mongodb:/etc/postfix/mongo.cf", ahol a mongo.cf a MongoDB-hez való kapcsolódást és a lekérdezések szűrőjét tartalmazó fájl.
- A helyi kézbesítési ügynökbe bekerült a továbbítási azonosító exportálása, amelyet az SMTP munkamenet során az ENVID (Envelope ID) paraméter által adtak meg az ESMTP MAIL parancsban (RFC 3461). Az azonosító az ENVID környezeti változóba kerül, és a pipe kézbesítési ügynöknek a parancssori paraméteren keresztül átadódik, mint "${envid}".
- A MySQL („mysql:” ) és PostgreSQL („pgsql:” ) adatok tárolására szolgáló kliensekhez hozzáadták a paramétereket: az „idle_interval” az inaktivitás időtartamának meghatározására a kapcsolat bezárása előtt, valamint a „retry_interval” a lekérdezések újraküldésének idejének beállítására. Alapértelmezés szerint a paraméterek 60 másodpercre vannak beállítva. A „retry_interval” értékét lehet csökkenteni, például a hibák utáni helyreállítási idő csökkentése érdekében, ha csak egy szerver van a „hosts” attribútumban.
- A MySQL klienshez hozzáadták a „charset” beállítást az alapértelmezett karakterkódolás megadására. Alapértelmezés szerint a „utf8mb4” értéket használja, amely megfelel a MySQL 8.0 alapértelmezett beállításainak (a korábbi verziókban a „latin1” értéket használták). Megszűnt a 4.0-nál régebbi MySQL verziók támogatása (azaz a 2003 előtt kiadott verziók).
- Lehetőség van önálló (raw) nyilvános TLS kulcs kérésére, amely nincs összekapcsolva tanúsítványkibocsátóval, ahelyett, hogy X.509 tanúsítványt használnánk. A raw kulcsok használatát az ügyfelek és szerverek hitelesítéséhez a "smtpd_tls_enable_rpk = yes" és "smtp_tls_enable_rpk = yes" beállítások aktiválásával lehet engedélyezni, de a viselkedés a biztonsági szinttől és a raw kulcsok helyi TLS implementációban való támogatottságától függ (lásd a dokumentációt).
- Kezdetleges támogatás került bevezetésre az OpenSSL konfigurációs fájlokhoz. A TLS beállítások fájlra való hivatkozására a "tls_config_file" paraméter, a konfigurációs fájl beállításainak nevének megadására pedig a "tls_config_name" paraméter került bevezetésre. Az OpenSSL konfigurációs fájlokhoz való kapcsolódás lehetősége csökkenti a disztribúciók beállításaitól való függőséget, amelyek biztonsági szintjének megváltozása megnövelheti a titkosítással nem rendelkező üzenetek arányát.
- A levelek fejlécében megváltozott a napok számának formázása az dátumokban — az 1-től 9-ig terjedő napok mostantól nullával vannak kiegészítve, nem pedig szóközzel (tehát "01", "02" stb.). A változtatás azért történt, mert az RFC 5322 ajánlja, hogy egyetlen szóközt használjunk az dátumok elválasztására.
- Védelem került bevezetésre bizonyos típusú "Blind" támadások ellen (SSRF támadások webkliensek ellen, amelyek az SMTP-n keresztül próbálnak hozzáférni a szerverhez), amely a "smtpd_forbid_unauth_pipelining = yes" beállítás aktiválásakor alkalmazandó (alapértelmezetten).
- Alapértelmezés szerint engedélyezett a "smtpd_forbid_bare_newline = normalize" beállítás, amely védi a szervert a "SMTP smuggling" támadásokkal szemben, amelyek egy üzenetet több különböző üzenetre bontanak nem szabványos levélmegosztó sorozatok használatával. Védelem került bevezetésre a kimenő SMTP smuggling támadások ellen is, ahol a támadó a Postfix alapú szervert használja egy másik SMTP szerverre való támadáshoz. Alapértelmezés szerint engedélyezett a "cleanup_replace_stray_cr_lf = yes" beállítás, amely lecseréli a felesleges <CR> és <LF> karaktereket szóközre.
- A DNS kliens implementációban a DNS lekérdezésekből visszaadott eredmények mérete mostantól 100 bejegyzésre van korlátozva, ami 20-szor több, mint a SMTP kliens maximálisan támogatott mennyisége. IP-címek egy szerver esetén.
- Feleslegesnek nyilvánították a "disable_dns_lookup" és "permit_mx_backup" paramétereket, valamint egyes TLS beállításokat.
- A támogatás leállt a 20 éve elavultnak nyilvánított beállítások számára: «permit_naked_ip_address», «check_relay_domains» és «reject_maps_rbl».
Forrás: opennet.ru
