След година разработка, новият стабилен клон на пощенския сървър 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:» в связи с прекращением поставки в некоторых дистрибутивах Linux библиотек BerkeleyDB. Для сохранения совместимости с инструментарием 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. Този параметър позволява съвместимост между Postfix SMTP клиента и плъгините MTA-STS (MTA Strict Transport Security), които изискват поддръжка на TLSRPT за пренасочване на атрибути на STS. Когато този параметър е активиран по подразбиране, Postfix SMTP клиентът ще се свързва с MX сървъра само ако името му съвпада с шаблона, посочен в STS правилата. В противен случай ще се използва старото поведение - свързване към MX сървъри въз основа на DNS MX записи, ако сертификатът на сървъра отговаря на STS правилата. Механизмът MTA-STS позволява информиране на клиент, свързващ се по несигурен канал, за възможността и параметрите за установяване на защитена TLS връзка. Поддръжката за този параметър е добавена и към помощните програми postfix-tlspol и postfix-mta-sts-resolver.
- Добавена е поддръжка за квантово-устойчиви алгоритми за криптиране при изграждане с OpenSSL 3.5 и по-нови версии.
- Шестнадесет конфигурационни параметъра са остарели и когато се използват, в лога ще се показва предупреждение, указващо премахването им в бъдеща версия. Тези остарели параметри включват „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
