30.11.2022

Доступен почтовый сервер Postfix 3.7.0

После 10 месяцев разработки состоялся релиз новой стабильной ветки почтового сервера Postfix — 3.7.0. В то же время объявлено о прекращении поддержки ветки Postfix 3.3, выпущенной в начале 2018 года. Postfix является одним из редких проектов, сочетающих одновременно высокую безопасность, надёжность и производительность, чего удалось добиться благодаря продуманной архитектуре и достаточно жёсткой политике оформления кода и аудита патчей. Код проекта распространяется под лицензиями EPL 2.0 (Eclipse Public license) и IPL 1.0 (IBM Public License).

В соответствии с январским автоматизированным опросом около 500 тысяч почтовых серверов, Postfix используется на 34.08% (год назад 33.66%) почтовых серверов,
доля Exim составляет 58.95% (59.14%), Sendmail — 3.58% (3.6%), MailEnable — 1.99% (2.02%), MDaemon — 0.52% (0.60%), Microsoft Exchange — 0.26% (0.32%), OpenSMTPD — 0.06% (0.05%).

Основные новшества:

  • Предоставлена возможность вставки по месту содержимого небольших таблиц «cidr:», «pcre:» и «regexp:» внутри значений параметров конфигурации Postfix, без подключения внешних файлов или БД. Подстановка по месту определяется при помощи фигурных скобок, например, значение по умолчанию параметра smtpd_forbidden_commands теперь содержит строку «CONNECT GET POST regexp:{{/^[^A-Z]/ Thrash}}», обеспечивающую сброс соединений от клиентов, отправляющих мусор вместо команд. Общий синтаксис:
     /etc/postfix/main.cf: parameter = .. map-type:{ { rule-1 }, { rule-2 } .. } .. /etc/postfix/master.cf: .. -o { parameter = .. map-type:{ { rule-1 }, { rule-2 } .. } .. } ..
    
  • Обработчик postlog теперь снабжён флагом set-gid и при запуске меняет выполняет операции с привилегиями группы postdrop, что позволяет использовать его непривилегированными программами для записи логов через фоновый процесс postlogd, что позволяет повысить гибкость настройки maillog_file и реализовать в том числе логгирование stdout из контейнера.
  • Добавлена поддержка API библиотек OpenSSL 3.0.0, PCRE2 и Berkeley DB 18.
  • Добавлена защита от атак по определению коллизий в хэшах методом перебора ключей. Защита реализована через рандомизацию начального состояния хэш-таблиц, хранимых в оперативной памяти. В настоящее время выявлен только один способ проведение подобных атак, связанный с перебором IPv6-адресов SMTP-клиентов в сервисе anvil и требующий установки сотен кратковременных подключений в секунду при цикличном переборе тысяч разных клиентских IP-адресов. Остальные хэш-таблицы, проверка ключей в которых может производиться на основании данных атакующего, не подвержены подобным атакам, так как в них применяется ограничение по размеру (в anvil применялась чистка раз в 100 секунд).
  • Усилена защита от внешних клиентов и серверов, очень медленно по крупицам передающих данные для удержания активными соединений SMTP и LMTP (например, для блокирования работы через создание условий исчерпания лимита на число установленных соединений). Вместо ограничений времени в привязке к записям теперь применено ограничение в привязке к запросам, а также добавлено ограничение минимально возможной интенсивности передачи данных.
  • Переделана обработка ошибок от клиентов, использующих LMDB.

Источник.