Новая версия почтового сервера Exim 4.94

Новая версия почтового сервера Exim 4.94

После 6 месяцев разработки состоялся релиз почтового сервера Exim 4.94, в который внесены накопившиеся исправления и добавлены новые возможности. В соответствии с майским автоматизированным опросом около миллиона почтовых серверов, доля Exim составляет 57.59% (год назад 53.03%), Postfix используется на 34.70% (34.51%) почтовых серверов, Sendmail - 3.75% (4.05%), Microsoft Exchange - 0.42% (0.57%).

Изменения в новом выпуске могут привести к нарушению обратной совместимости. В частности, некоторые виды транспорта перестали работать с неочищенными данными (tainted, значения на основе данных, полученных от отправителя) при определении местоположения доставки. Например, проблемы могут возникнуть при использовании переменной $local_part в настройке "check_local_user" при маршрутизации письма. Вместо $local_part следует использовать новую очищенную переменную "$local_part_data". Кроме того, в операндах опции headers_remove теперь разрешено использование масок, определяемых при помощи символа "*", что может привести к нарушению работы конфигураций, в которых выполнялось удаление заголовков, заканчивающихся на символ звёздочки (вместо удаления конкретных заголовков будет выполнено удаление по маске).

Основные изменения:

  • В дополнение к уже давно реализованной экспериментальной поддержки механизма SRS (Sender Rewriting Scheme) на основе libsrs_alt, добавлен алтернативный механизм EXPERIMENTAL_SRS_NATIVE без внешних зависимостей. SRS позволяет переписать адрес отправителя при пересылке без нарушения проверок SPF (Sender Policy Framework) и обеспечив сохранение данных об отправителе для направления сервером сообщений в случае ошибки доставки. Суть метода в том, что при установке соединения передаются сведения об идентичности с изначальным отправителем, например при перезаписи [email protected] на [email protected] будет указано "[email protected]". SRS актуален, например, при организации работы списков рассылки, в которых исходное сообщение перенаправляется другим получателям.
  • При использовании OpenSSL добавлена поддержка закрепления канала для аутентификаторов (ранее поддерживалось только для GnuTLS).
  • Добавлено событие "msg:defer".
  • Реализована поддержка аутентификатора gsasl на стороне клиента, которая протестирована только с обработчиком открытых паролей (plaintext). Работа методов SCRAM-SHA-256 и SCRAM-SHA-256-PLUS возможна только через сам gsasl.
  • Реализована поддержка аутентификатора gsasl на стороне сервера для шифрованных паролей, выступающая альтернативой ранее доступного режима plaintext.
  • Определения в именованных списках теперь могут помечаться префиксом "hide" для подавления вывода контента при выполнении команды "-bP".
  • В драйвер аутентификации через IMAP-сервер Dovecot добавлена экспериментальная поддержка интернет-сокетов (ранее поддерживались только unix-domain сокеты).
  • ACL выражение "queue_only" теперь может указываться как "queue" и поддерживает опцию "first_pass_route", аналогичную опции командной строки "-odqs".
  • Добавлены новые переменные $queue_size и $local_part_{pre,suf}fix_v.
  • В основной блок конфигурации добавлена опция "sqlite_dbfile" для использования при определении префикса строки поиска. Изменение нарушает обратную совместимость - старый метод задания префикса перестал работать при указании неочищенных (tainted) переменных в lookup-запросах. Новый метод ("sqlite_dbfile") позволяет держать имя файла отдельно.
  • В lookup-блоки dsearch добавлены опции для возвращения полного пути и фильтрации типов файлов при сопоставлении.
  • В lookup-блоки pgsql и mysql добавлены опции для задания имени сервера отдельно от строки поиска.
  • Для lookup-блоков, осуществляющих выборку по одному ключу, добавлена опция для возвращения очищенной (de-tainted) версии ключа при наличии совпадений, вместо искомых данных.
  • Для всех успешных выборок list-match обеспечено выставление переменных $domain_data и $localpart_data (ранее вставлялись элементы списка, задействованные в выборке). Кроме того, применяемые при сопоставлении элементы списка теперь присваиваются переменным $0, $1 и т.д.
  • Добавлен оператор раскрытия "${listquote {<char>} {<item>}}".
  • В оператор раскрытия ${readsocket {}{}{}} добавлена опция для обеспечения кэширования результатов.
  • Добавлена настройка dkim_verify_min_keysizes для перечисления минимально допустимых размеров открытых ключей.
  • Обеспечено раскрытие параметров "bounce_message_file" и "warn_message_file" до их первого использования.
  • Добавлена опция "spf_smtp_comment_template" для настройки значения переменной "$spf_smtp_comment".
+ +12 -

Добавить комментарий