إصدار خادم البريد 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%)، مديمون - 0.60% (0.77%)، مايكروسوفت إكستشينج - 0.32% (0.47%).

الابتكارات الرئيسية:

  • بسبب التغييرات في البروتوكولات الداخلية المستخدمة للتفاعل بين مكونات Postfix، يلزم إيقاف خادم البريد باستخدام أمر "postfix stop" قبل التحديث. بخلاف ذلك، قد يكون هناك فشل عند التفاعل مع عمليات الالتقاط، وqmgr، والتحقق، وtlsproxy، وعمليات postscreen، مما قد يؤدي إلى تأخير في إرسال رسائل البريد الإلكتروني حتى يتم إعادة تشغيل Postfix.
  • وقد تم حذف الإشارات إلى كلمتي "أبيض" و"أسود"، والتي اعتبرها بعض أفراد المجتمع بمثابة تمييز عنصري. بدلاً من "القائمة البيضاء" و"القائمة السوداء"، يجب الآن استخدام "القائمة المسموح بها" و"قائمة الحظر" (على سبيل المثال، المعلمات postscreen_allowlist_interfaces وpostscreen_denylist_action وpostscreen_dnsbl_allowlist_threshold). تؤثر التغييرات على الوثائق وإعدادات عملية ما بعد الشاشة (جدار الحماية المدمج) وانعكاس المعلومات في السجلات. postfix/postscreen[pid]: القائمة المسموح بها VETO [العنوان]: المنفذ postfix/postscreen[pid]: القائمة المسموح بها [العنوان]: المنفذ postfix/postscreen[pid]: المرفوضة [العنوان]: المنفذ

    للحفاظ على المصطلحات السابقة في السجلات، يتم توفير المعلمة "respectful_logging = no"، والتي يجب تحديدها في main.cf قبل "compatibility_level = 3.6". تم الاحتفاظ بدعم أسماء إعدادات ما بعد الشاشة القديمة من أجل التوافق مع الإصدارات السابقة. كما أن ملف التكوين "master.cf" ظل دون تغيير في الوقت الحالي.

  • في الوضع "compatibility_level = 3.6"، تم إجراء المفتاح الافتراضي لاستخدام وظيفة التجزئة SHA256 بدلاً من MD5. إذا قمت بتعيين إصدار سابق في معلمة مستوى التوافق، فسيستمر استخدام MD5، ولكن بالنسبة للإعدادات المتعلقة باستخدام التجزئات التي لم يتم تعريف الخوارزمية فيها بشكل صريح، سيتم عرض تحذير في السجل. تم إيقاف دعم إصدار التصدير لبروتوكول تبادل مفاتيح Diffie-Hellman (يتم الآن تجاهل قيمة المعلمة tlsproxy_tls_dh512_param_file).
  • تشخيص مبسط للمشاكل المرتبطة بتحديد برنامج معالج غير صحيح في master.cf. لاكتشاف مثل هذه الأخطاء، تعلن كل خدمة خلفية، بما في ذلك ما بعد الإسقاط، عن اسم البروتوكول قبل بدء الاتصال، وتتحقق كل عملية عميل، بما في ذلك إرسال البريد، من تطابق اسم البروتوكول المُعلن عنه مع المتغير المدعوم.
  • تمت إضافة نوع تعيين جديد "local_login_sender_maps" للتحكم المرن في تعيين عنوان مغلف المرسل (المقدم في أمر "MAIL FROM" أثناء جلسة SMTP) إلى عمليات الإرسال وما بعد الإسقاط. على سبيل المثال، للسماح للمستخدمين المحليين، باستثناء الجذر و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) افتراضيًا. للإنشاء باستخدام واجهة برمجة التطبيقات القديمة، يجب عليك تحديد "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، Submit=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

إضافة تعليق