След 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 връзки (например, за блокиране на работата чрез създаване на условия за изчерпване на лимита на установените връзки). Вместо времеви ограничения по записи, сега е приложено ограничение по запитвания, както и добавено ограничение на минимално възможната интензивност на предаване на данни в блокове DATA и BDAT. Съответно, вместо настройките {smtpd,smtp,lmtp}_per_record_deadline, сега имаме {smtpd,smtp,lmtp}_per_request_deadline и {smtpd,smtp,lmtp}_min_data_rate.
- В екипа postqueue е осигурено чистене на непечатни символи, като нов ред, на етапа преди извеждане в стандартния изходен поток или форматирането на реда в JSON.
- В tlsproxy, вместо параметрите tlsproxy_client_level и tlsproxy_client_policy, има нови настройки tlsproxy_client_security_level и tlsproxy_client_policy_maps за унификация на имената на параметрите в Postfix (имената на настройките tlsproxy_client_xxx вече отговарят на настройките smtp_tls_xxx).
- Преработена е обработката на грешки от клиенти, използващи LMDB.
Източник: opennet.ru
