Рэліз паштовага сервера Postfix 3.6.0

Пасля года распрацоўкі адбыўся рэліз новай стабільнай галіны паштовага сервера 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).

Крыніца: opennet.ru

Дадаць каментар