Po téměř roce vývoje byl uvolněn nový stabilní vydání poštovního serveru Postfix — 3.9.0. Zároveň bylo oznámeno ukončení podpory větve Postfix 3.5, vydané na počátku roku 2020. Postfix je jedním z mála projektů, které kombinují vysokou bezpečnost, spolehlivost a výkonnost, čehož bylo dosaženo díky promyšlené architektuře a dostatečně přísné politice psaní kódu a auditu patchů. Kód projektu je napsán v jazyce C a je distribuován pod licencemi EPL 2.0 (Eclipse Public License) a IPL 1.0 (IBM Public License).
Podle lednového automatizovaného průzkumu mezi přibližně 400 tisíci poštovními servery, Postfix je používán na 36,81 % (před rokem 33,18 %) poštovních serverů, podíl Exim činí 56,61 % (před rokem 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 %).

Hlavní novinky:
- Byl přidán klient pro MongoDB, který umožňuje uchovávat v této databázi virtuální uživatele, pseudonymy, mapovací seznamy adres a různé kontrolní tabulky. Pro nastavení přístupu k MongoDB byl přidán typ tabulek „mongodb“. Například „alias_maps = proxy:mongodb:/etc/postfix/mongo.cf“, kde mongo.cf je soubor s nastavením připojení k MongoDB a filtru dotazů.
- Do agenta místní dodávky bylo přidáno exportování identifikátoru přesměrování, který byl předán během SMTP sezení přes parametr ENVID (Envelope ID) v příkazu ESMTP MAIL (RFC 3461). Identifikátor je zapisován do proměnné prostředí ENVID a předáván agentu dodávky pipe přes parametr příkazového řádku „${envid}“.
- Do klientů pro uchovávání dat v MySQL („mysql:“ ) a PostgreSQL („pgsql:“ ) byly přidány parametry: „idle_interval“ pro určení doby neaktivity před uzavřením spojení a „retry_interval“ pro nastavení časovače opětovného odesílání dotazů. Výchozí hodnota těchto parametrů je nastavena na 60 sekund. Hodnota „retry_interval“ může být snížena, například pro zkrácení doby obnovení po chybách, pokud se používá pouze jeden server v atributu „hosts“.
- Do klienta pro MySQL byla přidána nastavení „charset“ pro určení výchozí kódování znaků. Výchozí hodnota je „utf8mb4“, odpovídající výchozím nastavením v MySQL 8.0 (v dřívějších verzích byla použita hodnota „latin1“). Byla ukončena podpora verzí starších než MySQL 4.0 (tj. verzí vydaných před rokem 2003).
- Byla přidána volitelná možnost požadovat samostatný (raw) otevřený klíč pro TLS, který není vázán na certifikační autoritu, místo certifikátu X.509. Použití raw klíčů pro autentizaci klientů a serverů se aktivuje pomocí parametrů „smtpd_tls_enable_rpk = yes“ a „smtp_tls_enable_rpk = yes“, ale chování při ověřování závisí na nastavené úrovni zabezpečení a podpoře raw klíčů v místní implementaci TLS (viz dokumentace).
- Byla přidána základní podpora konfiguračních souborů OpenSSL. Pro určení odkazu na soubor s nastavením TLS byl navržen parametr tls_config_file, a pro určení názvu sekce s nastaveními z konfiguračního souboru parametr „tls_config_name“. Vázání na konfigurační soubory OpenSSL lze použít ke snížení závislosti na nastaveních distribucí, jejichž změna úrovně zabezpečení může vést ke zvýšení podílu zpráv odesílaných bez šifrování.
- Ve zprávách bylo změněno formátování čísel dnů v datech — dny od 1 do 9 jsou nyní doplněny nulou, nikoli mezerou (tj. „01“, „02“ atd.). Změna byla provedena, protože RFC 5322 doporučuje používat jako oddělovače jednotlivé mezery v datech.
- Byla přidána ochrana proti některým typům útoků „Blind“ (SSRF útoky na webové klienty, cílené na přístup k serveru přes SMTP), která je aplikována při nastavení „smtpd_forbid_unauth_pipelining = yes“ (ve výchozím nastavení).
- Ve výchozím nastavení je aktivováno nastavení „smtpd_forbid_bare_newline = normalize“, které zajišťuje ochranu serveru před útoky třídy „SMTP smuggling“, které umožňují rozdělit jednu zprávu na několik různých zpráv pomocí nestandardní sekvence pro oddělování e-mailů. Byla také přidána ochrana proti provádění odchozích útoků SMTP smuggling, při kterých útočník využívá server Postfix pro attack na jiný SMTP server. Ve výchozím nastavení je aktivováno nastavení „cleanup_replace_stray_cr_lf = yes“, které nahrazuje nadbytečné znaky a mezerou.
- V implementaci DNS klienta je nyní velikost vracených výsledků DNS dotazu omezena na 100 záznamů, což je 20krát více než maximální počet podporovaný v SMTP klientu. IP adress pro jeden server.
- Parametry „disable_dns_lookup“ a „permit_mx_backup“ byly převedeny do kategorie zastaralých, stejně jako některé nastavení TLS.
- Byla ukončena podpora nastavení, která byla označena za zastaralá přibližně před 20 lety: „permit_naked_ip_address“, „check_relay_domains“ a „reject_maps_rbl“.
Zdroj: opennet.ru
