انتشار سرور ایمیل 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 شود.
  • ذکر کلمات "سفید" و "سیاه" که توسط برخی از اعضای جامعه به عنوان تبعیض نژادی تلقی می شود، پاکسازی شده است. به جای «لیست سفید» و «لیست سیاه»، اکنون باید از «لیست مجاز» و «رد لیست» استفاده شود (به عنوان مثال، پارامترهای postscreen_allowlist_interfaces، postscreen_denylist_action و postscreen_dnsbl_allowlist_threshold). این تغییرات بر اسناد، تنظیمات فرآیند postscreen (فایروال داخلی) و انعکاس اطلاعات در گزارش‌ها تأثیر می‌گذارد. postfix/postscreen[pid]: ALLOWLIST VETO [آدرس]:port postfix/postscreen[pid]: ALLOWLISTED [آدرس]:port postfix/postscreen[pid]: DENYLISTED [آدرس]:پورت

    برای حفظ اصطلاحات قبلی در گزارش‌ها، پارامتر "respectful_logging = no" ارائه شده است که باید قبل از "compatibility_level = 3.6" در main.cf مشخص شود. پشتیبانی از نام های تنظیمات postscreen قدیمی برای سازگاری با عقب حفظ شده است. همچنین، فایل پیکربندی "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 جدید که از multithreading (threadsafe) پشتیبانی می کند به طور پیش فرض فعال می شود. برای ساخت با API قدیمی، باید در هنگام ساخت، "make makefiles CCARGS="-DNO_RES_NCALLS…" را مشخص کنید.
  • حالت "enable_threaded_bounces = بله" را برای جایگزینی اعلان‌های مربوط به مشکلات تحویل، تأخیر تحویل یا تأیید تحویل با همان شناسه بحث اضافه کرد (اعلان توسط مشتری ایمیل در همان رشته به همراه سایر پیام‌های مکاتبه نشان داده می‌شود).
  • به طور پیش فرض، پایگاه داده سیستم /etc/services دیگر برای تعیین شماره پورت TCP برای SMTP و LMTP استفاده نمی شود. در عوض، شماره پورت ها از طریق پارامتر know_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

اضافه کردن نظر