Релиз почтового сервера Postfix 3.6.0
1 мая 2021 года
После года разработки состоялся релиз новой стабильной ветки почтового сервера Postfix - 3.6.0. В то же время объявлено о прекращении поддержки ветки Postfix 3.2, выпущенной в начале 2017 года. Postfix является одним из редких проектов, сочетающих одновременно высокую безопасность, надёжность и производительность, чего удалось добиться благодаря продуманной архитектуре и достаточно жёсткой политике оформления кода и аудита патчей. Код проекта распространяется под лицензиями EPL 2.0 (Eclipse Public license) и IPL 1.0 (IBM Public License).
В соответствии с апрельским автоматизированным опросом около 600 тысяч почтовых серверов, Postfix используется на 33.66% (год назад 34.29%) почтовых серверов, доля Exim составляет 59.14% (57.77%), Sendmail - 3.6% (3.83%), MailEnable - 2.02% (2.12%), MDaemon - 0.60% (0.77%), Microsoft Exchange - 0.32% (0.47%).
Основные новшества:
- В связи с изменением внутренних протоколов, используемых для взаимодействия между компонентами Postfix, перед обновлением обязательно требуется остановка почтового сервера командой "postfix stop". В противном случае могут наблюдаться сбои при взаимодействии с процессами pickup, qmgr, verify, tlsproxy и postscreen, которые могут привести к задержке отправки писем до перезапуска Postfix.
- Проведена чистка упоминаний слов "white" и "black", воспринимаемых некоторыми представителями сообщества, как расовая дискриминация. Вместо "whitelist" и "blacklist" теперь следует использовать "allowlist" и "denylist" (например, параметры postscreen_allowlist_interfaces, postscreen_denylist_action и postscreen_dnsbl_allowlist_threshold). Изменения затрагивают документацию, настройки процесса postscreen (встроенный межсетевой экран) и отражение информации в логах.
postfix/postscreen[pid]: ALLOWLIST VETO [address]:port postfix/postscreen[pid]: ALLOWLISTED [address]:port postfix/postscreen[pid]: DENYLISTED [address]:port
Для сохранения прежних терминов в логах предусмотрен параметр "respectful_logging = no", который следует указывать в main.cf перед "compatibility_level = 3.6". Поддержка старых имён настроек postscreen сохранена для обеспечения обратной совместимости. Так же пока неизменным остался файл конфигурации "master.cf".
- В режиме "compatibility_level = 3.6" осуществлён переход по умолчанию на использование хэш-функции SHA256 вместо MD5. При выставлении более ранней версии в параметре compatibility_level продолжает применяться MD5, но для связанных с применением хэшей настроек, в которых явно не определён алгоритм, в лог будет выводится предупреждение. Прекращена поддержка экспортного варианта протокола обмена ключами Диффи-Хеллмана (значение параметра tlsproxy_tls_dh512_param_file теперь игнорируется).
- Упрощена диагностика проблем, связанных с указанием в master.cf некорректной программы-обработчика. Для выявления подобных ошибок каждый внутренний сервис, включая postdrop, теперь анонсирует имя протокола до начала обмена данными, а каждый клиентский процесс, включая sendmail, проверяет соответствие заявленного имени протокола поддерживаемому варианту.
- Добавлен новый тип сопоставлений "local_login_sender_maps" для гибкого управления назначением envelope-адреса отправителя (предаётся в команде "MAIL FROM" во время SMTP-сеанса) в процессы sendmail и postdrop. Например, для разрешения локальным пользователям, за исключением root и postfix, указания в sendmail только своих логинов, используя привязку UID к имени, можно использовать следующие настройки:
/etc/postfix/main.cf: local_login_sender_maps = inline:{ { root = *}, { postfix = * } }, pcre:/etc/postfix/login_senders /etc/postfix/login_senders: # Разрешено указание как логинов, так и формы логин@домен. /(.+)/ $1 $1...@example.com
- Добавлена и по умолчанию активирована настройка "smtpd_relay_before_recipient_restrictions=yes",
при которой SMTP-сервер будет проверять ограничения smtpd_relay_restrictions до smtpd_recipient_restrictions, а не наоборот, как раньше.
- Добавлен параметр "smtpd_sasl_mechanism_list", по умолчанию установленный в значение "!external, static:rest" для предотвращения вызывающих замешательство ошибок, в случае, когда бэкенд SASL заявляет о поддержке режима "EXTERNAL", который не поддерживается в Postfix.
- При определении имён в DNS по умолчанию задействован новый API, поддерживающий многопоточность (threadsafe). Для сборки со старым API следует указать при сборке "make makefiles CCARGS="-DNO_RES_NCALLS...".
- Добавлен режим "enable_threaded_bounces = yes" для подстановки уведомлений о проблемах с доставкой, задержанной доставке или подтверждении доставки с тем же идентификатором обсуждения (уведомление будет показано почтовым клиентом в той же нити, вместе с остальными сообщениями переписки).
- По умолчанию прекращено использование системной БД /etc/services для определения номеров TCP-портов для SMTP и LMTP. Вместо этого номера портов настраивается через параметр known_tcp_ports (по умолчанию lmtp=24, smtp=25, smtps=submissions=465, submission=587). В случае, если какой-то сервис пропущен в known_tcp_ports, продолжает использоваться /etc/services.
- Уровень совместимости ("compatibility_level") поднят до значения "3.6" (в прошлом параметр менялся два раза, кроме 3.6 поддерживаются значения 0 (по умолчанию), 1 и 2). Отныне "compatibility_level" будет меняться на номер версии, в которой внесены изменения, нарушающие совместимость. Для проверки уровней совместимости в main.cf и master.cf добавлены отдельные операторы сравнения, такие как "<=level" и "< level" (штатные операторы сравнения не подходят, так как посчитают 3.10 меньше 3.9).
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.