Реліз поштового сервера 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

Додати коментар або відгук