Издаване на пощенски сървър Postfix 3.6.0

След година на разработка беше пуснат нов стабилен клон на пощенския сървър Postfix - 3.6.0. В същото време той обяви края на поддръжката за клона Postfix 3.2, пуснат в началото на 2017 г. Postfix е един от редките проекти, който комбинира висока сигурност, надеждност и производителност едновременно, което беше постигнато благодарение на добре обмислена архитектура и доста строга политика за дизайн на код и одит на корекции. Кодът на проекта се разпространява под EPL 2.0 (публичен лиценз на Eclipse) и IPL 1.0 (публичен лиценз на IBM).

Според априлско автоматизирано проучване на около 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 не бъде рестартиран.
  • Споменаването на думите „бял“ и „черен“, възприемани от някои членове на общността като расова дискриминация, е изчистено. Вместо „whitelist“ и „blacklist“, сега трябва да се използват „allowlist“ и „denylist“ (например параметрите postscreen_allowlist_interfaces, postscreen_denylist_action и postscreen_dnsbl_allowlist_threshold). Промените засягат документацията, настройките на postscreen процеса (вградена защитна стена) и отразяването на информацията в регистрационните файлове. postfix/postscreen[pid]: ALLOWLIST VETO [адрес]:порт postfix/postscreen[pid]: ALLOWLISTED [адрес]:порт postfix/postscreen[pid]: DENYLISTED [адрес]:порт

    За запазване на предишните термини в регистрационните файлове е предоставен параметърът „respectful_logging = no“, който трябва да бъде посочен в main.cf преди „compatibility_level = 3.6“. Поддръжката на стари имена на настройките за постекран е запазена за обратна съвместимост. Освен това конфигурационният файл „master.cf“ засега остава непроменен.

  • В режим „compatibility_level = 3.6“ превключвателят по подразбиране беше направен да използва хеш функцията SHA256 вместо MD5. Ако зададете по-ранна версия в параметъра compatibility_level, MD5 продължава да се използва, но за настройки, свързани с използването на хешове, в които алгоритъмът не е изрично дефиниран, в регистрационния файл ще се покаже предупреждение. Поддръжката за версията за експортиране на протокола за обмен на ключове Diffie-Hellman е преустановена (стойността на параметъра tlsproxy_tls_dh512_param_file вече се игнорира).
  • Опростена диагностика на проблеми, свързани със задаване на неправилна манипулираща програма в master.cf. За да открие такива грешки, всяка бекенд услуга, включително postdrop, сега рекламира името на протокола, преди да започне комуникация, и всеки клиентски процес, включително sendmail, проверява дали рекламираното име на протокол съответства на поддържания вариант.
  • Добавен е нов тип съпоставяне „local_login_sender_maps“ за гъвкав контрол върху присвояването на адреса на плика на подателя (предоставен в командата „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: # Разрешава се посочване както на вход, така и на формата login@domain. /(.+)/ $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, който поддържа многопоточност (безопасен за нишки). За да изградите със стария API, трябва да посочите „make makefiles CCARGS=”-DNO_RES_NCALLS…” при изграждане.
  • Добавен е режим „enable_threaded_bounces = yes“ за заместване на известия за проблеми с доставката, забавена доставка или потвърждение за доставка със същия ID на дискусия (известието ще бъде показано от пощенския клиент в същата нишка, заедно с други съобщения за кореспонденция).
  • По подразбиране системната база данни /etc/services вече не се използва за определяне на номера на TCP портове за SMTP и LMTP. Вместо това номерата на портовете се конфигурират чрез параметъра known_tcp_ports (по подразбиране lmtp=24, smtp=25, smtps=submissions=465, submission=587). Ако някаква услуга липсва от unknown_tcp_ports, /etc/services продължава да се използва.
  • Нивото на съвместимост („compatibility_level“) е повишено до „3.6“ (параметърът е променен два пъти в миналото, с изключение на 3.6, поддържаните стойности са 0 (по подразбиране), 1 и 2). Отсега нататък „compatibility_level“ ще се промени на номера на версията, в която са направени промени, които нарушават съвместимостта. За проверка на нивата на съвместимост към main.cf и master.cf са добавени отделни оператори за сравнение, като например „<=ниво“ и „<ниво“ (стандартните оператори за сравнение не са подходящи, тъй като ще считат 3.10 за по-малко от 3.9).

Източник: opennet.ru

Добавяне на нов коментар