След година разработки беше публикуван новият стабилен релиз на пощенския сървър Postfix — 3.12.0. В същото време беше обявено прекратяване на поддръжката на версия Postfix 3.7, пусната в началото на 2022 година. Кодът на проекта е написан на езика C и се разпространява под лицензите EPL 2.0 (Eclipse Public License) и IPL 1.0 (IBM Public License).
Postfix е един от редките проекти, които съчетават висока сигурност, надеждност и производителност, постигнати благодарение на многопроцесорната архитектура, изолираща отделните обработващи единици, както и строгата политика за кодиране и одит на пачовете. За защита от грешки при работа с паметта в проекта се използват защитени версии на функциите за заделяне и освобождаване на памет, а също и набор от абстрактни функции-обвивки за работа с буфери (проверява се изхода извън границите на буфера и достъпа до освободена памет), файлови операции, форматиране на изхода, буферирано въвеждане/извеждане и манипулации с низове (включително възможности за работа с низове произволна дължина и автоматично изменение на размера на низовете).
Според финалното автоматизирано проучване, около 500 хиляди пощенски сървъри (след юли 2025 година публикуването на доклади е прекратено), Postfix се използва на 37.88% (преди година 36.81%) от пощенските сървъри, делът на Exim е 55.59% (преди година 56.61%), Sendmail — 3.55% (3.60%), MailEnable — 1.81% (1.82%), MDaemon — 0.40% (0.40%), Microsoft Exchange — 0.20% (0.19%), OpenSMTPD — 0.12% (0.09%).
Основни нововъведения:
- Беше извършена работа по опростяване на миграцията от хеш-таблици „hash:“ и „btree:“ на „lmdb:“ или „cdb:“ поради прекратяването на предлагането на библиотеките BerkeleyDB в някои дистрибуции на Linux. За запазване на съвместимостта с инструментариума Mailman, който изпълнява командата „postmap hash:/path/to/file“ при добавяне или изтриване на списъци с разпространение, в Postfix беше добавена поддръжка за автоматично пренасочване на подобни команди към варианти с поддържани типове бази данни.
- По подразбиране е активирано свързването към SMTP-сървъри, използвайки TLS криптиране. В настройките на SMTP клиента параметърът smtp_tls_security_level е зададен на „may“, ако Postfix е събран с поддръжка на TLS. Стойността „may“ позволява използването на TLS за сървъри, които поддържат криптиране, но допуска откат до предаване на данни в открит вид, ако сървърът не поддържа TLS.
- В ESMTP е реализирана поддръжка на разширението «REQUIRETLS» (RFC 8689), което позволява на подателя да поиска гарантирано TLS криптиране по целия маршрут на доставката на съобщението. В този режим всеки SMTP и LMTP сървър, участващ в пренасочването на писмото, трябва да поддържа REQUIRETLS и строга автентикация чрез DANE или STS, а при предаване на съобщението на други сървъри също да използва REQUIRETLS.
- Осигурено е отразяване в логовете на нивото на сигурност на TLS, т.е. ако за предаване на съобщението е изискано ниво REQUIRETLS, информацията за използването на REQUIRETLS сега ще бъде запазена в логовете.
- Добавен е параметър smtp_tls_enforce_sts_mx_patterns, който включва режим на съвместимост между SMTP клиента Postfix и плъгините MTA-STS (MTA Strict Transport Security), които изискват активиране на поддръжка на TLSRPT за пренасочване на атрибутите на STS. При задаване на този параметър, който е активен по подразбиране, SMTP клиентът Postfix ще се свърже с MX сървъра само ако името му отговаря на шаблона, посочен в политиките на STS. В противен случай, ще бъде използвано старото поведение – възможността за свързване с MX сървъри на базата на MX записи в DNS при съответствие на сървърния сертификат с политиките на STS. Механизмът MTA-STS позволява информирането на клиента, който е установил връзка чрез незакрепена комуникация, относно възможностите и параметрите за установяване на защитена TLS връзка. Поддръжката на параметъра е добавена и в утилитите postfix-tlspol и postfix-mta-sts-resolver.
- Добавена е поддръжка на алгоритми за криптиране, устойчиви на подбора на квантов компютър, при компилация с OpenSSL 3.5 и по-нови версии.
- Преведени в разряд остарели 16 параметъра на конфигурацията, при използването на които в логовете сега ще се изписва предупреждение за тяхното премахване в една от бъдещите версии. В числото на остарелите параметри, например, влизат «virtual_maps», «fallback_relay», «postscreen_whitelist_interfaces» и «smtpd_client_connection_limit_exceptions».
- Добавена е поддръжка за извеждане на данни във формат JSON за командите: «postconf -j|-jM|-jF|-jP», «postalias -jq|-js», «postmap -jq|-js» и «postmulti -jl».
- Подобрена е обработката на грешки в Milter филтрите, възникващи при обработка на съобщения, получени чрез отдавна установени SMTP връзки. Стойността на параметъра #milter_default_action е променена от «tempfail» на стойността «shutdown», подразбираща затваряне на връзката с клиента.
Източник: opennet.ru
