Nakon gotovo godine dana razvoja, objavljena je nova stabilna verzija poštanskog servera Postfix — 3.9.0. U isto vreme je najavljeno prekidanje podrške za verziju Postfix 3.5, koja je objavljena početkom 2020. godine. Postfix je jedan od retkih projekata koji istovremeno kombinuje visoku sigurnost, pouzdanost i performanse, što je postignuto zahvaljujući promišljenoj arhitekturi i dovoljno strogoj politici kodiranja i audita zakrpa. Kod projekta je napisan na jeziku C i objavljen je pod licencama EPL 2.0 (Eclipse Public License) i IPL 1.0 (IBM Public License).
U skladu sa januarskom automatizovanom anketom, oko 400 hiljada poštanskih poslužitelja, Postfix se koristi na 36.81% (pre godinu dana 33.18%) poštanskih servera, udeo Exim-a iznosi 56.61% (pre godinu dana 60.27%), Sendmail — 3.60% (3.62%), MailEnable — 1.82% (1.86%), MDaemon — 0.40% (0.39%), Microsoft Exchange — 0.19% (0.19%), OpenSMTPD — 0.09% (0.06%).

Glavne novine:
- Dodata je klijent za MongoDB, koja omogućava čuvanje baze virtualnih korisnika, pseudonima, lista mapiranja adresa i raznih tablica provere u ovom DBMS-u. Za podešavanje pristupa MongoDB, dodat je tip tablica „mongodb“. Na primer, „alias_maps = proxy:mongodb:/etc/postfix/mongo.cf“, gde je mongo.cf datoteka sa podešavanjima za povezivanje sa MongoDB i filtriranje upita.
- U agent za lokalnu dostavu dodato je izvoz identifikatora preusmeravanja, predat tokom SMTP sesije putem parametra ENVID (Envelope ID) u komandi ESMTP MAIL (RFC 3461). Identifikator se zapisuje u promenljivu okruženja ENVID i prenosi u agent dostave pipe putem parametra komandne linije „${envid}“.
- U klijente za čuvanje podataka u MySQL („mysql:“ ) i PostgreSQL („pgsql:“ ) dodati su parametri: „idle_interval“ za određivanje vremena neaktivnosti pre zatvaranja veze i „retry_interval“ za postavljanje tajmera za ponovnu slanje zahteva. Podrazumevano su parametrima dodeljene vrednosti od 60 sekundi. Vrednost „retry_interval“ se može smanjiti, na primer, da bi se skratio vreme oporavka nakon grešaka, u slučaju korišćenja samo jednog servera u atributu „hosts“.
- U klijenta za MySQL dodata je opcija „charset“ za postavljanje podrazumevajuće kodne stranice. Podrazumevano se koristi vrednost „utf8mb4“, koja odgovara podrazumevanju u MySQL 8.0 (u ranijim verzijama korišćena je vrednost „latin1“). Prekinuta je podrška za verzije starije od MySQL 4.0 (tj. za verzije objavljene pre 2003. godine).
- Dodana je opcionalna mogućnost zahtjeva za samopotpisanim (raw) javnim ključem za TLS, koji nije vezan za certifikacijski centar, umjesto X.509 certifikata. Korištenje raw-ključeva za autentifikaciju klijenata i servera uključuje se kroz parametre „smtpd_tls_enable_rpk = yes“ i „smtp_tls_enable_rpk = yes“, ali ponašanje pri provjeri uvelike ovisi o postavljenoj razini sigurnosti i podršci raw-ključeva u lokalnoj implementaciji TLS-a (vidi dokumentaciju).
- Dodana je osnovna podrška za konfiguracijske datoteke OpenSSL. Za navođenje veze na datoteku s TLS postavkama predložen je parametar tls_config_file, a za navođenje imena odjeljka s postavkama iz konfiguracijske datoteke – parametar „tls_config_name“. Povezivanje s konfiguracijskim datotekama OpenSSL može se koristiti za smanjenje ovisnosti o postavkama distribucije, čija promjena razine sigurnosti može rezultirati povećanjem udjela poruka poslanih bez enkripcije.
- U naslovima poruka promijenjeno je formatiranje brojeva dana u datumima – dani od 1 do 9 sada se nadopunjuju nulom, a ne razmakom (tj. „01“, „02“ i sl.). Promjena je izvršena jer RFC 5322 preporučuje korištenje jednostrukih razmaka kao razdjelnika u datumima.
- Dodana je zaštita od određenih vrsta napada „Blind“ (SSRF napadi na web-klijente, usmjereni na pristup serveru putem SMTP-a), koja se primjenjuje kada je postavljen parametar „smtpd_forbid_unauth_pipelining = yes“ (po zadanim postavkama).
- Po zadanom je uključena postavka „smtpd_forbid_bare_newline = normalize“, koja osigurava zaštitu servera od napada klase „SMTP smuggling“, koji omogućuju razdvajanje jedne poruke na nekoliko različitih poruka putem korištenja nestandardne sekvence za razdvajanje poruka. Također je dodana zaštita od izvršavanja odlaznih napada SMTP smuggling, pri čemu napadač koristi server temeljen na Postfixu za napad na drugi SMTP server. Po zadanom je uključena postavka „cleanup_replace_stray_cr_lf = yes“, koja zamjenjuje suvišne znakove i razmakom.
- U implementaciji DNS klijenta veličina vraćenih rezultata DNS upita sada je ograničena na 100 zapisa, što je 20 puta više od podržanog maksimalnog broja u SMTP klijentu IP adresa za jedan server.
- Parametri „disable_dns_lookup“ i „permit_mx_backup“, kao i neki parametri postavke TLS, prebačeni su u kategoriju zastarjelih.
- Podrška za postavke koje su proglašene zastarjelima prije oko 20 godina je prekinuta: «permit_naked_ip_address», «check_relay_domains» i «reject_maps_rbl».
Izvor: opennet.ru
