Дата публикации:Tue, 18 Feb 2025 10:33:47 +0300
После почти года разработки опубликован релиз новой стабильной ветки почтового сервера Postfix - 3.10.0. В то же время объявлено о прекращении поддержки ветки Postfix 3.6, выпущенной в начале 2021 года. Код проекта написан на языке Си и распространяется под лицензиями EPL 2.0 (Eclipse Public license) и IPL 1.0 (IBM Public License).
Postfix является одним из редких проектов, сочетающих одновременно высокую безопасность, надёжность и производительность, чего удалось добиться благодаря многопроцессой архитектуре, изолирующей отдельные обработчики, а также жёсткой политике оформления кода и аудита патчей. Для защиты от ошибок при работе с памятью в проекте используются защищённые варианты функции для выделения и освобождения памяти, а также набор абстрактных функций-обвязок для работы с буферами (проверяется выход за границы буфера и обращения к освобождённой памяти), файловыми операциями, форматирования вывода, буферизированного ввода/вывода и манипуляций со строками (включая возможности для работы со строками произвольного размера и автоматического изменения размера строк).
В соответствии с февральским автоматизированным опросом около 550 тысяч почтовых серверов, Postfix используется на 37.64% (год назад 36.81%) почтовых серверов, доля Exim составляет 56.03% (год назад 56.61%), Sendmail - 3.39% (3.60%), MailEnable - 1.80% (1.82%), MDaemon - 0.39% (0.40%), Microsoft Exchange - 0.19% (0.19%), OpenSMTPD - 0.10% (0.09%).
Основные новшества:
- Добавлена возможность использования в TLS криптоалгоирмов, стойких к подбору на квантовом компьютере. Для использования данных алгоритмов требуется использование ветки библиотеки OpenSSL 3.5, которая пока не вышла из стадии разработки. Для выбора постквантовых алгоритмов в Postfix не стали вводить новый синтаксис TLS-групп, а положились на настройки OpenSSL, которые будут использованы при установке параметров "tls_eecdh_auto_curves" и "tls_ffdhe_auto_groups" в пустые значения.
Добавлена поддержка заголовка сообщений "TLS-Required: no" (RFC 8689), при котором доставка будет выполнена даже при невозможности реализовать выставленную в настройках политику безопасности TLS. При наличии данного заголовка SMTP-клиент работает в режиме "smtp_tls_security_level = may", т.е. не проверяет сертификат сервера
и может откатиться на соединение с передачей данных открытым текстом. В следующей значительной ветке Postfix намерены реализовать SMTP-расширение REQUIRETLS.
Добавлена поддержка протокола TLS-RPT (Transport Layer Security Reporting), позволяющего отслеживать сбои при доставке сообщений, возникающие если не удаётся установить шифрованное соединение, предписанное использованием расширений DANE (DNS-based Authentication of Named Entities) или MTA-STS (MTA Strict Transport Security). Владелец почтового домена определяет в DNS параметры для TLS-RPT, после чего почтовые серверы будут отправлять отчёты с информацией об успешных и сбойных TLS-соединениях к MX-серверам, обслуживающим домен. Реализация основана на библиотеке libtlsrpt.
Добавлена настройка "smtpd_hide_client_session = yes", отключающая вставку информации о сеансе клиента при подстановке SMTP-сервером заголовка "Received:".
Пример урезанного заголовка" "Received: by mail.example.com (Postfix) id postfix-queue-id for <user@example.com>; Day, dd Mon yyyy hh:mm:ss tz-offset (zone)".
Добавлена возможность MIME-кодирования (RFC 2047) имён в генерируемых Postfix заголовках "From:", включающих не ASCII-символы. Предложенная схема кодирования позволяет обойтись без применения расширения SMTPUTF8 (RFC 6531), поддерживаемого не всеми приложениями. Результат MIME-кодирования выглядит как '"=?charset?Q?gibberish?=:'. Для определения исходной кодировки имён добавлен параметр
"full_name_encoding_charset", по умолчанию выставленный в значение utf8.
Изменена логика обработки сбойных соединений при указании в настройках "mysql:" или "pgsql:" только одного сервера. Подобный сервер теперь воспринимается как балансировщик нагрузки и в случае единичного сбоя, повторный запрос отправляется сразу, без задержки в 60 секунд.
В Milter реализовано отражение в логе информации с причиной помещения сообщения в карантин.
В SMTP-сервере обеспечен вывод в лог идентификатора очереди или значения "NOQUEUE" при завершении соединения по таймауту, обрыву или превышению лимита на число ошибок. Процесс cleanup при этом выдаёт в лог "queueid: canceled" для сообщений с запущенной, но не завершённой, транзакцией.
В клиенте Dovecot SASL при выводе в лог сообщений "Invalid authentication mechanism" теперь указывается механизм аутентификации, который не удалось использовать. SMTP-сервер при выводе в лог записей 'reject' теперь отображает значения настроек sasl_method, sasl_username и sasl_sender.
Из-за изменения внутреннего протокола, используемого в агенте доставки, после обновления версии Postfix требуется перезапуск командой "postfix reload" или командами "postfix stop" и "postfix start". В противном случае в лог будет выведено предупреждение "unexpected attribute smtputf8 from xxx socket (expecting: sendopts)".
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=62741