| POSTCONF(5) | File Formats Manual | POSTCONF(5) |
نام (NAME)
postconf - مرجع جامع پارامترهای پیکربندی کارگزار پست الکترونیکی Postfix
خلاصه دستور (SYNOPSIS)
postconf parameter ... postconf -e "parameter=value" ...
توضیحات (DESCRIPTION)
فایل پیکربندی main.cf در Postfix پارامترهایی را مشخص میکند که عملکرد سیستم ایمیل Postfix را کنترل میکنند. معمولاً این فایل تنها زیرمجموعه کوچکی از تمامی پارامترها را شامل میشود؛ پارامترهایی که مشخص نشدهاند روی مقادیر پیشفرض خود باقی میمانند.
قالب کلی فایل main.cf به شرح زیر است:
- هر خط منطقی به صورت «parameter = value» است. فاصلههای خالی (whitespace) پیرامون «=» و همچنین فاصلههای خالی در انتهای خط منطقی نادیده گرفته میشوند.
- خطوط خالی و خطوطی که فقط شامل فاصله هستند نادیده گرفته میشوند، همچنین خطوطی که نخستین نویسه غیرفاصلهای آنها یک «#» باشد.
- یک خط منطقی با متنی بدون فاصله در ابتدا آغاز میشود. خطی که با فاصله خالی آغاز شود ادامهدهنده خط منطقی است.
- مقدار یک پارامتر میتواند به توابع یا پارامترهای دیگر ارجاع دهد.
- عبارتهای «$name» و «${name}» بهصورت بازگشتی با مقدار پارامتر نامبرده جایگزین میشوند. نام پارامتر تنها باید شامل نویسههایی از مجموعه [a-zA-Z0-9_] باشد. مقدار یک پارامتر تعریفنشده با مقدار تهی جایگزین میشود.
- عبارتهای «${name?value}» و «${name?{value}}» هنگامی که «$name» غیرتهی باشد با «value» جایگزین میشوند. نام پارامتر تنها باید شامل نویسههایی از مجموعه [a-zA-Z0-9_] باشد. این قالبها به ترتیب در نگارشهای 2.2 <= و 3.0 <= کارگزار Postfix پشتیبانی میشوند.
- عبارتهای «${name:value}» و «${name:{value}}» هنگامی که «$name» تهی باشد با «value» جایگزین میشوند. نام پارامتر تنها باید شامل نویسههایی از مجموعه [a-zA-Z0-9_] باشد. این قالبها به ترتیب در نگارشهای 2.2 <= و 3.0 <= کارگزار Postfix پشتیبانی میشوند.
- عبارت «${name?{value1}:{value2}}» هنگامی که «$name» غیرتهی باشد با «value1» و هنگامی که «$name» تهی باشد با «value2» جایگزین میشود. استفاده از «{}» برای «value1» الزامی و برای «value2» اختیاری است. نام پارامتر تنها باید شامل نویسههایی از مجموعه [a-zA-Z0-9_] باشد. این قالب در نگارشهای 3.0 <= کارگزار Postfix پشتیبانی میشود.
- نخستین مورد درون «${...}» میتواند یک عبارت رابطهای به فرم «{value3} == {value4}» باشد. علاوه بر عملگر «==» (برابری)، Postfix از «!=» (نابرابری)، «<»، «<=»، «>=» و «>» نیز پشتیبانی میکند. در صورتی که هر دو عملوند تماماً رقم باشند مقایسه بهصورت عددی و در غیر این صورت بهصورت الفبایی انجام میشود. این قالبها در نگارشهای 3.0 <= کارگزار Postfix پشتیبانی میشوند.
- عبارت «${name{value}}» با نتیجه حاصل از فراخوانی تابع name با آرگومان value پس از حذف فاصلههای خالی بین «{»، مقدار و «}» جایگزین میشود. نمونهای از آن تابع domain_to_ascii{} است.
- به جز در مواردی که ذکر شده، هر «value» مشمول ارزیابی بازگشتی پارامترهای نامگذاریشده و عبارتهای رابطهای است.
- فاصله خالی قبل یا بعد از هر «{value}» نادیده گرفته میشود.
- برای تولید یک نویسه تکی «$»، عبارت «$$» را مشخص کنید.
- قالب قدیمی «$(...)» معادل قالب ارجح «${...}» است.
- هنگامی که یک پارامتر یکسان چند بار تعریف شود، تنها آخرین مورد در نظر گرفته میشود.
- در غیر این صورت، ترتیب تعریف پارامترها در main.cf اهمیتی ندارد.
بخش باقیمانده این سند، شرح تمامی پارامترهای پیکربندی Postfix است. مقادیر پیشفرض پس از نام پارامتر درون پرانتز نمایش داده شدهاند، و با دستور «postconf -d» نیز قابل مشاهده هستند.
نکته: این به منزله دعوتی برای اعمال تغییرات در پارامترهای پیکربندی Postfix نیست. تغییرات غیرضروری میتوانند به عملکرد سیستم ایمیل آسیب برسانند.
2bounce_notice_recipient (default: postmaster)
گیرنده ایمیلهای غیرقابل تحویلی که نمیتوان آنها را به فرستنده بازگرداند. این ویژگی با پارامتر notify_classes فعال میشود.
access_map_defer_code (default: 450)
کد پاسخ عددی کارگزار SMTP در Postfix برای اقدام «defer» در نگاشت access(5)، از جمله «defer_if_permit» یا «defer_if_reject». پیش از Postfix 2.6، این پاسخ بهصورت ثابت «450» تنظیم شده است.
این مقدار را تغییر ندهید مگر آنکه درک کاملی از RFC 5321 داشته باشید.
این ویژگی در Postfix نگارش 2.6 و بالاتر در دسترس است.
access_map_reject_code (default: 554)
کد پاسخ عددی کارگزار SMTP در Postfix برای اقدام «reject» در یک نگاشت access(5).
این مقدار را تغییر ندهید مگر آنکه درک کاملی از RFC 5321 داشته باشید.
address_verify_cache_cleanup_interval (default: 12h)
مدت زمان بین دفعات پاکسازی پایگاهداده تایید آدرس توسط verify(8). این قابلیت نیازمند آن است که پایگاهداده از عملگرهای «delete» و «sequence» پشتیبانی کند. برای غیرفعال کردن پاکسازی پایگاهداده مقدار صفر را مشخص کنید.
پس از هر بار پاکسازی پایگاهداده، دیمن verify(8) تعداد ورودیهای نگهداشتهشده و حذفشده را ثبت میکند. در صورتی که دیمن پس از «postfix reload»، «postfix stop» یا عدم دریافت درخواست به مدت max_idle$ ثانیه زودهنگام خاتمه یابد، پاکسازی به عنوان «partial» (ناقص) ثبت میشود.
یک مقدار زمانی غیرمنفی تعیین کنید (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض h (ساعت) است.
این ویژگی در Postfix 2.7 در دسترس است.
address_verify_default_transport (default: $default_transport)
تنظیمات پارامتر default_transport را برای پروبهای تایید آدرس لغو و جایگزین میکند.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_local_transport (default: $local_transport)
تنظیمات پارامتر local_transport را برای پروبهای تایید آدرس لغو و جایگزین میکند.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_map (default: Postfix >= 3.11: $default_cache_db_type:$data_directory/verify_cache; Postfix < 3.11: btree:$data_directory/verify_cache)
جدول جستجو برای ذخیرهسازی ماندگار وضعیت تایید آدرس. این جدول توسط سرویس verify(8) نگهداری میشود، و پیش از آنکه فرایند مجوزهای دسترسی خود را واگذار کند باز میشود.
جدول جستجو بهصورت پیشفرض ماندگار است (Postfix 2.7 و بالاتر). برای نگهداری اطلاعات در حافظه موقت (فرار) که پس از «postfix reload» یا «postfix stop» از بین میرود، یک نام جدول خالی مشخص کنید. این حالت پیشفرض در Postfix نگارش 2.6 و قدیمیتر است.
مکانی را در سیستم فایل مشخص کنید که پر نشود. اگر پایگاهداده خراب شود، فاجعه رخ خواهد داد. برای بازیابی، فایل را حذف کنید (نه خالی کردن/truncate) و دستور «postfix reload» را اجرا کنید.
فرایندهای دیمن Postfix هنگام باز کردن این فایل از مجوزهای ریشه (root) استفاده نمیکنند (Postfix 2.5 و بالاتر). بنابراین فایل باید در یک دایرکتوری تحت مالکیت Postfix مانند data_directory ذخیره شود. بهعنوان کمکی برای مهاجرت، تلاش برای باز کردن فایل در یک دایرکتوری غیر متعلق به Postfix به data_directory تحت مالکیت Postfix تغییر مسیر داده میشود و یک هشدار ثبت میگردد.
مثالها:
address_verify_map = $default_cache_db_type:$data_directory/verify_cache address_verify_map = lmdb:/var/lib/postfix/verify_cache address_verify_map = btree:/var/lib/postfix/verify_cache
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_negative_cache (default: yes)
فعالسازی حافظه پنهان (کش) برای نتایج ناموفق پروبهای تایید آدرس. هنگامی که این ویژگی فعال باشد، کش ممکن است بهسرعت با دادههای هرز پر شود. هنگامی که این ویژگی غیرفعال باشد، Postfix برای هر جستجو یک پروب آدرس ایجاد خواهد کرد.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_negative_expire_time (default: 3d)
مدت زمانی که پس از آن یک پروب ناموفق از حافظه پنهان تایید آدرس منقضی میشود.
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض d (روز) است.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_negative_refresh_time (default: 3h)
مدت زمانی که پس از آن یک پروب ناموفق تایید آدرس نیازمند تازهسازی است.
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض h (ساعت) است.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_pending_request_limit (default: see postconf -d output)
یک حد ایمنی که از اشباع صف Postfix توسط درخواستهای تایید آدرس جلوگیری میکند. بهطور پیشفرض، تعداد درخواستهای معلق به 1/4 حداکثر اندازه صف فعال (qmgr_message_active_limit) محدود شده است. مدیر صف این محدودیت را با ایجاد شکست موقت (tempfail) در درخواستهایی که از این حد فراتر میروند اعمال میکند. این امر تنها آدرسهای ناشناخته و آدرسهای غیرفعالی را که منقضی شدهاند تحت تأثیر قرار میدهد، چرا که دیمن verify(8) آدرسهای فعال را پیش از انقضا بهطور خودکار تازهسازی میکند.
این ویژگی در Postfix نگارش 3.1 و بالاتر در دسترس است.
address_verify_poll_count (default: normal: 3, overload: 1)
تعداد دفعات پرسوجو از سرویس verify(8) جهت تکمیل یک درخواست تایید آدرس در حال انجام.
بهطور پیشفرض، کارگزار SMTP در Postfix سرویس verify(8) را در شرایط عادی تا سه بار، و در شرایط بار کاری بیش از حد تنها یک بار بررسی (poll) میکند. در Postfix نگارش 2.5 و قدیمیتر، کارگزار SMTP همیشه سرویس verify(8) را بهطور پیشفرض تا سه بار بررسی میکند.
برای پیادهسازی شکل خامی از لیست خاکستری (greylisting)، یعنی همیشه به تعویق انداختن نخستین درخواست تحویل برای یک آدرس جدید، مقدار 1 را تعیین کنید.
مثالها:
# Postfix <= 2.6 default address_verify_poll_count = 3 # Poor man's greylisting address_verify_poll_count = 1
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_poll_delay (default: 3s)
میزان تأخیر بین پرسوجوها برای تکمیل یک درخواست تایید آدرس در حال انجام.
تأخیر بررسی پیشفرض 3 ثانیه است.
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_positive_expire_time (default: 31d)
مدت زمانی که پس از آن یک پروب موفق از حافظه پنهان تایید آدرس منقضی میشود.
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض d (روز) است.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_positive_refresh_time (default: 7d)
مدت زمانی که پس از آن یک پروب تایید آدرس موفق نیازمند تازهسازی است. در صورت ناموفق بودن پروب، وضعیت تایید آدرس بهروزرسانی نمیشود (حافظه پنهان خوشبینانه).
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض d (روز) است.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_relay_transport (default: $relay_transport)
تنظیمات پارامتر relay_transport را برای پروبهای تایید آدرس لغو و جایگزین میکند.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_relayhost (default: $relayhost)
تنظیمات پارامتر relayhost را برای پروبهای تایید آدرس لغو و جایگزین میکند. این اطلاعات را میتوان توسط جدول transport(5) باطل کرد.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_sender (default: $double_bounce_sender)
آدرس فرستندهای که در پروبهای تایید آدرس استفاده میشود؛ پیش از Postfix 2.5 مقدار پیشفرض «postmaster» بود. برای جلوگیری از بروز مشکل در پروبهای آدرسی که در پاسخ به پروبهای آدرس دیگر ارسال میشوند، کارگزار SMTP در Postfix آدرس فرستنده پروب را از تمامی مسدودسازیهای دسترسی SMTPD مستثنی میکند.
اگر میخواهید از آدرس فرستنده تهی استفاده کنید، یک مقدار خالی (address_verify_sender =) یا <> را مشخص کنید. توجه داشته باشید که برخی سایتها ایمیلهای دریافتی از <> را رد میکنند، حتی اگر RFCها پذیرش چنین آدرسهایی را الزامی دانسته باشند.
مثالها:
address_verify_sender = <> address_verify_sender = postmaster@mydomain
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_sender_dependent_default_transport_maps (default: $sender_dependent_default_transport_maps)
تنظیمات پارامتر sender_dependent_default_transport_maps را برای پروبهای تایید آدرس لغو و جایگزین میکند.
این ویژگی در Postfix نگارش 2.7 و بالاتر در دسترس است.
address_verify_sender_dependent_relayhost_maps (default: $sender_dependent_relayhost_maps)
تنظیمات پارامتر sender_dependent_relayhost_maps را برای پروبهای تایید آدرس لغو و جایگزین میکند.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
address_verify_sender_ttl (default: 0s)
مدت زمان بین تغییرات در بخش وابسته به زمانِ آدرسهای فرستنده پروب تایید آدرس. بخش وابسته به زمان به بخش محلی (localpart) آدرس تعیینشده با پارامتر address_verify_sender ضمیمه میشود. این ویژگی زمانی که آدرس فرستنده پروب همان فرستنده تهی باشد (یعنی مقدار address_verify_sender خالی یا <> باشد) نادیده گرفته میشود.
از نظر تاریخی، آدرس فرستنده پروب ثابت بود. این امر موجب شد تا این آدرسها سر از لیستهای پستی هرزنامهنگاران درآورند و به هدر رفتن منابع شبکه و پردازش منتهی شود.
برای فعالسازی آدرسهای فرستنده پروب وابسته به زمان، یک مقدار زمانی غیرصفر تعیین کنید. مقداری دستکم چند ساعته تعیین کنید تا از بروز مشکل با فرستندگانی که از لیست خاکستری (greylisting) استفاده میکنند جلوگیری شود. از مقادیر سرراست و رند برای TTL بپرهیزید تا نتیجه کمتر قابل پیشبینی باشد.
یک مقدار زمانی غیرمنفی تعیین کنید (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix نگارش 2.9 و بالاتر در دسترس است.
address_verify_service_name (default: verify)
نام سرویس تایید آدرس verify(8). این سرویس وضعیت پروبهای تایید آدرس فرستنده و/یا گیرنده را نگهداری میکند، و بنا به درخواست سایر فرایندهای Postfix اقدام به ایجاد پروب مینماید.
address_verify_transport_maps (default: $transport_maps)
تنظیمات پارامتر transport_maps را برای پروبهای تایید آدرس لغو و جایگزین میکند.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
address_verify_virtual_transport (default: $virtual_transport)
تنظیمات پارامتر virtual_transport را برای پروبهای تایید آدرس لغو و جایگزین میکند.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
alias_database (default: see postconf -d output)
پایگاهدادههای نام مستعار (alias) برای تحویل local(8) که با دستور «newaliases» یا «sendmail -bi» بهروزرسانی میشوند.
این یک پارامتر پیکربندی جداگانه است زیرا تمام جدولهای تعیینشده با alias_maps$ لزوماً فایلهای محلی نیستند.
مثالها:
alias_database = $default_database_type:/etc/aliases alias_database = lmdb:/etc/aliases alias_database = lmdb:/etc/mail/aliases
به جای :lmdb، برخی سیستمها از :cdb، :hash یا :dbm استفاده میکنند.
alias_maps (default: see postconf -d output)
جدولهای جستجوی اختیاری که تنها با بخش محلی (localpart) آدرس ایمیل (بدون دامنه) جستجو میشوند و فقط برای گیرندگان local(8) اعمال میگردند؛ این بر خلاف virtual_alias_maps است که اغلب با آدرس کامل ایمیل (شامل دامنه) جستجو میشود و برای همه گیرندگان اعمال میگردد: local(8)، مجازی (virtual) و از راه دور (remote). قالب جدول alias_maps و جستجوهای آن در aliases(5) مستند شده است. برای بررسی کلی دستکاریهای آدرس در Postfix، سند ADDRESS_REWRITING_README را ببینید.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله یا کاما از هم جدا شدهاند. جدولها به ترتیب مشخصشده تا زمان یافتن یک تطابق جستجو خواهند شد. نکته: این جستجوها بازگشتی (recursive) هستند.
فهرست پیشفرض وابسته به سیستم است. در سیستمهای مجهز به NIS، پیشفرض ابتدا جستجوی پایگاهداده محلی نامهای مستعار و سپس پایگاهداده نامهای مستعار NIS است.
عامل تحویل local(8) جایگزینی عبارت منظم $1 و غیره را در alias_maps مجاز نمیداند، زیرا این کار یک رخنه امنیتی ایجاد میکند.
عامل تحویل local(8) درخواستهای استفاده از کارگزار proxymap(8) را در alias_maps بی سر و صدا نادیده میگیرد. در عوض جدول را مستقیماً باز میکند. پیش از Postfix نسخه 2.2، عامل تحویل local(8) با یک خطای مهلک متوقف میشد.
مثالها:
alias_maps = $default_database_type:/etc/aliases, nis:mail.aliases alias_maps = $default_database_type:/etc/aliases alias_maps = lmdb:/etc/mail/aliases alias_maps = lmdb:/etc/aliases
به جای lmdb:، برخی سیستمها از cdb:، hash: یا dbm: استفاده میکنند.
دستور "postalias /path/to/aliases" را پس از تغییر فایل aliases اجرا کنید تا یک فایل نمایهسازیشده از نوع پیشفرض (مجدداً) ساخته شود. برای تعیین نوع صریح، دستور "postalias type:/path/to/aliases" را اجرا کنید.
نوع پیشفرض فایل نمایهسازیشده با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن انواع صریح موجود، دستور "postconf -m" را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه قابل مشاهده خواهند بود. برای حذف این تاخیر، از "postfix reload" استفاده کنید.
allow_mail_to_commands (default: alias, forward)
تحویل ایمیل local(8) به دستورات خارجی را محدود میکند. پیشفرض این است که تحویل به "|command" در فایلهای :include: مجاز نباشد (برای مشاهده متنی که این اصطلاحات را تعریف میکند، به aliases(5) مراجعه کنید).
صفر یا چند مورد از: alias، forward یا include را مشخص کنید تا به ترتیب اجرای دستورات در aliases(5)، فایلهای .forward یا در فایلهای :include: مجاز شود.
مثال:
allow_mail_to_commands = alias,forward,include
allow_mail_to_files (default: alias, forward)
تحویل ایمیل local(8) به فایلهای خارجی را محدود میکند. پیشفرض این است که مقصدهای "/file/name" در فایلهای :include: غیرمجاز باشند (برای مشاهده متنی که این اصطلاحات را تعریف میکند، به aliases(5) مراجعه کنید).
صفر یا چند مورد از: alias، forward یا include را مشخص کنید تا به ترتیب مقصدهای "/file/name" در aliases(5)، فایلهای .forward و فایلهای :include: مجاز شوند.
مثال:
allow_mail_to_files = alias,forward,include
allow_min_user (default: no)
به آدرس فرستنده یا گیرنده اجازه میدهد که `-' نویسه اول آن باشد. بهطور پیشفرض، برای جلوگیری از بروز حادثه در نرمافزارهایی که آدرسهای ایمیل را از طریق خط فرمان منتقل میکنند، این کار مجاز نیست. چنین نرمافزارهایی قادر به تفکیک آدرس مخرب از یک گزینه خط فرمان معتبر نیستند. اگرچه میتوان با درج پایاندهنده گزینه "--" در خط فرمان از این امر جلوگیری کرد، اما اعمال هماهنگ و سراسری آن دشوار است.
از Postfix نسخه 2.5، این ویژگی توسط trivial-rewrite(8) پیادهسازی شده است. در نسخههای قبلی، این ویژگی توسط qmgr(8) پیادهسازی میشد و تنها به آدرسهای گیرنده محدود بود.
allow_percent_hack (default: yes)
بازنویسی ساختار "user%domain" به "user@domain" را فعال میکند. این گزینه بهطور پیشفرض فعال است.
نکته: از Postfix نسخه 2.2، بازنویسی آدرس سربرگ پیام تنها زمانی رخ میدهد که یکی از شرایط زیر برقرار باشد:
- پیام توسط دستور sendmail(1) مربوط به Postfix دریافت شده باشد،
- پیام از یک کلاینت شبکه منطبق با $local_header_rewrite_clients دریافت شده باشد،
- پیام از
شبکه
دریافت شده
باشد و
پارامتر
remote_header_rewrite_domain
مقداری
غیرخالی
داشته باشد.
برای فعالسازی رفتار موجود در نسخههای پیش از Postfix 2.2، مقدار "local_header_rewrite_clients = static:all" را تعیین کنید.
مثال:
allow_percent_hack = no
allow_srv_lookup_fallback (default: no)
هنگامی که جستجوی رکورد SRV با شکست مواجه میشود یا رکورد SRV وجود ندارد، به جستجوی رکورد MX یا آدرس IP بازمیگردد، درست مانند زمانی که جستجوی رکورد SRV فعال نبوده است.
این قابلیت در Postfix نسخه 3.8 و بعد از آن در دسترس است.
allow_untrusted_routing (default: no)
هدایت ایمیل با مسیریابی مشخصشده توسط فرستنده (user[@%!]remote[@%!]site) از کلاینتهای غیرقابلاعتماد به مقصدهای منطبق با $relay_domains.
این ویژگی بهطور پیشفرض غیرفعال است. این امر یک روزنه خطرناک بازپخش باز (open relay) را میبندد که در آن ممکن است یک میزبان MX پشتیبان فریب خورده و نامههای هرز را به یک میزبان MX اصلی هدایت کند تا سپس در سراسر جهان منتشر شوند.
این پارامتر همچنین تطابق آدرسهای غیرمحلی دارای مسیریابی مشخصشده توسط فرستنده را با جدولهای دسترسی Postfix کنترل میکند. بهطور پیشفرض، چنین آدرسهایی نمیتوانند با جدولهای دسترسی Postfix تطابق داشته باشند زیرا آدرس مبهم است.
alternate_config_directories (default: empty)
فهرستی از دایرکتوریهای غیرپیشفرض پیکربندی Postfix که میتوان آنها را با "-c config_directory" در خط فرمان (در مورد sendmail(1) با گزینه "-C") یا از طریق متغیر محیطی MAIL_CONFIG مشخص کرد.
این فهرست باید در فایل پیشفرض main.cf مربوط به Postfix تعیین شود، و توسط دستورات دارای set-gid در Postfix مانند postqueue(1) و postdrop(1) استفاده خواهد شد.
مسیرهای مطلق را که با کاما یا فاصله جدا شدهاند مشخص کنید. نکته: بسط متغیرهای نامگذاریشده مانند $name پشتیبانی نمیشود.
always_add_missing_headers (default: no)
همیشه سربرگهای (Resent-) From:، To:، Date: یا Message-ID: را در صورت عدم وجود اضافه میکند. Postfix 2.6 و بالاتر این سربرگها را فقط زمانی اضافه میکنند که کلاینتها با تنظیم پارامتر local_header_rewrite_clients مطابقت داشته باشند. نسخههای قبلی Postfix همیشه این سربرگها را اضافه میکردند؛ این امر ممکن است امضاهای DKIM را که سربرگهای ناموجود را پوشش میدهند خراب کند. تنظیم پارامتر undisclosed_recipients_header تعیین میکند که آیا سربرگ To: اضافه شود یا خیر.
always_bcc (default: empty)
آدرس اختیاری که یک «رونوشت پنهان» (BCC) از هر پیام دریافت شده توسط سیستم ایمیل Postfix را دریافت میکند.
نکته: در Postfix 2.3 و بالاتر، آدرس BCC به گونهای اضافه میشود که گویی با NOTIFY=NONE مشخص شده است. تا زمانی که کلیه نرمافزارهای پاییندست RFC 3461 را پیادهسازی کنند، در صورت عدم تحویل به آدرس BCC، هشداری به فرستنده ارسال نخواهد شد.
نکته: در Postfix 2.2 و قبل از آن، در صورت عدم تحویل آدرس BCC، به فرستنده هشدار داده میشود.
نکته: گیرندگان خودکار BCC فقط برای نامههای جدید تولید میشوند. جهت جلوگیری از تشکیل حلقههای نامهرسانی (loops)، گیرندگان خودکار BCC پس از اینکه Postfix نامه را به صورت داخلی بازفرستاد، یا پس از اینکه خود Postfix نامهای را تولید کرد، ایجاد نمیشوند.
نکته: گیرندگان خودکار BCC مشمول استانداردسازی آدرس (افزودن دامنه ناموجود)، canonical_maps، masquerade_domains و virtual_alias_maps هستند.
anvil_rate_time_unit (default: 60s)
واحد زمانی که نرخ اتصال کلاینت و سایر نرخها بر اساس آن محاسبه میشوند.
این ویژگی توسط سرویس anvil(8) پیادهسازی شده که در Postfix نسخه 2.2 و بالاتر موجود است.
بازه پیشفرض نسبتاً کوتاه است. به دلیل بسامد بالای بهروزرسانیها، کارگزار anvil(8) فقط از حافظه فرار استفاده میکند. از این رو، با هر بار خاتمه فرایند، اطلاعات از بین میرود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
anvil_status_update_time (default: 600s)
توالی زمانی ثبت اطلاعات اوج مصرف توسط کارگزار محدودکننده نرخ و اتصال anvil(8) در لاگ.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix 2.2 و بعد از آن موجود است.
append_at_myorigin (default: yes)
در نامههایی که به صورت محلی ثبت میشوند، رشته "@$myorigin" را به آدرسهای ایمیل فاقد اطلاعات دامنه اضافه میکند. در نامههایی که از راه دور ثبت میشوند، به جای آن رشته "@$remote_header_rewrite_domain" را اضافه میکند.
نکته ۱: این ویژگی بهطور پیشفرض فعال است و نباید خاموش شود. Postfix از آدرسهای بدون دامنه پشتیبانی نمیکند.
نکته ۲: در Postfix نسخه 2.2، بازنویسی آدرس در سربرگ پیام تنها زمانی رخ میدهد که یکی از شرایط زیر برقرار باشد:
- پیام توسط دستور sendmail(1) مربوط به Postfix دریافت شده باشد،
- پیام از یک کلاینت شبکه منطبق با $local_header_rewrite_clients دریافت شده باشد،
- پیام از
شبکه
دریافت شده
باشد و
پارامتر
remote_header_rewrite_domain
مقداری
غیرخالی
داشته باشد.
برای فعالسازی رفتار موجود در نسخههای پیش از Postfix 2.2، مقدار "local_header_rewrite_clients = static:all" را تعیین کنید.
append_dot_mydomain (default: Postfix >= 3.0: no, Postfix < 3.0: yes)
در نامههایی که به صورت محلی ثبت میشوند، رشته ".$mydomain" را به آدرسهای فاقد اطلاعات ".domain" اضافه میکند. در نامههایی که از راه دور ثبت میشوند، رشته ".$remote_header_rewrite_domain" را به جای آن اضافه میکند.
نکته ۱: در صورت غیرفعال بودن (Postfix 3.0 و جدیدتر)، کاربران نمیتوانند به "user@partialdomainname" ایمیل ارسال کنند، بلکه باید نامهای دامنه کامل را مشخص کنند.
نکته ۲: در Postfix نسخه 2.2، بازنویسی آدرس سربرگ پیام تنها زمانی رخ میدهد که یکی از شرایط زیر برقرار باشد:
- پیام توسط دستور sendmail(1) مربوط به Postfix دریافت شده باشد،
- پیام از یک کلاینت شبکه منطبق با $local_header_rewrite_clients دریافت شده باشد،
- پیام از
شبکه
دریافت شده
باشد و
پارامتر
remote_header_rewrite_domain
مقداری
غیرخالی
داشته باشد.
برای فعالسازی رفتار موجود در نسخههای پیش از Postfix 2.2، مقدار "local_header_rewrite_clients = static:all" را تعیین کنید.
application_event_drain_time (default: 100s)
مدت زمانی که دستور postkick(1) قبل از انصراف، برای ورود یک درخواست به بافر ورودی فرایند دیمن Postfix منتظر میماند.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix 2.1 و بعد از آن در دسترس است.
authorized_flush_users (default: static:anyone)
فهرست کاربرانی که مجاز به خالی کردن صف (flush) هستند.
بهطور پیشفرض، تمام کاربران مجاز به خالی کردن صف هستند. دسترسی همواره در صورتی که کاربر فراخواننده کاربر ارشد (super-user) یا کاربر $mail_owner باشد داده میشود. در غیر این صورت، UID واقعی فرایند در فایل گذرواژه سیستم جستجو شده و دسترسی تنها در صورتی اعطا میشود که نام کاربری مربوطه در فهرست دسترسی موجود باشد. نام کاربری "unknown" برای فرایندهایی که UID واقعی آنها در فایل گذرواژه یافت نشود به کار میرود.
فهرستی از نامهای کاربری، الگوهای "/file/name" یا "type:table" را که با کاما و/یا فاصله جدا شدهاند مشخص کنید. فهرست از چپ به راست ارزیابی شده و جستجو در نخستین تطابق متوقف میشود. یک الگوی "/file/name" با محتویات آن جایگزین میشود؛ یک جدول جستجوی "type:table" زمانی مطابقت مییابد که یک نام با یک کلید جستجو تطابق داشته باشد (نتیجه جستجو نادیده گرفته میشود). خطوط طولانی را با شروع خط بعدی با فاصله ادامه دهید. برای مستثنی کردن یک نام از فهرست، "!pattern" را مشخص کنید. ساختار "!/file/name" تنها در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
این ویژگی در Postfix 2.2 و بعد از آن موجود است.
authorized_mailq_users (default: static:anyone)
فهرست کاربرانی که مجاز به مشاهده صف هستند.
بهطور پیشفرض، همه کاربران مجاز به مشاهده صف هستند. دسترسی همواره در صورتی که کاربر فراخواننده کاربر ارشد (super-user) یا کاربر $mail_owner باشد اعطا میشود. در غیر این صورت، UID واقعی فرایند در فایل گذرواژه سیستم جستجو میشود و دسترسی تنها در صورتی داده خواهد شد که نام کاربری متناظر در فهرست دسترسی وجود داشته باشد. نام کاربری "unknown" برای فرایندهایی استفاده میشود که UID واقعی آنها در فایل گذرواژه موجود نیست.
فهرستی از نامهای کاربری، الگوهای "/file/name" یا "type:table" را که با کاما و/یا فاصله جدا شدهاند مشخص کنید. فهرست از چپ به راست ارزیابی شده و جستجو در اولین تطابق متوقف میشود. یک الگوی "/file/name" با محتویات آن جایگزین میگردد؛ یک جدول جستجوی "type:table" زمانی مطابقت دارد که یک نام با یک کلید جستجو مطابقت یابد (نتیجه جستجو نادیده گرفته میشود). خطوط طولانی را با شروع خط بعدی با فاصله ادامه دهید. برای مستثنی کردن یک نام کاربری از فهرست، "!pattern" را مشخص کنید. ساختار "!/file/name" فقط در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
این ویژگی در Postfix 2.2 و بعد از آن موجود است.
authorized_submit_users (default: static:anyone)
فهرست کاربرانی که مجاز به ارسال نامه با دستور sendmail(1) (و با دستور کمکی ممتاز postdrop(1)) هستند.
بهطور پیشفرض، همه کاربران مجاز به ارسال نامه هستند. در غیر این صورت، UID واقعی فرایند در فایل گذرواژه سیستم بررسی میشود و دسترسی تنها در صورتی داده خواهد شد که نام کاربری مربوطه در فهرست دسترسی قرار داشته باشد. نام کاربری "unknown" برای فرایندهایی که UID واقعی آنها در فایل گذرواژه یافت نمیشود استفاده میگردد. برای منع دسترسی ارسال نامه برای تمام کاربران، یک فهرست خالی مشخص کنید.
فهرستی از نامهای کاربری، الگوهای "/file/name" یا "type:table" را که با کاما و/یا فاصله جدا شدهاند مشخص کنید. فهرست از چپ به راست ارزیابی شده و جستجو در اولین تطابق متوقف میشود. الگوی "/file/name" با محتویات آن جایگزین میشود؛ جدول جستجوی "type:table" هنگامی منطبق میشود که نام با کلید جستجو مطابقت پیدا کند (نتیجه جستجو نادیده گرفته میشود). خطوط طولانی را با شروع خط بعدی با فاصله ادامه دهید. برای مستثنی کردن یک نام کاربری از فهرست، "!pattern" را وارد کنید. ساختار "!/file/name" فقط در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
مثال:
authorized_submit_users = !www, static:all
این قابلیت در Postfix 2.2 و جدیدتر در دسترس است.
authorized_verp_clients (default: $mynetworks)
کلاینتهای راه دور SMTP که مجاز به تعیین دستور XVERP هستند. این دستور درخواست میکند که نامه هر بار برای یک گیرنده و همراه با آدرس بازگشتی مجزا برای هر گیرنده تحویل داده شود.
بهطور پیشفرض، تنها کلاینتهای مورد اعتماد مجاز به مشخص کردن XVERP هستند.
این پارامتر در Postfix نسخه 1.1 معرفی شد. Postfix نسخه 2.1 نام این پارامتر را به smtpd_authorized_verp_clients تغییر داد و پیشفرض آن را به none تغییر داد.
فهرستی از الگوهای network/netmask جدا شده با کاما و/یا فاصله را مشخص کنید. ماسک، تعداد بیتها را در بخش شبکه آدرس میزبان مشخص میکند. شما همچنین میتوانید نامهای میزبان یا دامنههای .domain (نقطه آغازین باعث تطابق دامنه با تمام نامهای زیرمجموعه آن میشود)، الگوهای "/file/name" یا "type:table" را مشخص کنید. الگوی "/file/name" با محتویات آن جایگزین میشود؛ جدول جستجوی "type:table" هنگامی تطبیق مییابد که یک مدخل جدول با رشته جستجو مطابقت کند (نتیجه جستجو نادیده گرفته میشود). خطوط طولانی را با شروع خط بعدی با فاصله ادامه دهید. برای مستثنی کردن یک آدرس یا بلوک شبکه از فهرست، "!pattern" را مشخص کنید. ساختار "!/file/name" فقط در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
نکته: اطلاعات آدرسهای پروتکل اینترنت نسخه ۶ (IPv6) باید در داخل [] در مقدار authorized_verp_clients و همچنین در فایلهای تعیینشده با "/file/name" قرار گیرد. آدرسهای پروتکل اینترنت نسخه ۶ شامل نویسه ":" هستند و در غیر این صورت ممکن است با الگوی "type:table" اشتباه گرفته شوند.
backwards_bounce_logfile_compatibility (default: yes)
رکوردهای بیشتری در فایل لاگ bounce(8) ایجاد میکند که توسط نسخههای Postfix قبل از 2.0 قابل خواندن باشند. قالب فعلی و توسعهپذیرتر "name = value" برای پیادهسازی عملکردهای پیشرفتهتر مورد نیاز است.
این ویژگی در Postfix نسخهٔ 2.1 و بالاتر در دسترس است.
berkeley_db_create_buffer_size (default: 16777216)
اندازهٔ بافر ورودی/خروجی (I/O) به ازای هر جدول برای برنامههایی که جدولهای hash یا btree در Berkeley DB را ایجاد میکنند. مقدار را بر حسب بایت مشخص کنید.
این ویژگی در Postfix نسخهٔ 2.0 و بالاتر در دسترس است.
berkeley_db_read_buffer_size (default: 131072)
اندازهٔ بافر ورودی/خروجی (I/O) به ازای هر جدول برای برنامههایی که جدولهای hash یا btree در Berkeley DB را میخوانند. مقدار را بر حسب بایت مشخص کنید.
این ویژگی در Postfix نسخهٔ 2.0 و بالاتر در دسترس است.
best_mx_transport (default: empty)
مقصدی که کلاینت SMTP در Postfix هنگام تشخیص شرایط خطای «mail loops back to myself» (حلقه زدن ایمیل به خود) باید پیام را به آن تحویل دهد. این حالت زمانی رخ میدهد که MTA محلی بهترین مبادلهکنندهٔ ایمیل (MX) در SMTP برای مقصدی باشد که در $mydestination، $inet_interfaces، $proxy_interfaces، $virtual_alias_domains یا $virtual_mailbox_domains فهرست نشده است. به طور پیشفرض، کلاینت SMTP در Postfix چنین نامهای را به عنوان غیرقابلتحویل بازمیگرداند.
به عنوان مثال، برای انتقال نامه از کلاینت SMTP در Postfix به عامل تحویل local(8)، مقدار "best_mx_transport = local" را مشخص کنید. میتوانید هر «transport» یا «transport:nexthop» تعریفشده برای تحویل پیام در فایل master.cf را تعیین کنید. برای نحو و مفهوم «transport» یا «transport:nexthop» به صفحهٔ راهنمای transport(5) مراجعه کنید.
با این حال، این ویژگی پرهزینه است زیرا تا زمانی که عامل تحویل local(8) کار خود را انجام میدهد، یک فرایند کلاینت SMTP در Postfix را مشغول نگه میدارد. برای Postfix کارآمدتر است که تمام دامنههای میزبانیشده در یک جدول یا پایگاه داده فهرست شوند.
biff (default: yes)
استفاده یا عدم استفاده از سرویس محلی biff. این سرویس اعلانهای «ایمیل جدید» را برای کاربرانی ارسال میکند که با دستور یونیکس «biff y» درخواست اعلان ایمیل جدید کردهاند.
به دلایل سازگاری، این ویژگی بهطور پیشفرض فعال است. در سیستمهایی با کاربران تعاملی متعدد، سرویس biff میتواند باعث افت کارایی شود. برای غیرفعال کردن، "biff = no" را در main.cf مشخص کنید.
body_checks (default: empty)
جدولهای اختیاری جستجو برای بازرسی محتوا، همانطور که در صفحهٔ راهنمای body_checks(5) مشخص شده است.
نکته: در نسخههای Postfix قبل از 2.0، این قوانین تمام محتوای پس از هدرهای اصلی پیام را بررسی میکنند.
body_checks_size_limit (default: 51200)
میزان متنی از بخش بدنهٔ پیام (یا ضمیمه، در صورت تمایل به استفاده از این اصطلاح) که تحت بازرسی body_checks قرار میگیرد. مقدار متن برای جلوگیری از اسکن ضمیمههای بسیار بزرگ محدود شده است.
این ویژگی در Postfix نسخهٔ 2.0 و بالاتر در دسترس است.
bounce_notice_recipient (default: postmaster)
گیرندهٔ اعلانهای postmaster حاوی هدرهای پیام نامههایی که Postfix تحویل نداده است، و رونوشت مکالمات SMTP نامههایی که Postfix دریافت نکرده است. این ویژگی با پارامتر notify_classes فعال میشود.
bounce_queue_lifetime (default: 5d)
در نظر گرفتن پیام برگشتی (bounce) به عنوان غیرقابلتحویل، زمانی که تحویل با یک خطای موقت با شکست مواجه شده و زمان حضور در صف به حد bounce_queue_lifetime رسیده باشد. بهطور پیشفرض، این محدودیت همانند نامههای معمولی است.
یک مقدار زمانی غیرمنفی تعیین کنید (یک عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی عبارتند از: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض d (روز) است.
در صورتی که تحویل نامه فقط باید یک بار تلاش شود، مقدار 0 را مشخص کنید.
این ویژگی در Postfix نسخهٔ 2.1 و بالاتر در دسترس است.
bounce_service_name (default: bounce)
نام سرویس bounce(8). این سرویس سوابق تلاشهای ناموفق برای تحویل را نگهداری کرده و اعلانهای عدم تحویل را تولید میکند.
این ویژگی در Postfix نسخهٔ 2.0 و بالاتر در دسترس است.
bounce_size_limit (default: 50000)
حداکثر مقدار متن پیام اصلی که در یک اعلان عدم تحویل ارسال میشود. مقدار را بر حسب بایت مشخص کنید. پیام یا بهصورت message/rfc822 (اصل پیام بهطور کامل) و یا بهصورت text/rfc822-headers (تنها هدرها) بازگردانده میشود. در Postfix نسخهٔ 2.4 و قبل از آن، پیام همیشه بهصورت message/rfc822 بازگردانده شده و در صورت فراتر رفتن از حد مجاز، کوتاه (truncated) میشود.
نکات:
- در صورت افزایش این محدودیت، باید مقدار mime_nesting_limit را نیز به همان نسبت افزایش دهید.
- هنگام
ایجاد
تغییرات
مراقب
باشید.
مقادیر بیش
از حد بزرگ
باعث از دست
رفتن
اعلانهای
عدم تحویل
میشوند،
زمانی که
اندازهٔ یک
پیام
برگشتی از
حد مجاز
اندازهٔ
پیام در MTA
محلی یا راه
دور فراتر
رود.
bounce_template_file (default: empty)
مسیر فایل پیکربندی حاوی الگوهای پیام برگشتی (bounce). این الگوها بر الگوهای توکار پیامهای اعلان وضعیت تحویل (DSN) برای ایمیلهای غیرقابلتحویل، ایمیلهای با تأخیر، تحویل موفقیتآمیز، یا تأیید تحویل اولویت دارند. صفحهٔ راهنمای bounce(5) نحوهٔ ویرایش و آزمایش فایلهای الگو را شرح میدهد.
متن بدنهٔ پیام در الگو میتواند شامل ارجاعات $name به پارامترهای پیکربندی Postfix باشد. نتیجهٔ بسط $name را میتوان پیش از قرار دادن فایل در دایرکتوری پیکربندی Postfix، با دستور «postconf -b file_name» پیشنمایش کرد.
این ویژگی در Postfix نسخهٔ 2.3 و بالاتر در دسترس است.
broken_sasl_auth_clients (default: no)
فعالسازی سازگاری با کلاینتهای SMTP راه دور که نسخهٔ منسوخ دستور AUTH (RFC 4954) را پیادهسازی میکنند. نمونههایی از این کلاینتها عبارتند از MicroSoft Outlook Express نسخهٔ 4 و MicroSoft Exchange نسخهٔ 5.0.
برای اینکه Postfix پشتیبانی از AUTH را به روشی غیر استاندارد اعلان کند، مقدار "broken_sasl_auth_clients = yes" را مشخص کنید.
canonical_classes (default: envelope_sender, envelope_recipient, header_sender, header_recipient)
آدرسهایی که مشمول نگاشت آدرس canonical_maps هستند. به طور پیشفرض، نگاشت آدرس canonical_maps بر آدرسهای فرستنده و گیرنده در پاکت (envelope) و آدرسهای فرستنده و گیرنده در هدر (header) اعمال میشود.
یک یا چند مورد از موارد زیر را مشخص کنید: envelope_sender، envelope_recipient، header_sender، header_recipient
این ویژگی در Postfix نسخهٔ 2.2 و بالاتر در دسترس است.
canonical_maps (default: empty)
جدولهای اختیاری جستجوی نگاشت آدرس برای هدرها و پاکتهای پیام. نگاشت بر روی هر دو آدرس فرستنده و گیرنده، هم در پاکتها و هم در هدرها، طبق کنترلی که با پارامتر canonical_classes انجام میشود، اعمال میگردد. این ویژگی معمولاً برای پاکسازی آدرسهای نامناسب سیستمهای قدیمی ایمیل، یا جایگزینی نامهای کاربری لاگین با Firstname.Lastname استفاده میشود. ساختار جدول و جستجوها در canonical(5) مستند شده است. برای بررسی اجمالی دستکاریهای آدرس در Postfix، سند ADDRESS_REWRITING_README را مشاهده کنید.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله یا کاما از یکدیگر جدا شدهاند. جدولها به ترتیب مشخصشده تا زمان یافتن یک تطابق جستجو خواهند شد. نکته: این جستجوها بازگشتی (recursive) هستند.
نکته: در Postfix نسخهٔ 2.2، نگاشت آدرس هدر پیام تنها زمانی انجام میشود که بازنویسی آدرس هدر پیام فعال باشد:
- پیام با دستور sendmail(1) در Postfix دریافت شده باشد،
- پیام از یک کلاینت شبکهای دریافت شده باشد که با $local_header_rewrite_clients مطابقت دارد،
- پیام از
شبکه
دریافت شده
باشد، و
پارامتر
remote_header_rewrite_domain
مقداری
غیرخالی
مشخص کرده
باشد.
برای دستیابی به رفتار قبل از Postfix نسخهٔ 2.2، مقدار "local_header_rewrite_clients = static:all" را تعیین کنید.
مثالها:
canonical_maps = lmdb:/etc/postfix/canonical
به جای lmdb:، برخی سیستمها از cdb:، hash: یا dbm: استفاده میکنند.
پس از تغییر دادن فایل canonical، دستور "postmap /etc/postfix/canonical" را برای (باز)ساخت فایل نمایهشده از نوع پیشفرض اجرا کنید. برای تعیین یک نوع صریح، دستور "postmap type:/etc/postfix/canonical" را اجرا نمایید.
نوع فایل نمایهشدهٔ پیشفرض با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن انواع صریح موجود، دستور "postconf -m" را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه نمایان خواهند شد. برای رفع این تأخیر، از "postfix reload" استفاده کنید.
cleanup_replace_stray_cr_lf (default: yes)
هر نویسهٔ سرگردان <CR> یا <LF> در محتوای پیام را با یک نویسهٔ فاصله جایگزین میکند تا از قاچاق SMTP خروجی (outbound SMTP smuggling) جلوگیری شود، و ارزیابی امضاهای DKIM یا سایر امضاهای اضافهشده توسط Postfix از نحوهٔ مدیریت این نویسهها توسط سرور ایمیل راه دور مستقل گردد.
پروتکل SMTP چنین نویسههایی را مجاز نمیداند مگر اینکه بخشی از یک توالی <CR><LF> باشند، و سیستمهای ایمیل مختلف این نویسههای سرگردان را به شیوهای وابسته به پیادهسازی خود مدیریت میکنند. نویسههای سرگردان <CR> یا <LF> میتوانند برای قاچاق SMTP خروجی استفاده شوند؛ جایی که مهاجم از یک سرور Postfix برای ارسال محتوای پیامی با توالی غیراستاندارد End-of-DATA استفاده میکند که موجب تحریک قاچاق SMTP ورودی در سرور SMTP راه دور میشود.
این جایگزینی پیش از تمام مدیریتهای دیگر محتوا و قبل از اینکه Postfix احیاناً امضای DKIM و غیره را اضافه کند انجام میشود؛ اگر ابتدا امضا ایجاد میشد، این جایگزینی میتوانست امضا را باطل کند.
علاوه بر جلوگیری از قاچاق SMTP، جایگزینی نویسههای سرگردان <CR> یا <LF> تضمین میکند که نتیجهٔ اعتبارسنجی امضا توسط سیستمهای ایمیل بعدی، به نحوهٔ مدیریت وابسته به پیادهسازی آن نویسههای سرگردان در آن سیستمهای ایمیل بستگی نخواهد داشت.
نکته: این ویژگی با "receive_override_options = no_header_body_checks" غیرفعال میشود.
این ویژگی در Postfix نسخههای >= 3.9، 3.8.5، 3.7.10، 3.6.14 و 3.5.24 در دسترس است.
cleanup_service_name (default: cleanup)
نام سرویس cleanup(8). این سرویس آدرسها را به شکل استاندارد بازنویسی میکند، و نگاشت آدرس canonical(5) و نامهای مستعار virtual(5) را انجام میدهد.
این ویژگی در Postfix نسخهٔ 2.0 و بالاتر در دسترس است.
command_directory (default: see postconf -d output)
محل قرارگیری تمام دستورهای مدیریتی Postfix.
command_execution_directory (default: empty)
دایرکتوری کاری عامل تحویل local(8) برای تحویل به دستورهای خارجی. عدم موفقیت در تغییر دایرکتوری باعث به تعویق افتادن تحویل میشود.
مقدار command_execution_directory مشمول بسط پارامتر پیکربندی $name در Postfix نیست. در عوض، بسطهای $name زیر قبل از استفاده از دایرکتوری، بر روی command_execution_directory انجام میشوند. بسط در بستر درخواست تحویل صورت میگیرد. نتیجهٔ بسط $name با مجموعه نویسههای مشخصشده در پارامتر execution_directory_expansion_filter پالایش میشود.
- $user
- نام کاربری
گیرنده.
- $shell
- مسیر
پوستهٔ
ورود به
سیستم
گیرنده.
- $home
- دایرکتوری
خانگی
گیرنده.
- $recipient
- آدرس کامل
گیرنده.
- $extension
- پسوند
اختیاری
آدرس
گیرنده.
- $domain
- دامنهٔ
گیرنده.
- $local
- کل بخش محلی
گیرنده.
- $recipient_delimiter
- جداکنندهٔ
پسوند آدرس
که در آدرس
گیرنده
یافت شده
است (Postfix نسخهٔ
2.11 و بالاتر)،
یا
جداکنندهٔ
سراسری
پسوند آدرس
گیرنده در
سیستم (Postfix
نسخهٔ 2.10 و
قبلتر).
- ${name?value}
- ${name?{value}} (Postfix >= 3.0)
- در صورتی که
$name غیرخالی
باشد، به value
بسط
مییابد.
- ${name:value}
- ${name:{value}} (Postfix >= 3.0)
- در صورتی که
$name خالی
باشد، به value
بسط
مییابد.
- ${name?{value1}:{value2}} (Postfix >= 3.0)
- در صورتی که
$name غیرخالی
باشد به value1،
و در غیر
این صورت به
value2 بسط
مییابد.
به جای $name میتوانید ${name} یا $(name) را نیز مشخص کنید.
این ویژگی در Postfix نسخهٔ 2.2 و بالاتر در دسترس است.
command_expansion_filter (default: see postconf -d output)
محدود کردن نویسههایی که عامل تحویل local(8) در بسطهای $name مربوط به $mailbox_command و $command_execution_directory مجاز میداند. نویسههای خارج از مجموعهٔ مجاز با خط زیرین (underscore) جایگزین میشوند.
command_time_limit (default: 1000s)
محدودیت زمانی برای تحویل به دستورهای خارجی. این محدودیت توسط عامل تحویل local(8) استفاده میشود، و محدودیت زمانی پیشفرض برای تحویل توسط عامل تحویل pipe(8) است.
نکته: در صورت تنظیم این محدودیت زمانی روی مقداری بزرگ، باید پارامتر عمومی ipc_timeout را نیز بهروزرسانی کنید.
compatibility_level (default: 0)
یک شبکهٔ ایمنی که باعث میشود Postfix پس از ارتقا به نسخهٔ جدیدتر Postfix، با تنظیمات پیشفرض سازگار با گذشته اجرا شود.
با روشن بودن سازگاری با نسخههای پیشین (زمانی که مقدار compatibility_level در main.cf کمتر از مقدار توکار Postfix باشد)، Postfix به دنبال تنظیماتی میگردد که روی مقدار پیشفرض ضمنی خود رها شدهاند، و هنگامی که تنظیم پیشفرض سازگار با گذشته مورد نیاز باشد، پیامی را لاگ میکند.
using backwards-compatible default setting name=value
to [accept a specific client request]
using backwards-compatible default setting name=value
to [enable specific Postfix behavior]
برای جزئیات پیامهای خاص به COMPATIBILITY_README مراجعه کنید. اگر چنین پیامی در چارچوب یک درخواست معتبر لاگ شود، مدیر سیستم باید تنظیم سازگار با نسخههای پیشین را در main.cf یا master.cf دائمی کند، به عنوان مثال:
# postconf name=value # postfix reload
هنگامی که دیگر نیازی به دائمی کردن تنظیمات سازگار با گذشته نباشد، مدیر باید سازگاری با نسخههای پیشین را با بهروزرسانی تنظیم compatibility_level در main.cf غیرفعال کند:
# postconf compatibility_level=N # postfix reload
برای N شمارهای را مشخص کنید که در پیام هشدار postfix(1) شما ثبت شده است:
warning: To disable backwards compatibility use "postconf
compatibility_level=N" and "postfix reload"
از Postfix نسخهٔ 3.6 به بعد، سطح سازگاری در پیام هشدار بالا، نسخهٔ Postfix است که آخرین تغییر ناسازگار را معرفی کرده است. این سطح به صورت major.minor.patch قالببندی میشود، که در آن معمولاً patch حذف میشود و پیشفرض آن صفر است. سطوح سازگاری قبلی 0، 1 و 2 هستند.
نکته: این مورد همچنین پشتیبانی از عملگرهای "<level" ،"<=level" و سایر عملگرها را برای مقایسهٔ سطوح سازگاری معرفی میکند. با عملگرهای استاندارد "<" ،"<=" و غیره، سطح سازگاری "3.10" کوچکتر از "3.9" ارزیابی میشد که نامطلوب است.
این ویژگی در Postfix نسخهٔ 3.0 و بالاتر در دسترس است.
config_directory (default: see postconf -d output)
مکان پیشفرض فایلهای پیکربندی main.cf و master.cf در Postfix. این مقدار میتواند از طریق سازوکارهای زیر بازنویسی شود:
- متغیر محیطی MAIL_CONFIG (فرایندهای دیمن و دستورها).
- گزینه خط
فرمان «-c»
(تنها
دستورها).
در دستورهای Postfix که با دسترسیهای set-gid اجرا میشوند، بازنویسی config_directory یا نیازمند دسترسیهای ریشه (root) است، یا مستلزم آن است که دایرکتوری مورد نظر در پارامتر alternate_config_directories در فایل main.cf پیشفرض فهرست شده باشد.
confirm_delay_cleared (default: no)
پس از ارسال اعلان «پیام شما با تأخیر مواجه شده است»، برطرف شدن تأخیر را به فرستنده اطلاع میدهد. این امر میتواند در پایان قطعیهای طولانیمدت شبکه به هجوم ناگهانی اعلانها منجر شود، و بنابراین بهطور پیشفرض غیرفعال است.
همچنین ببینید: delay_warning_time.
این قابلیت در Postfix نسخه 3.0 و بالاتر در دسترس است.
connection_cache_protocol_timeout (default: 5s)
محدودیت زمانی برای عملیات اتصال، ارسال یا دریافت در حافظه موقت اتصال (connection cache). این محدودیت زمانی در سمت کلاینت اعمال میشود.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
connection_cache_service_name (default: scache)
نام سرویس حافظه موقت اتصال scache(8). این سرویس مخزن محدودی از نشستهای ذخیرهشده را نگهداری میکند.
این قابلیت در Postfix نسخه 2.2 و بالاتر در دسترس است.
connection_cache_status_update_time (default: 600s)
فاصله زمانی ثبت آمار مصرف در لاگ توسط کارگزار scache(8)، شامل نرخهای موفقیت (hit) و عدم موفقیت (miss) حافظه موقت اتصال برای مقصدهای منطقی و نقاط پایانی فیزیکی.
connection_cache_ttl_limit (default: 2s)
حداکثر مقدار طول عمر (TTL) مجاز توسط کارگزار حافظه موقت اتصال scache(8). درخواستهایی که مقدار TTL بزرگتری مشخص کنند با حداکثر TTL مجاز ذخیره خواهند شد. هدف از این کنترل اضافی، محافظت از زیرساخت در برابر پیکربندیهای بیدقت است. مقدار TTL حافظه موقت پیش از این توسط $max_idle محدود شده است.
content_filter (default: empty)
پس از قرار گرفتن پیام در صف، کل پیام را به transport:destination مشخصشده ارسال میکند. نام transport فیلد نخست از تعریف عامل تحویل ایمیل را در master.cf مشخص میسازد؛ نحو نگارش مقصد گام بعدی (destination) در صفحه راهنمای عامل تحویل مربوطه شرح داده شده است. اطلاعات بیشتر درباره فیلترهای محتوای خارجی در فایل FILTER_README مربوط به Postfix آمده است.
نکات:
- این تنظیم اولویت پایینتری نسبت به اقدام FILTER مشخصشده در جدولهای access(5)، header_checks(5) یا body_checks(5) دارد.
- معنای خالی
بودن destination در
فیلتر گام
بعدی به
نسخه بستگی
دارد. Postfix نسخه
2.7 و بالاتر
از دامنه
گیرنده
استفاده
میکنند؛
نسخههای
قبلی از $myhostname
استفاده
خواهند کرد.
برای
سازگاری با
Postfix نسخه 2.6 یا
قدیمیتر،
مقدار "default_filter_nexthop =
$myhostname" را مشخص
کنید، یا یک
مقدار content_filter با
مقصد گام
بعدی (destination)
صریح تعیین
نمایید.
cyrus_sasl_config_path (default: empty)
مسیر جستجو برای فایلهای پیکربندی برنامه Cyrus SASL، که در حال حاضر تنها برای یافتن فایل $smtpd_sasl_path.conf به کار میرود. صفر یا چند دایرکتوری را که با علامت دونقطه از هم جدا شدهاند مشخص کنید، یا مقدار را خالی بگذارید تا از مسیر جستجوی داخلی Cyrus SASL استفاده شود.
نکته: برخی از توزیعهای Postfix بر پایه دبیان، تنظیم پارامتر "cyrus_sasl_config_path" را نادیده میگیرند و Postfix را وادار به باز کردن فایل <code>/etc/postfix/sasl/smtpd.conf</code> میکنند.
این قابلیت در Postfix نسخه 2.5 و بالاتر در صورت کامپایل شدن با Cyrus SASL 2.1.22 یا بالاتر در دسترس است.
daemon_directory (default: see postconf -d output)
دایرکتوری حاوی برنامههای پشتیبان و برنامههای دیمن Postfix. این برنامهها نباید مستقیماً توسط انسان فراخوانی شوند. مالکیت دایرکتوری باید متعلق به کاربر ریشه (root) باشد.
daemon_table_open_error_is_fatal (default: no)
نحوه مدیریت خطاها هنگام باز کردن جدولهای جستجو (lookup tables) توسط فرایند دیمن Postfix: افت تدریجی کارایی یا توقف فوری.
- no (پیشفرض)
- افت تدریجی
کارایی:
فرایند
دیمن پیامی
از نوع "error"
ثبت میکند
و با عملکرد
کاهشیافته
به اجرا
ادامه
میدهد.
قابلیتهایی
که به جدول
در
دسترسنبوده
وابسته
نیستند به
صورت عادی
کار
میکنند،
در حالی که
قابلیتهای
وابسته به
آن جدول
منجر به
پیامی از
نوع "warning"
میشوند.
هنگامی که مقدار پارامتر notify_classes شامل کلاس "data" باشد، کارگزار و کلاینت SMTP در Postfix رونوشت نشستهایی را که به دلیل در دسترس نبودن جدول با خطا مواجه شدهاند، گزارش میدهند.
- yes (رفتار پیشین)
- توقف فوری:
فرایند
دیمن پیامی
از نوع "fatal"
ثبت کرده و
فوراً
خاتمه
مییابد.
این گزینه
تعداد
مسیرهای
ممکن کد در Postfix
را کاهش
میدهد و
بنابراین
ممکن است
کمی امنتر
از حالت
پیشفرض
باشد.
برای حفظ پایداری سیستم، تعداد پیامهای از نوع "error" در طول چرخه حیات یک فرایند دیمن به 13 محدود شده است.
این قابلیت در Postfix نسخه 2.9 و بالاتر در دسترس است.
daemon_timeout (default: 18000s)
حداکثر زمانی که یک فرایند دیمن Postfix میتواند پیش از توقف توسط تایمر نگهبان (watchdog) داخلی، صرف رسیدگی به یک درخواست کند.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
data_directory (default: see postconf -d output)
دایرکتوری حاوی فایلهای داده با دسترسی نوشتن برای Postfix (برای مثال: حافظههای موقت، اعداد شبهتصادفی). مالکیت این دایرکتوری باید در اختیار حساب کاربری mail_owner باشد و نباید با نرمافزارهای غیر Postfix به اشتراک گذاشته شود.
این قابلیت در Postfix نسخه 2.5 و بالاتر در دسترس است.
debug_peer_level (default: 2)
میزان افزایش در سطح لاگگیری تفصیلی (verbose) هنگامی که مقصد گام بعدی، کلاینت راه دور یا نام کارگزار یا آدرس شبکه با الگوی ارائهشده در پارامتر debug_peer_list مطابقت داشته باشد.
ثبت لاگ اشکالزدایی به ازای گام بعدی (per-nexthop) در Postfix نسخه 3.6 و بالاتر در دسترس است.
debug_peer_list (default: empty)
فهرست اختیاری از مقصدهای گام بعدی، کلاینتهای راه دور، نامهای کارگزار یا الگوهای آدرس شبکه که در صورت مطابقت، سبب افزایش سطح لاگگیری تفصیلی به میزان مشخصشده در $debug_peer_level میشود.
ثبت لاگ اشکالزدایی به ازای گام بعدی (per-nexthop) در Postfix نسخه 3.6 و بالاتر در دسترس است.
نامهای دامنه، الگوهای شبکه/نتماسک، الگوهای "/file/name" یا جدولهای جستجوی "type:table" را مشخص کنید. مقدار سمت راست حاصل از جستجوهای "type:table" نادیده گرفته میشود. آدرسهای IPv6 باید درون [] محصور شوند.
تطبیق الگوی نامهای دامنه توسط حضور یا عدم حضور "debug_peer_list" در مقدار پارامتر parent_domain_matches_subdomains کنترل میشود.
مثالها:
debug_peer_list = 127.0.0.1 debug_peer_list = example.com
debugger_command (default: empty)
دستور خارجی برای اجرا در زمانی که یک برنامه دیمن Postfix با گزینه -D فراخوانی میشود.
از "command .. & sleep 5" استفاده کنید تا اشکالزدا (debugger) بتواند پیش از ادامه فرایند، به آن متصل شود. اگر از اشکالزدای مبتنی بر واسط گرافیکی X استفاده میکنید، پیش از راهاندازی Postfix حتماً متغیر محیطی XAUTHORITY خود را تنظیم نمایید.
نکته: این دستور قبل از ارسال به مفسر دستور پیشفرض، تحت بسط نام ($name expansion) قرار میگیرد. برای درج کاراکتر تکی «$»، عبارت «$$» را مشخص کنید.
مثال:
debugger_command =
PATH=/usr/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
default_cache_db_type (default: see 'postconf -d default_cache_db_type' output)
نوع پایگاه داده پیشفرض برای address_verify_map و postscreen_cache_map. پیش از Postfix نسخه 3.11 این حافظههای موقت بهطور پیشفرض از btree استفاده میکردند.
این قابلیت در Postfix نسخه 3.11 و بالاتر در دسترس است.
default_database_type (default: see postconf -d output)
نوع پایگاه داده پیشفرض برای استفاده در دستورهای newaliases(1)، postalias(1) و postmap(1). در بسیاری از سیستمهای UNIX نوع پیشفرض lmdb یا hash است. تنظیم پیشفرض در زمان ساخت (build) سیستم Postfix تثبیت میشود.
مثالها:
default_database_type = lmdb default_database_type = hash
default_delivery_slot_cost (default: 5)
میزان مجازی که زمانبند مدیر صف Postfix میتواند تحویل یک پیام را با پیامی دیگر پیشدستی (preempt) کند.
هر ترابری یک بهاصطلاح «شمارنده شکاف تحویل موجود» را برای هر پیام نگهداری میکند. یک پیام میتواند زمانی توسط پیام دیگری پیشدستی شود که پیام دیگر بتواند با استفاده از شکافهای تحویلی نه بیشتر از آنچه شمارنده پیام فعلی اندوخته است (یا در نهایت خواهد اندوخت - بخش وام شکاف در زیر را ببینید)، تحویل داده شود (یعنی فراخوانیهای عوامل تحویل). این پارامتر کنترل میکند که شمارنده با چه فواصل زمانی افزایش یابد - این امر پس از تحویل هر default_delivery_slot_cost گیرنده رخ میدهد.
هزینه 0 برای غیرفعال کردن کامل زمانبندی پیشدستانه به کار میرود. حداقل مقداری که الگوریتم زمانبندی میتواند استفاده کند 2 است - در صورت تمایل به حداکثر رساندن نرخ تبادل پیام، از آن استفاده کنید. اگرچه حداکثری وجود ندارد، اما استفاده از مقادیر بالاتر از 50 چندان منطقی نیست.
تنها دلیلی که مقدار 2 پیشفرض نیست، نحوه تأثیرگذاری این پارامتر بر تحویل نامههای فهرست پستی (mailing list) است. در بدترین حالت، تحویل میتواند بین (cost+1/cost) تا (cost/cost-1) برابر بیشتر از زمان غیرفعال بودن زمانبند پیشدستانه طول بکشد. مقدار پیشفرض 5 زمانهای پاسخگویی مناسبی برای پیامها فراهم میآورد و تضمین میکند تحویل نامههای فهرست پستی حتی در بدترین شرایط بیش از 20 تا 25 درصد تمدید نشود.
از transport_delivery_slot_cost برای تعیین یک بازنویسی ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
مثالها:
default_delivery_slot_cost = 0 default_delivery_slot_cost = 2
default_delivery_slot_discount (default: 50)
مقدار پیشفرض برای تنظیمات _delivery_slot_discount ویژه هر ترابری.
این پارامتر زمان امکان وقوع پیشدستی پیام را جلو میاندازد. به جای انتظار تا زمان فراهم شدن کل شکافهای تحویل مورد نیاز، پیشدستی میتواند زمانی رخ دهد که هنوز transport_delivery_slot_discount درصد از مقدار مورد نیاز به اضافه transport_delivery_slot_loan برای اندوخته شدن باقی مانده باشد. توجه داشته باشید که کل مقدار همچنان باید پیش از وقوع یک پیشدستی دیگر در دفعات بعد، اندوخته شود.
از transport_delivery_slot_discount برای تعیین یک بازنویسی ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
default_delivery_slot_loan (default: 3)
مقدار پیشفرض برای تنظیمات _delivery_slot_loan ویژه هر ترابری.
این پارامتر زمان امکان وقوع پیشدستی پیام را جلو میاندازد. به جای انتظار تا زمان فراهم شدن کل شکافهای تحویل مورد نیاز، پیشدستی میتواند زمانی رخ دهد که هنوز transport_delivery_slot_discount درصد از مقدار مورد نیاز به اضافه transport_delivery_slot_loan برای اندوخته شدن باقی مانده باشد. توجه داشته باشید که کل مقدار همچنان باید پیش از وقوع یک پیشدستی دیگر در دفعات بعد، اندوخته شود.
از transport_delivery_slot_loan برای تعیین یک بازنویسی ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
default_delivery_status_filter (default: empty)
فیلتر اختیاری در عوامل تحویل Postfix، به منظور جایگزینی کد وضعیت تحویل یا متن توضیحی تحویلهای موفق یا ناموفق. این پارامتر اجازه میدهد کد وضعیت خطای موقت (4.X.X) با یک کد وضعیت خطای دائم (5.X.X) یا برعکس جایگزین شود، اما اجازه جایگزینی کد وضعیت موفق (2.X.X) با کد وضعیت ناموفق (4.X.X یا 5.X.X) یا برعکس را نمیدهد.
نکته: فیلتر (smtp|lmtp)_delivery_status_filter فقط یکبار به ازای هر گیرنده اعمال میشود: هنگامی که تحویل موفقیتآمیز باشد، هنگامی که تحویل با کد 5XX رد شود، یا زمانی که هیچ مقصد جایگزین دیگری از نوع MX یا A باقی نمانده باشد. برای بررسی پاسخها در تمامی تلاشهای تحویل، از smtp_reply_filter یا lmtp_reply_filter استفاده کنید.
پارامترهای زیر میتوانند برای پیادهسازی فیلتر در عوامل تحویل مشخص به کار روند: lmtp_delivery_status_filter، local_delivery_status_filter، pipe_delivery_status_filter، smtp_delivery_status_filter یا virtual_delivery_status_filter. این پارامترها از همان نحو فیلتر که در اینجا توضیح داده شده است پشتیبانی میکنند.
صفر یا چند نام جدول جستجوی "type:table" را که با ویرگول یا فاصله از هم جدا شدهاند مشخص کنید. برای هر تحویل موفق یا ناموفق به یک گیرنده، جدولها به ترتیب مشخصشده با یک خط متن با ساختار زیر پرسوجو میشوند:
enhanced-status-code SPACE explanatory-text
نخستین تطبیق در جدول پذیرفته میشود. نتیجه جستجو باید دارای همان ساختار پرسوجو باشد، یک کد وضعیت موفق (2.X.X) باید با یک کد وضعیت موفق جایگزین شود، یک کد وضعیت ناموفق (4.X.X یا 5.X.X) باید با یک کد وضعیت ناموفق جایگزین شود، و فیلد متن توضیحی باید غیرخالی باشد. سایر نتایج منجر به هشدار خواهند شد.
مثال 1: تبدیل خطاهای موقت TLS به خطاهای دائم، با بازنویسی رقم اول در کد وضعیت پیشرفته (enhanced status code).
/etc/postfix/main.cf:
smtp_delivery_status_filter = pcre:/etc/postfix/smtp_dsn_filter
/etc/postfix/smtp_dsn_filter:
/^4(\.\d+\.\d+ TLS is required, but host \S+ refused to start TLS: .+)/
5$1
/^4(\.\d+\.\d+ TLS is required, but was not offered by host .+)/
5$1
# Do not change the following into hard bounces. They may
# result from a local configuration problem.
# 4.\d+.\d+ TLS is required, but our TLS engine is unavailable
# 4.\d+.\d+ TLS is required, but unavailable
# 4.\d+.\d+ Cannot start TLS: handshake failure
مثال 2: سانسور متن وضعیت تحویل به ازای گیرنده، بهگونهای که هنگام درخواست تأیید تحویل موفق از سوی فرستنده راه دور، دستور مقصد یا نام فایل فاش نشود.
/etc/postfix/main.cf:
local_delivery_status_filter = pcre:/etc/postfix/local_dsn_filter
/etc/postfix/local_dsn_filter:
/^(2\S+ delivered to file).+/ $1
/^(2\S+ delivered to command).+/ $1
نکات:
- این ویژگی شبکه ایمنی soft_bounce را نادیده نخواهد گرفت.
- این ویژگی،
کد وضعیت
بهبودیافته
و متنی را
که در فایل maillog
ثبت میشود
و در
اعلانهای
تأیید
تحویل یا
عدم تحویل
به فرستنده
گزارش
میشود،
تغییر
میدهد.
این ویژگی در Postfix نسخه 3.0 و بالاتر در دسترس است.
default_destination_concurrency_failed_cohort_limit (default: 1)
چه تعداد شبهگروه (pseudo-cohort) باید دچار شکست در اتصال یا دستدادن (handshake) شوند تا یک مقصد خاص غیرقابلدسترس در نظر گرفته شود (و تحویلهای بعدی معلق گردد). مقدار صفر را برای غیرفعال کردن این ویژگی مشخص کنید. شمارش شکست شبهگروه یک مقصد، هر بار که یک تحویل بدون شکست در اتصال یا دستدادن برای آن مقصد خاص کامل شود، بازنشانی میشود.
یک شبهگروه، تعداد تحویلهایی برابر با همزمانی تحویل یک مقصد است.
از transport_destination_concurrency_failed_cohort_limit برای تعیین یک مقدار جایگزین ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
این ویژگی در Postfix نسخه 2.5 در دسترس است. تنظیم پیشفرض با نسخههای پیشین Postfix سازگار است.
default_destination_concurrency_limit (default: 20)
حداکثر تعداد پیشفرض تحویلهای موازی به یک مقصد یکسان. این محدودیت پیشفرض برای تحویل از طریق عاملهای تحویل lmtp(8)، pipe(8)، smtp(8) و virtual(8) است. با حد گیرنده به ازای مقصد > 1، یک مقصد یک دامنه است؛ در غیر این صورت یک گیرنده است.
از transport_destination_concurrency_limit برای تعیین مقدار جایگزین ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
default_destination_concurrency_negative_feedback (default: 1)
میزان بازخورد منفی همزمانی تحویل به ازای مقصد، پس از آنکه یک تحویل با شکست در اتصال یا دستدادن مواجه شد. مقادیر بازخورد در بازه 0..1 (شامل هر دو) قرار دارند. با بازخورد منفی، همزمانی در آغاز یک توالی به طول 1/feedback کاهش مییابد. این برعکس بازخورد مثبت است که در آن همزمانی در انتهای یک توالی به طول 1/feedback افزایش مییابد.
از Postfix نسخه 2.5، بازخورد منفی نمیتواند همزمانی تحویل را به صفر کاهش دهد. در عوض، یک مقصد پس از آنکه شمار شبهگروههای ناموفق به $default_destination_concurrency_failed_cohort_limit (یا $transport_destination_concurrency_failed_cohort_limit) رسید، مرده (dead) علامتگذاری میشود (تحویلهای بعدی معلق میگردد). برای اینکه زمانبند کاملاً در برابر شکستهای اتصال یا دستدادن مصون شود، یک مقدار بازخورد صفر و یک حد شبهگروه ناموفق صفر تعیین کنید.
یکی از شکلهای زیر را مشخص کنید:
- number
- number / number
- بازخورد
ثابت. مقدار
باید در
بازه 0..1 (شامل
هر دو) باشد.
تنظیم
پیشفرض "1"
با
نسخههای Postfix
پیش از 2.5
سازگار
است، جایی
که همزمانی
تحویل یک
مقصد پس از
تنها یک
شبهگروه
ناموفق به
صفر کاهش
یافته (و
تحویلهای
بعدی معلق)
میشد.
- number / concurrency
- بازخورد
متغیر به
صورت "number /
(همزمانی
تحویل)". number
باید در
بازه 0..1 (شامل
هر دو) باشد.
با number برابر
با "1"،
همزمانی
تحویل یک
مقصد پس از
هر
شبهگروه
ناموفق 1
واحد کاهش
مییابد.
یک شبهگروه، تعداد تحویلهایی برابر با همزمانی تحویل یک مقصد است.
از transport_destination_concurrency_negative_feedback برای تعیین مقدار جایگزین ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
این ویژگی در Postfix نسخه 2.5 در دسترس است. تنظیم پیشفرض با نسخههای پیشین Postfix سازگار است.
default_destination_concurrency_positive_feedback (default: 1)
میزان بازخورد مثبت همزمانی تحویل به ازای مقصد، پس از تکمیل یک تحویل بدون شکست در اتصال یا دستدادن. مقادیر بازخورد در بازه 0..1 (شامل هر دو) قرار دارند. همزمانی افزایش مییابد تا زمانی که به حد اکثر همزمانی به ازای مقصد برسد. با بازخورد مثبت، همزمانی در انتهای یک توالی با طول 1/feedback افزایش مییابد. این برعکس بازخورد منفی است که در آن همزمانی در ابتدای یک توالی به طول 1/feedback کاهش مییابد.
یکی از شکلهای زیر را مشخص کنید:
- number
- number / number
- بازخورد
ثابت. مقدار
باید در
بازه 0..1 (شامل
هر دو) باشد.
مقدار
پیشفرض "1"
با
نسخههای Postfix
پیش از 2.5
سازگار
است، که در
آن همزمانی
تحویل مقصد
پس از هر
شبهگروه
موفق دو
برابر
میشود.
- number / concurrency
- بازخورد
متغیر به
صورت "number /
(همزمانی
تحویل)". number
باید در
بازه 0..1 (شامل
هر دو) باشد.
با number برابر
با "1"،
همزمانی
تحویل مقصد
پس از هر
شبهگروه
موفق 1 واحد
افزایش
مییابد.
یک شبهگروه، تعداد تحویلهایی برابر با همزمانی تحویل یک مقصد است.
از transport_destination_concurrency_positive_feedback برای تعیین مقدار جایگزین ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
این ویژگی در Postfix نسخه 2.5 و بالاتر در دسترس است.
default_destination_rate_delay (default: 0s)
مقدار تأخیر پیشفرضی که بین تحویل پیامهای منفرد به همان مقصد و روی همان ترابری تحویل پیام درج میشود. برای محدود کردن نرخ این تحویلهای پیام به حداکثر یک پیام در هر $default_destination_rate_delay، یک مقدار غیر صفر مشخص کنید.
رفتار حاصل به مقدار حد گیرنده به ازای مقصد متناظر بستگی دارد.
- با حد گیرنده به ازای مقصد متناظر > 1، تأخیر نرخ، زمان بین تحویلها به same domain (همان دامنه) را مشخص میکند. دامنههای مختلف به صورت موازی، مشروط به محدودیتهای پردازه مشخصشده در master.cf، تحویل داده میشوند.
- با حد
گیرنده به
ازای مقصد
متناظر
برابر با 1،
تأخیر نرخ،
زمان بین
تحویلها
به same recipient (همان
گیرنده) را
مشخص
میکند.
گیرندههای
مختلف به
صورت
موازی،
مشروط به
محدودیتهای
پردازه
مشخصشده
در master.cf،
تحویل داده
میشوند.
برای فعال کردن تأخیر، یک مقدار زمانی غیر صفر (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند) تعیین کنید.
واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
نکته: تأخیر توسط مدیر صف اعمال میشود. وضعیت تایمر تأخیر پس از «postfix reload» یا «postfix stop» حفظ نمیشود.
از transport_destination_rate_delay برای تعیین مقدار جایگزین ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: با یک _destination_rate_delay غیر صفر، مقدار transport_destination_concurrency_failed_cohort_limit را 10 یا بیشتر تعیین کنید تا از به تعویق انداختن تمامی نامههای همان مقصد توسط Postfix تنها پس از یک خطای اتصال یا دستدادن جلوگیری شود.
این ویژگی در Postfix نسخه 2.5 و بالاتر در دسترس است.
default_destination_recipient_limit (default: 50)
حداکثر تعداد پیشفرض گیرندگان در هر تحویل پیام. این حد پیشفرض برای تحویل از طریق عاملهای تحویل lmtp(8)، pipe(8)، smtp(8) و virtual(8) است.
تنظیم این پارامتر روی مقدار 1 تحویلهای ایمیل را به شرح زیر تحت تأثیر قرار میدهد:
- معنای حد همزمانی به ازای مقصد متناظر را از همزمانی تحویلها به same domain (همان دامنه) به همزمانی تحویلها به same recipient (همان گیرنده) تغییر میدهد. گیرندههای مختلف به صورت موازی، مشروط به محدودیتهای پردازه مشخصشده در master.cf تحویل داده میشوند.
- معنای تأخیر نرخ به ازای مقصد متناظر را از تأخیر بین تحویلها به same domain (همان دامنه) به تأخیر بین تحویلها به same recipient (همان گیرنده) تغییر میدهد. مجدداً، گیرندههای مختلف به صورت موازی، مشروط به محدودیتهای پردازه مشخصشده در master.cf تحویل داده میشوند.
- معنای سایر
تنظیمات
متناظر به
ازای مقصد
را به روشی
مشابه، از
تنظیمات
تحویل به same
domain (همان
دامنه) به
تنظیمات
تحویل به same
recipient (همان
گیرنده)
تغییر
میدهد.
از transport_destination_recipient_limit برای تعیین مقدار جایگزین ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
default_extra_recipient_limit (default: 1000)
مقدار پیشفرض برای حد اضافی به ازای ترابری که بر تعداد گیرندگان درون حافظه اعمال میشود. این فضای اضافی گیرنده برای مواردی رزرو شده است که زمانبند مدیر صف Postfix یک پیام را بر پیام دیگر مقدم (preempt) میکند و ناگهان برای جلوگیری از افت کارایی، به اسلاتهای گیرنده اضافی برای پیام انتخابشده نیاز پیدا میکند.
از transport_extra_recipient_limit برای تعیین مقدار جایگزین ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
default_filter_nexthop (default: empty)
هنگامی که یک درخواست content_filter یا FILTER هیچ مقصد گامبعدی (next-hop) صریحی را مشخص نمیکند، به جای آن از $default_filter_nexthop استفاده کنید؛ زمانی که این مقدار خالی است، از دامنه موجود در آدرس گیرنده استفاده کنید. برای سازگاری با Postfix نسخه 2.6 و پیش از آن، مقدار "default_filter_nexthop = $myhostname" را مشخص کنید، یا برای هر مقدار content_filter یا کنش FILTER یک مقصد گامبعدی صریح تعیین نمایید.
این ویژگی در Postfix نسخه 2.7 و بالاتر در دسترس است.
default_minimum_delivery_slots (default: 3)
یک پیام باید حداقل چه تعداد گیرنده داشته باشد تا الگوریتم زمانبندی مدیر صف Postfix اصلاً فراخوانی شود. پیامهایی که هرگز حداقل به این تعداد اسلات تحویل نرسند (همچنین مشروط به پارامتر هزینه اسلات)، هرگز قبضه (preempt) نمیشوند.
از transport_minimum_delivery_slots برای تعیین مقدار جایگزین ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
default_privs (default: nobody)
حقوق و دسترسیهای پیشفرض مورداستفاده توسط عامل تحویل local(8) برای تحویل به یک فایل یا دستور خارجی. این دسترسیها زمانی استفاده میشوند که تحویل از یک فایل aliases(5) تحت مالکیت root درخواست شود، یا تحویل از طرف root انجام پذیرد. یک کاربر دارای دسترسی ویژه یا مالک POSTFIX را مشخص نکنید.
default_process_limit (default: 100)
حداکثر تعداد پیشفرض پردازههای فرزند Postfix که یک سرویس مشخص را ارائه میدهند. این محدودیت میتواند برای سرویسهای خاص در فایل master.cf باطل و جایگزین شود.
default_rbl_reply (default: see postconf -d output)
قالب پاسخ پیشفرض کارگزار SMTP نرمافزار Postfix برای درخواستی که توسط یک محدودیت مبتنی بر RBL رد شده است. این قالب میتواند با ورودیهای مشخص در جدول جستجوی اختیاری rbl_reply_maps باطل و جایگزین شود.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
این قالب از جایگزینی پارامتر پیکربندی Postfix به صورت $name پشتیبانی نمیکند. در عوض، دقیقاً از یک سطح جایگزینی $name برای ویژگیهای زیر پشتیبانی میکند:
- $client
- نام میزبان
و نشانی IP
کلاینت، در
قالب name[address].
- $client_address
- نشانی IP
کلاینت.
- $client_name
- نام میزبان
کلاینت یا
"unknown". برای
جزئیات
بیشتر به
reject_unknown_client_hostname
مراجعه
کنید.
- $reverse_client_name
- نام میزبان
کلاینت از
جستجوی address->name،
یا "unknown". برای
جزئیات
بیشتر به
reject_unknown_reverse_client_hostname
مراجعه
کنید.
- $helo_name
- نام میزبان
داده شده در
دستور HELO یا EHLO
یا یک رشته
خالی.
- $rbl_class
- نوع
موجودیت
فهرستسیاهشده:
Client host، Helo command، Sender address،
یا Recipient address.
- $rbl_code
- کد عددی
پاسخ SMTP، به
صورتی که با
پارامتر
پیکربندی
maps_rbl_reject_code مشخص
شده است.
نکته: کد
عددی پاسخ SMTP
الزامی است
و باید در
ابتدای
پاسخ ظاهر
شود. در Postfix
نسخه 2.3 و
بالاتر این
اطلاعات
ممکن است با
یک کد وضعیت
بهبودیافته
RFC 3463 دنبال
شود.
- $rbl_domain
- دامنه RBL
(بدون
هیچگونه
=address-filter) که $rbl_what در
آن
فهرستسیاه
شده است.
- $rbl_reason
- دلیل اینکه
چرا $rbl_what
فهرستسیاه
شده است، یا
یک رشته
خالی.
- $rbl_what
- موجودیتی
که
فهرستسیاه
شده است (یک
نشانی IP، یک
نام
میزبان، یک
نام دامنه،
یا یک نشانی
ایمیل که
دامنه آن
فهرستسیاه
شده بود).
- $recipient
- نشانی
گیرنده یا <>
در صورت
نشانی تهی (null).
- $recipient_domain
- دامنه
گیرنده یا
رشته خالی.
- $recipient_name
- بخش محلی (localpart)
نشانی
گیرنده یا <>
در صورت
نشانی تهی.
- $sender
- نشانی
فرستنده یا
<> در صورت
نشانی تهی (null).
- $sender_domain
- دامنه
فرستنده یا
رشته خالی.
- $sender_name
- بخش محلی (localpart)
نشانی
فرستنده یا
<> در صورت
نشانی تهی.
- ${name?value}
- ${name?{value}} (Postfix >= 3.0)
- در صورتی که
$name غیرخالی
باشد، به value
گسترش
مییابد.
- ${name:value}
- ${name:{value}} (Postfix >= 3.0)
- در صورتی که
$name خالی
باشد، به value
گسترش
مییابد.
- ${name?{value1}:{value2}} (Postfix >= 3.0)
- در صورتی که
$name غیرخالی
باشد به value1 و
در غیر این
صورت به value2
گسترش
مییابد.
به جای $name همچنین میتوانید ${name} یا $(name) را مشخص کنید.
نکته: هنگامی که یک کد وضعیت بهبودیافته در قالب پاسخ RBL مشخص میشود، مشمول اصلاح است. تبدیلات زیر در صورتی لازم است که همان قالب پاسخ RBL برای محدودیتهای دسترسی client، helo، sender یا recipient استفاده شود.
- هنگام رد یک نشانی فرستنده، کارگزار SMTP نرمافزار Postfix وضعیت DSN گیرنده (مانند 4.1.1-4.1.6) را به وضعیت DSN فرستنده متناظر تبدیل میکند و بالعکس.
- هنگام رد
اطلاعات
غیرنشانی
(مانند
آرگومان
دستور HELO یا
نام
میزبان/نشانی
کلاینت)،
کارگزار SMTP
نرمافزار
Postfix وضعیت DSN
فرستنده یا
گیرنده را
به یک وضعیت
DSN غیرنشانی
عمومی
(مانند 4.0.0)
تبدیل
میکند.
default_recipient_limit (default: 20000)
حد بالای پیشفرض به ازای ترابری برای تعداد گیرندگان درون حافظه. پس از تخصیص پیام به ترابریهای مربوطه، این محدودیتها بر qmgr_message_recipient_limit سراسری اولویت دارند. همچنین default_extra_recipient_limit و qmgr_message_recipient_minimum را ببینید.
از transport_recipient_limit برای تعیین مقدار جایگزین ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
default_recipient_refill_delay (default: 5s)
حداکثر تأخیر پیشفرض به ازای ترابری بین بازپر کردن گیرندگان. هنگامی که همه گیرندگان پیام به طور یکجا در حافظه جا نمیشوند، بارگیری تعداد بیشتری از آنها حداقل یک بار در هر این تعداد ثانیه ادامه مییابد. این مورد برای اطمینان از بازپر شدن به موقع گیرندگان استفاده میشود، حتی اگر $default_recipient_refill_limit برای تحویلهای بسیار کند خیلی بالا باشد.
از transport_recipient_refill_delay برای تعیین مقدار جایگزین ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
این ویژگی در Postfix نسخه 2.4 و بالاتر در دسترس است.
default_recipient_refill_limit (default: 100)
محدودیت پیشفرض به ازای ترابری بر تعداد گیرندگانی که در یک زمان بازپر میشوند. هنگامی که همه گیرندگان پیام به طور همزمان در حافظه جا نمیشوند، بارگیری تعداد بیشتری از آنها در دستههای حداقل به این تعداد ادامه مییابد. همچنین $default_recipient_refill_delay را ببینید که در صورتی که این محدودیت برای تحویلهای بیش از حد کند بسیار زیاد باشد، ممکن است به دستههای گیرنده کمتر از این مقدار منجر شود.
از transport_recipient_refill_limit برای تعیین مقدار جایگزین ویژه ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است.
این ویژگی در Postfix نسخه 2.4 و بالاتر در دسترس است.
default_transport (default: smtp)
ترابرد پیشفرض تحویل نامه و مقصد گام بعدی (nexthop) برای کلاس دامنه پیشفرض: دامنههای گیرندهای که با $mydestination، $inet_interfaces، $proxy_interfaces، $virtual_alias_domains، $virtual_mailbox_domains یا $relay_domains همخوانی ندارند. این اطلاعات زمانی که sender_dependent_default_transport_maps نتیجهای بازگرداند استفاده نخواهد شد و میتوان با جدول transport(5) آن را بازنویسی کرد.
برای دامنههای گیرنده در کلاس دامنه پیشفرض:
- به ترتیب کاهش اولویت، ترابرد تحویل از این موارد گرفته میشود: ۱) $transport_maps، ۲) $sender_dependent_default_transport_maps یا $default_transport.
- به ترتیب
کاهش
اولویت،
مقصد nexthop از
این موارد
گرفته
میشود: ۱)
$transport_maps، ۲) $sender_dependent_default_transport_maps
یا $default_transport، ۳)
$sender_dependent_relayhost_maps یا $relayhost
یا دامنه
گیرنده.
رشتهای به صورت transport:nexthop مشخص کنید، که در آن transport نام ترابرد تحویل نامه تعریفشده در master.cf است. مقصد :nexthop اختیاری است؛ ساختار نحوی آن در صفحه راهنمای عامل تحویل مربوطه مستند شده است. در مورد SMTP یا LMTP، یک یا چند مقصد را با کاما یا فضای خالی از هم جدا کنید (در پُستفیکس نسخه ۳.۵ و بالاتر).
مثال:
default_transport = uucp:relayhostname
default_transport_rate_delay (default: 0s)
میزان تأخیر پیشفرض که بین تحویل پیامهای جداگانه در همان ترابرد تحویل پیام درج میشود، صرفنظر از مقصد. برای محدود کردن نرخ تحویل این پیامها حداکثر به یک پیام در هر $default_transport_rate_delay، یک مقدار غیرصفر مشخص کنید.
از transport_transport_rate_delay برای مشخص کردن لغو اختصاصی برای یک ترابرد استفاده کنید، جایی که transport اولیه همان نام ترابرد تحویل پیام در master.cf است.
مثال: محدود کردن ارسال نامههای خروجی SMTP حداکثر به ۳ تحویل در دقیقه.
/etc/postfix/main.cf:
smtp_transport_rate_delay = 20s
برای فعالسازی این تأخیر، یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را تعیین میکند).
واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
نکته: این تأخیر توسط مدیر صف (queue manager) اعمال میشود.
این ویژگی در پُستفیکس ۳.۱ و بالاتر در دسترس است.
default_verp_delimiters (default: +=)
دو نویسه پیشفرض حائل برای VERP. این نویسهها زمانی استفاده میشوند که هیچ حائل صریحی با دستور SMTP XVERP یا با گزینه خط فرمان «sendmail -XV» مشخص نشده باشد (پُستفیکس ۲.۲ و پیشتر: -V). نویسههایی را مشخص کنید که توسط تنظیم verp_delimiter_filter مجاز شمرده شده باشند.
این ویژگی در پُستفیکس ۱.۱ و بالاتر در دسترس است.
defer_code (default: 450)
کد پاسخ عددی سرور SMTP پُستفیکس هنگامی که درخواست سرویسگیرنده SMTP راه دور توسط محدودیت «defer» رد میشود.
این مقدار را تغییر ندهید مگر اینکه درک کاملی از RFC 5321 داشته باشید.
defer_service_name (default: defer)
نام سرویس defer. این سرویس توسط دیمن bounce(8) پیادهسازی شده، سابقه تلاشهای ناموفق تحویل را نگهداری کرده و اعلانهای عدم تحویل را تولید میکند.
این ویژگی در پُستفیکس ۲.۰ و بالاتر در دسترس است.
defer_transports (default: empty)
نامهای ترابردهای تحویل پیامی که نباید نامه را تحویل دهند مگر اینکه کسی «sendmail -q» یا معادل آن را اجرا کند. صفر یا چند نام ترابرد تحویل نامه را که در فیلد اول master.cf ظاهر میشوند، مشخص کنید.
مثال:
defer_transports = smtp
delay_logging_resolution_limit (default: 2)
حداکثر تعداد ارقام پس از اعشار هنگام ثبت گزارش مقادیر تأخیر. عددی در بازه ۰ تا ۶ مشخص کنید.
برای بهبود خوانایی، تأخیرها تنها با تعداد محدودی رقم معنیدار ثبت میشوند:
- تأخیرهای >= 100s به یک عدد صحیح از ثانیهها گرد میشوند.
- تأخیرهای < 10^-$delay_logging_resolution_limit به «0» گرد میشوند.
- سایر
تأخیرها به
دو رقم
معنیدار
گرد
میشوند،
یا کمتر اگر
نتیجه از
delay_logging_resolution_limit فراتر
رود.
قالب ثبت گزارش «delays=a/b/c/d» به شرح زیر است:
- a = زمان سپریشده از رسیدن پیام تا آخرین ورودی صف فعال.
- b = زمان سپریشده از آخرین ورودی صف فعال تا آغاز برقراری اتصال.
- c = زمان صرفشده برای برقراری اتصال. در SMTP، این زمان تا پیش از ارسال دستور MAIL FROM است: با یک اتصال جدید، شامل جستجوهای DNS و دستتکانیهای پروتکل با TCP، EHLO و STARTTLS است؛ با یک اتصال استفادهمجدد، شامل جستجوهای DNS، جستجوی حافظه موقت اتصال بر اساس دامنه یا آدرس IP، و کاوش زندهبودن با RSET است.
- d = زمان
صرفشده در
ارسال پیام.
در SMTP، این
مرحله با
ارسال MAIL FROM
آغاز
میشود.
این ویژگی در پُستفیکس ۲.۳ و بالاتر در دسترس است.
delay_notice_recipient (default: postmaster)
گیرنده اعلانهای postmaster شامل سرآیندهای پیام نامهای که نمیتواند در بازه زمانی $delay_warning_time تحویل داده شود.
همچنین ببینید: delay_warning_time، notify_classes.
delay_warning_time (default: 0h)
مدت زمانی که پس از آن فرستنده رونوشتی از سرآیندهای پیام نامهای را که هنوز در صف مانده است دریافت میکند. پارامتر confirm_delay_cleared اعلان به فرستنده را هنگام برطرف شدن تأخیر کنترل میکند.
برای فعالسازی این ویژگی، یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را تعیین میکند).
واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض h (ساعت) است.
همچنین ببینید: delay_notice_recipient، notify_classes، confirm_delay_cleared.
deliver_lock_attempts (default: 20)
حداکثر تعداد دفعات تلاش برای گرفتن قفل انحصاری روی یک فایل صندوقپستی یا فایل گزارش bounce(8).
deliver_lock_delay (default: 1s)
مدت زمان بین تلاشها برای گرفتن قفل انحصاری روی یک فایل صندوقپستی یا فایل گزارش bounce(8).
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
destination_concurrency_feedback_debug (default: no)
پرحرف (verbose) کردن الگوریتم بازخورد مدیر صف جهت اهداف تحلیل کارایی.
این ویژگی در پُستفیکس ۲.۵ و بالاتر در دسترس است.
detect_8bit_encoding_header (default: yes)
تشخیص خودکار محتوای بدنه 8BITMIME از طریق بررسی سرآیندهای Content-Transfer-Encoding: در پیام؛ در گذشته، این رفتار به صورت سختکدگذاریشده «همیشه فعال» بود.
این ویژگی در پُستفیکس ۲.۵ و بالاتر در دسترس است.
disable_dns_lookups (default: no)
غیرفعال کردن جستجوهای DNS در سرویسگیرندههای SMTP و LMTP پُستفیکس. هنگام غیرفعال بودن، میزبانها با استفاده از تابع کتابخانهای سیستمی getaddrinfo() جستجو میشوند که به طور معمول /etc/hosts را نیز بررسی میکند. از نسخه ۲.۱۱ پُستفیکس، این پارامتر منسوخ شده است؛ به جای آن از smtp_dns_support_level استفاده کنید.
جستجوهای DNS به طور پیشفرض فعال هستند.
disable_mime_input_processing (default: no)
غیرفعال کردن پردازش MIME هنگام دریافت نامه. این بدان معناست که هیچ رفتار خاصی برای سرآیندهای پیام Content-Type: در نظر گرفته نمیشود، و تمام متن پس از سرآیندهای اولیه پیام، بخشی از بدنه پیام تلقی میگردد.
این ویژگی در پُستفیکس ۲.۰ و بالاتر در دسترس است.
پردازش ورودی MIME به طور پیشفرض فعال است و جهت شناسایی سرآیندهای MIME در محتوای پیام مورد نیاز است.
disable_mime_output_conversion (default: no)
غیرفعال کردن تبدیل قالب 8BITMIME به قالب 7BIT. تبدیل خروجی MIME زمانی مورد نیاز است که مقصد پشتیبانی از 8BITMIME را اعلان نکند.
این ویژگی در پُستفیکس ۲.۰ و بالاتر در دسترس است.
disable_verp_bounces (default: no)
غیرفعال کردن ارسال یک گزارش برگشتی (bounce) به ازای هر گیرنده.
حالت پیشفرض (یک گزارش به ازای هر گیرنده)، نیازمندی نرمافزار ezmlm است.
این ویژگی در پُستفیکس ۱.۱ و بالاتر در دسترس است.
disable_vrfy_command (default: no)
غیرفعال کردن دستور SMTP VRFY. این کار مانع از برخی شیوههای مورد استفاده برای جمعآوری نشانیهای ایمیل میشود.
مثال:
disable_vrfy_command = no
dns_ncache_ttl_fix_enable (default: no)
فعال کردن یک راهکار موقت برای ناسازگاری احتمالی libc در آینده. پیادهسازی پُستفیکس برای ذخیره موقت پاسخ منفی بر اساس RFC 2308 متکی بر این تعهد است که res_query() و res_search() تابع res_send() را فراخوانی میکنند، که پاسخ سرور را حتی در صورت عدم وجود رکورد درخواستی در یک بافر برنامه بازمیگرداند. اگر این تعهد شکسته شود، برای فعالسازی راهکار موقت جهت جستجوهای اعتبار DNS، مقدار «yes» را مشخص کنید.
این ویژگی در پُستفیکس ۳.۱ و بالاتر در دسترس است.
dnsblog_reply_delay (default: 0s)
ابزار کمکی اشکالزدایی برای ایجاد تأخیر مصنوعی در پاسخهای DNS.
این ویژگی در پُستفیکس ۲.۸ در دسترس است.
dnsblog_service_name (default: dnsblog)
نام مدخل سرویس dnsblog(8) در master.cf. این سرویس جستجوهای فهرست مجاز/مسدود (allow/denylist) سامانه DNS را انجام میدهد.
این ویژگی در پُستفیکس ۲.۸ و بالاتر در دسترس است.
dnssec_probe (default: ns:.)
نوع پرسوجوی DNS (پیشفرض: «ns») و نام پرسوجوی DNS (پیشفرض: «.») که پُستفیکس میتواند برای تعیین اینکه آیا اعتبارسنجی DNSSEC در دسترس است یا خیر استفاده کند.
پیشزمینه: اعتبارسنجی DNSSEC برای پشتیبانی DANE در پُستفیکس ضروری است؛ این امر تضمین میکند پُستفیکس رکوردهای TLSA را به همراه اطلاعات گواهی سرور امن TLS دریافت کند. هنگامی که اعتبارسنجی DNSSEC در دسترس نباشد، تحویل نامهها با استفاده از DANE فرصتطلبانه (opportunistic) توسط اطلاعات گواهی سرور در رکوردهای TLSA محافظت نمیشود، و تحویل نامهها با استفاده از DANE اجباری (mandatory) اصلاً انجام نخواهد شد.
به طور پیشفرض، یک پردازش پُستفیکس پس از شرایط زیر یک کاوش DNSSEC ارسال میکند: ۱) پردازش یک پرسوجوی DNS انجام داده باشد که درخواست اعتبارسنجی DNSSEC کرده بود، ۲) پردازش پاسخی با اعتبارسنجی DNSSEC برای این پرسوجو یا پرسوجوی قبلی دریافت نکرده باشد، و ۳) پردازش پیش از این کاوش DNSSEC ارسال نکرده باشد.
هنگامی که کاوش DNSSEC هیچ پاسخی نداشته باشد، یا هنگامی که پاسخ فاقد اعتبارسنجی DNSSEC باشد، پُستفیکس هشداری مبنی بر اینکه اعتبارسنجی DNSSEC ممکن است در دسترس نباشد ثبت میکند.
مثال:
warning: DNSSEC validation may be unavailable warning: reason: dnssec_probe 'ns:.' received a response that is not DNSSEC validated warning: reason: dnssec_probe 'ns:.' received no response: Server failure
دلایل احتمالی برای عدم دسترسی به اعتبارسنجی DNSSEC:
- فایل محلی /etc/resolv.conf تحلیلگر DNSای را مشخص کرده است که امضاهای DNSSEC را اعتبارسنجی نمیکند (هنگامی که دیمن پُستفیکس در محیط chroot jail اجرا میشود، این مسیر $queue_directory/etc/resolv.conf است).
- کتابخانه
سیستم محلی
بیت «DNSSEC validated» را
به
پُستفیکس
ارسال
نمیکند،
یا
پُستفیکس
نحوه
درخواست
چنین کاری
را از
کتابخانه
نمیداند.
به طور پیشفرض، کاوش DNSSEC رکوردهای NS ناحیه ریشه DNS را درخواست میکند، زیرا تحلیلگرها همیشه باید این اطلاعات را در حافظه موقت (cache) داشته باشند. اگر پُستفیکس در شبکهای اجرا میشود که ناحیه ریشه DNS در دسترس نیست، یک کاوش دیگر مشخص کنید، یا یک مقدار خالی برای dnssec_probe تعیین کنید تا این ویژگی غیرفعال شود.
این ویژگی در پُستفیکس ۳.۶ و بالاتر در دسترس است. این ویژگی به نسخههای پُستفیکس 3.5.9، 3.4.19، 3.3.16 و 3.2.21 نیز پورت شده است.
domain_to_ascii (default: no default)
تابعی که نمای ASCII آرگومان نام دامنه خود را برمیگرداند. اگر آرگومان فقط شامل نویسههای ASCII (۷ بیتی) باشد (قالب A-label)، تابع domain_to_ascii{} همان مقدار را برمیگرداند. اگر آرگومان حاوی یک نام دامنه غیر ASCII معتبر باشد (قالب U-label)، تابع domain_to_ascii{} معادل Punycode مربوطه را برمیگرداند (قالب A-label). مقادیر دیگر آرگومان ممکن است منجر به خطای راهاندازی برنامه شوند.
مثالها:
- مثالهای
زیر فرض
میکنند که
smtp_requiretls_policy حاوی
تنظیمات
پیشفرض
است:
smtp_requiretls_policy = inline:{ { ${domain_to_ascii{$mydomain}} = opportunistic }, { .${domain_to_ascii{$mydomain}} = opportunistic }, ... - مثال ۱:
هنگامی که mydomain
فقط شامل
نویسههای
ASCII است، domain_to_ascii{}
همان مقدار
را
بازمیگرداند.
# postconf -o 'mydomain=foo.example' -x smtp_requiretls_policy smtp_requiretls_policy = inline:{ { foo.example = opportunistic }, { .foo.example = opportunistic }, ... - مثال ۲:
هنگامی که mydomain
حاوی
نویسههای
غیر ASCII است،
domain_to_ascii{} نمای Punycode
را
بازمیگرداند.
# postconf -o 'mydomain=π.example' -x smtp_requiretls_policy smtp_requiretls_policy = inline:{ { xn--1xa.example = opportunistic }, { .xn--1xa.example = opportunistic }, ...
این ویژگی در پُستفیکس >= 3.11 در دسترس است.
dont_remove (default: 0)
فایلهای صف را حذف نکن و آنها را در صف نامه «saved» ذخیره کن. این یک ابزار کمکی برای اشکالزدایی است. برای بررسی اطلاعات پاکت و محتوای یک فایل صف پُستفیکس، از دستور postcat(1) استفاده کنید.
double_bounce_sender (default: double-bounce)
نشانی فرستنده برای اعلانهای مدیر پست (postmaster) که توسط سیستم ایمیل تولید میشوند. تمام نامهها به این نشانی بیصدا دور انداخته میشوند تا حلقههای برگشت نامه پایان یابند.
duplicate_filter_limit (default: 1000)
حداکثر تعداد آدرسهای بهخاطرسپردهشده توسط پالایه تکرار نشانیها برای گسترش نامهای مستعار aliases(5) یا virtual(5)، یا برای نمایشهای صف توسط showq(8).
empty_address_default_transport_maps_lookup_key (default: <>)
رشته جستجوی sender_dependent_default_transport_maps که به جای نشانی فرستنده تهی (null) استفاده خواهد شد.
این ویژگی در پُستفیکس ۲.۷ و بالاتر در دسترس است.
empty_address_local_login_sender_maps_lookup_key (default: <>)
کلید جستجو برای استفاده در جدولهای local_login_sender_maps بهجای آدرس فرستنده خالی (null).
این ویژگی در Postfix نسخه 3.6 و بالاتر در دسترس است.
empty_address_recipient (default: MAILER-DAEMON)
گیرنده ایمیلهایی که به نشانی خالی (null) فرستاده میشوند. Postfix چنین آدرسهایی را در دستورات SMTP نمیپذیرد، اما ممکن است در نتیجه پیکربندی اشتباه یا خطای نرمافزاری همچنان بهصورت محلی ایجاد شوند.
empty_address_relayhost_maps_lookup_key (default: <>)
رشته جستجوی sender_dependent_relayhost_maps که بهجای آدرس فرستنده خالی (null) استفاده خواهد شد.
این ویژگی در Postfix نسخه 2.5 و بالاتر موجود است. در نسخههای قبلی، جستجوهای sender_dependent_relayhost_maps برای آدرس فرستنده خالی نادیده گرفته میشدند.
enable_errors_to (default: no)
گزارش خطاهای تحویل ایمیل به آدرس مشخصشده در سرآیند غیراستاندارد Errors-To: بهجای آدرس فرستنده پاکت (این ویژگی در Postfix نسخه 2.2 حذف شد، در Postfix نسخه 2.1 بهطور پیشفرض غیرفعال است و در نسخههای قدیمیتر Postfix همیشه فعال است).
enable_idna2003_compatibility (default: no)
فعالسازی سازگاری «انتقالی» بین IDNA2003 و IDNA2008، هنگام تبدیل نامهای دامنه UTF-8 به/از قالب ASCII که برای جستجوهای DNS به کار میرود. برای سازگاری با Postfix نسخه 3.1 یا پایینتر، مقدار "yes" را مشخص کنید (توصیه نمیشود). این تنظیم بر تبدیل نامهای دامنهای که بهعنوان مثال حاوی sz آلمانی و سیگمای یونانی هستند تأثیر میگذارد. برای نمونههای بیشتر به https://unicode.org/cldr/utility/idna.jsp مراجعه کنید.
این ویژگی در Postfix نسخه 3.2 و بالاتر در دسترس است.
enable_long_queue_ids (default: no)
فعالسازی شناسههای صف (نام فایلهای صف) طولانی و غیرتکراری. مزیت نامهای غیرتکراری، تحلیل سادهتر فایل لاگ و مهاجرت آسانتر صف است (نیازی به اجرای "postsuper" برای تغییر نام فایلهای صفی که با شماره inode فایل پیام همخوانی ندارند نخواهد بود).
نکته: برای چگونگی تبدیل نامهای طولانی فایل صف به Postfix نسخه 2.8 یا پایینتر، به ادامه مراجعه کنید.
تغییر مقدار پارامتر به "yes" اثرات زیر را به همراه دارد:
- نامهای فایل صف موجود تحت تأثیر قرار نمیگیرند.
- فایلهای صف جدید با نامهایی مانند 3Pt2mN2VXxznjll ایجاد میشوند. این نامها در یک الفبای ۵۲ نویسهای کدگذاری میشوند که شامل ارقام (0-9)، حروف بزرگ (B-Z) و حروف کوچک (b-z) است. به دلایل ایمنی، حروف صدادار (AEIOUaeiou) از این الفبا حذف شدهاند. قالب نام بدین صورت است: ۶ نویسه یا بیشتر برای زمان برحسب ثانیه، ۴ نویسه برای زمان برحسب میکروثانیه، حرف 'z'؛ باقیمانده شماره inode فایل است که در ۵۱ نویسه نخست الفبای ۵۲ نویسهای کدگذاری شده است.
- پیامهای جدید دارای سرآیند Message-ID با قالب queueID@myhostname خواهند بود.
- خروجی mailq (postqueue -p) ستون Queue ID عریضتری خواهد داشت. تعداد فیلدهای جداشده با فاصله تغییر نمیکند.
- الگوریتم
hash_queue_depth از
نویسههای
ابتدایی
زمان ایجاد
فایل صف
برحسب
میکروثانیه،
پس از تبدیل
به نمایش
هگزادسیمال،
استفاده
میکند. این
کار همان
رفتار
درهمسازی
صفی را
ایجاد
میکند که
گویی نام
فایل صف با
"enable_long_queue_ids = no"
ساخته شده
است.
تغییر مقدار پارامتر به "no" اثرات زیر را به همراه دارد:
- نامهای طولانی فایل صف موجود به فرم کوتاه تغییر نام مییابند (هنگام اجرای "postfix reload" یا "postsuper").
- فایلهای صف جدید با نامهایی مانند C3CD21F3E90 از الفبای هگزادسیمال شامل ارقام (0-9) و حروف بزرگ (A-F) ایجاد میشوند. قالب نام بدین صورت است: ۵ نویسه برای زمان برحسب میکروثانیه؛ باقیمانده شماره inode فایل است.
- پیامهای جدید دارای سرآیند Message-ID با قالب YYYYMMDDHHMMSS.queueid@myhostname خواهند بود، که در آن YYYYMMDDHHMMSS سال، ماه، روز، ساعت، دقیقه و ثانیه است.
- خروجی mailq (postqueue -p) قالبی مشابه Postfix نسخه 2.8 یا پایینتر خواهد داشت.
- الگوریتم
hash_queue_depth از
نویسههای
ابتدایی
نام فایل
صف، با
نمایش
هگزادسیمال
زمان ایجاد
فایل برحسب
میکروثانیه،
استفاده
میکند.
پیش از مهاجرت به Postfix نسخه 2.8 یا پایینتر، دستورات زیر برای تبدیل نامهای طولانی فایل صف به نامهای کوتاه لازم است:
# postfix stop # postconf enable_long_queue_ids=no # postsuper
دستور postsuper را تا زمانی تکرار کنید که دیگر تغییری در نام فایل صف گزارش نکند.
این ویژگی در Postfix نسخه 2.9 و بالاتر در دسترس است.
enable_original_recipient (default: yes)
فعالسازی پشتیبانی از آدرس گیرنده اصلی پس از بازنویسی آدرس به یک آدرس دیگر (برای نمونه از طریق نام مستعار یا نگاشت کانونی).
آدرس گیرنده اصلی به شرح زیر استفاده میشود:
- تحویل نهایی
- با "enable_original_recipient = yes"،
آدرس
گیرنده
اصلی در
سرآیند
پیام X-Original-To
ذخیره
میشود. این
سرآیند
ممکن است
برای تفکیک
بین
گیرندگان
مختلفی که
از یک صندوق
پستی مشترک
استفاده
میکنند به
کار رود.
- حذف موارد تکراری گیرنده
- با "enable_original_recipient = yes"،
دیمن cleanup(8)
حذف موارد
تکراری
گیرنده را
بر اساس
محتوای
جفتهای
(گیرنده
اصلی،
گیرنده
احتمالا
بازنویسیشده)
انجام
میدهد. در
غیر این
صورت، دیمن
cleanup(8) حذف
گیرندگان
تکراری را
تنها بر
اساس آدرس
گیرنده
احتمالا
بازنویسیشده
انجام
میدهد.
نکته: در Postfix نسخه 3.2 یا پایینتر، تنظیم "enable_original_recipient = no" اعتبارسنجی آدرس را برای آدرسهایی که دارای نام مستعار هستند یا به هر نحوی بازنویسی شدهاند مختل میکند (Postfix قادر نیست نتیجه اعتبارسنجی آدرس را تحت آدرس مقصد کاوش اصلی ذخیره کند؛ در عوض، تنها میتواند نتیجه را تحت آدرس بازنویسیشده ذخیره کند).
این ویژگی در Postfix نسخه 2.1 و بالاتر موجود است. Postfix نسخه 2.0 بهگونهای رفتار میکند که گویی این پارامتر همیشه روی yes تنظیم شده است. نسخههای Postfix پیش از 2.0 هیچ پشتیبانیای از آدرس گیرنده اصلی ندارند.
enable_threaded_bounces (default: no)
فعالسازی اعلانهای عدم تحویل، موفقیت و تاخیر بهگونهای که با درج سرآیندهای References: و In-Reply-To: با مقدار Message-ID اصلی، به پیام اصلی پیوند داده شوند. مزایا و معایبی برای بررسی وجود دارد.
- مزیت
- به
برنامههای
خواندن
ایمیل
اجازه
میدهد تا
اعلان
وضعیت
تحویل را در
همان رشته
گفتگوی
ایمیل (thread)
پیام اصلی
نمایش دهند.
- عیب
- باعث
میشود
کاربران
بهسادگی
کل رشته
گفتگوی
ایمیل (تمام
پیامهای
مرتبط) را
بهجای حذف
صرف اعلان
عدم تحویل،
به اشتباه
حذف کنند.
این ویژگی در Postfix نسخه 3.6 و بالاتر در دسترس است.
error_notice_recipient (default: postmaster)
گیرنده اعلانهای مدیر پست (postmaster) پیرامون مشکلات تحویل ایمیل که ناشی از خطاهای خطمشی، منابع، نرمافزاری یا پروتکل هستند. این اعلانها با پارامتر notify_classes فعال میشوند.
error_service_name (default: error)
نام عامل تحویل کاذب error(8). این سرویس همیشه ایمیل را بهعنوان غیرقابلتحویل بازمیگرداند.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
execution_directory_expansion_filter (default: see postconf -d output)
محدود کردن نویسههایی که عامل تحویل local(8) در بسطهای $name مربوط به $command_execution_directory مجاز میداند. نویسههای خارج از مجموعه مجاز با زیرخط (underscore) جایگزین میشوند.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
expand_owner_alias (default: no)
هنگام تحویل به یک نام مستعار "aliasname" که دارای نام مستعار همزاد "owner-aliasname" است، آدرس فرستنده پاکت روی مقدار بسطیافته نام مستعار "owner-aliasname" تنظیم شود. در حالت عادی، Postfix آدرس فرستنده پاکت را روی نام مستعار "owner-aliasname" قرار میدهد.
export_environment (default: see postconf -d output)
فهرست متغیرهای محیطی که یک فرایند Postfix به فرایندهای غیر Postfix صادر (export) میکند. متغیر TZ برای نگهداشت زمان معقول در سیستمهای شبه System-V الزامی است.
فهرستی از نامها و/یا جفتهای name=value را مشخص کنید که با فاصله یا کاما جدا شدهاند. برای محافظت از فاصله یا کاما درون مقادیر پارامتر، "{ name=value }" را مشخص کنید (فاصله بعد از "{" بازشونده و قبل از "}" بستهشونده نادیده گرفته میشود). قالب name=value در Postfix نسخه 2.1 و بالاتر پشتیبانی میشود؛ استفاده از {} در Postfix نسخه 3.0 و بالاتر پشتیبانی میشود.
مثال:
export_environment = TZ PATH=/bin:/usr/bin
extract_recipient_limit (default: 10240)
حداکثر تعداد آدرسهای گیرنده که Postfix هنگام ارسال ایمیل با "sendmail -t" از سرآیندهای پیام استخراج میکند.
این ویژگی در Postfix نسخه 2.1 حذف شد.
fallback_relay (default: empty)
فهرست اختیاری از میزبانهای بازپخش برای مقصدهای SMTP که یافت نمیشوند یا غیرقابل دسترس هستند. در Postfix نسخه 2.3 نام این پارامتر به smtp_fallback_relay تغییر یافت.
بهطور پیشفرض، هنگامی که مقصدی یافت نشود، ایمیل به فرستنده بازگردانده میشود، و هنگامی که مقصدی در دسترس نباشد، تحویل به تعویق میافتد.
میزبانهای بازپخش جایگزین باید مقصدهای SMTP باشند. یک دامنه، میزبان، host:port، [host]:port، [address] یا [address]:port را مشخص کنید؛ قالب [host] جستجوهای MX را غیرفعال میکند. اگر چندین مقصد SMTP تعیین کنید، Postfix آنها را به ترتیب مشخصشده آزمایش میکند.
نکته: پیش از Postfix نسخه 2.2، هنگام بازپخش ایمیل برای یک دامنه MX پشتیبان یا اصلی از ویژگی fallback_relay استفاده نکنید. در صورتی که مقصد نهایی در دسترس نباشد، ایمیل بین میزبان MX مربوط به Postfix و میزبان fallback_relay در چرخه میافتد.
- در main.cf مقدار "relay_transport = relay" را مشخص کنید،
- در master.cf مقدار "-o fallback_relay =" (یعنی خالی) را در انتهای مدخل relay مشخص کنید.
- در
نقشههای
انتقال (transport maps)،
مقدار
"relay:nexthop..." را
بهعنوان
سمت راست
مدخلهای
دامنه MX
اصلی یا
پشتیبان
مشخص کنید.
Postfix نسخه 2.2 و بالاتر از ویژگی fallback_relay برای مقاصدی که خود میزبان MX آنهاست استفاده نخواهد کرد.
fallback_transport (default: empty)
ترابری تحویل پیام اختیاری که عامل تحویل local(8) باید برای نامهایی که در aliases(5) یا پایگاه داده گذرواژه UNIX یافت نمیشوند استفاده کند.
اولویت ویژگیهای تحویل local(8) از زیاد به کم عبارت است از: aliases، فایلهای .forward، mailbox_transport_maps، mailbox_transport، mailbox_command_maps، mailbox_command، home_mailbox، mail_spool_directory، fallback_transport_maps، fallback_transport و luser_relay.
fallback_transport_maps (default: empty)
جدولهای جستجوی اختیاری با ترابریهای تحویل پیام بهازای هر گیرنده، برای گیرندگانی که عامل تحویل local(8) نتوانسته است آنها را در aliases(5) یا پایگاه داده گذرواژه UNIX پیدا کند.
اولویت ویژگیهای تحویل local(8) از زیاد به کم عبارت است از: aliases، فایلهای .forward، mailbox_transport_maps، mailbox_transport، mailbox_command_maps، mailbox_command، home_mailbox، mail_spool_directory، fallback_transport_maps، fallback_transport و luser_relay.
به دلایل امنیتی، این ویژگی جایگزینیهای $number را در جدولهای عبارت باقاعده مجاز نمیداند.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
fast_flush_domains (default: $relay_domains)
فهرست اختیاری از مقاصدی که واجد شرایط دریافت فایلهای لاگ بهازای هر مقصد برای ایمیلهای در صف قرارگرفته به آن مقاصد هستند.
بهطور پیشفرض، Postfix فایلهای لاگ "fast flush" را تنها برای مقاصدی نگهداری میکند که سرور SMTP مربوط به Postfix مایل به بازپخش به آنها باشد (یعنی پیشفرض: "fast_flush_domains = $relay_domains"؛ به پارامتر relay_domains در راهنمای postconf(5) مراجعه کنید).
فهرستی از میزبانها یا دامنهها، الگوهای "/file/name" یا جدولهای جستجوی "type:table" را که با کاما و/یا فاصله جدا شدهاند مشخص کنید. خطوط طولانی را با شروع خط بعدی با فاصله خالی ادامه دهید. یک الگوی "/file/name" با محتویات آن جایگزین میشود؛ یک جدول جستجوی "type:table" زمانی مطابقت داده میشود که دامنه یا دامنه والد آن بهعنوان کلید جستجو ظاهر شود.
تطبیق الگوی نامهای دامنه توسط وجود یا عدم وجود "fast_flush_domains" در مقدار پارامتر parent_domain_matches_subdomains کنترل میشود.
برای غیرفعال کردن کامل این ویژگی، "fast_flush_domains =" (یعنی خالی) را مشخص کنید.
fast_flush_purge_time (default: 7d)
مدت زمانی که پس از آن یک فایل لاگ خالی "fast flush" بهازای هر مقصد پاک میشود.
میتوانید زمان را بهعنوان یک عدد، یا یک عدد به همراه حرفی که واحد زمان را نشان میدهد مشخص کنید: s=ثانیه، m=دقیقه، h=ساعت، d=روز، w=هفته. واحد زمانی پیشفرض روز است.
fast_flush_refresh_time (default: 12h)
مدت زمانی که پس از آن یک فایل لاگ "fast flush" غیرخالی اما خواندهنشده بهازای هر مقصد باید تازهسازی شود. محتویات یک فایل لاگ با درخواست تحویل تمام پیامهای فهرستشده در آن فایل لاگ تازهسازی میشود.
میتوانید زمان را بهعنوان یک عدد، یا یک عدد به همراه حرفی که واحد زمان را نشان میدهد مشخص کنید: s=ثانیه، m=دقیقه، h=ساعت، d=روز، w=هفته. واحد زمانی پیشفرض ساعت است.
fault_injection_code (default: 0)
اجبار به شکست آزمونهای داخلی مشخص، به منظور آزمایش مدیریت خطاهایی که در غیر این صورت بازتولید آنها دشوار است.
flush_service_name (default: flush)
نام سرویس flush(8). این سرویس فایلهای لاگ بهازای هر مقصد را شامل نام فایلهای صف ایمیلهایی که برای آن مقاصد در صف قرار گرفتهاند نگهداری میکند.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
force_mime_input_conversion (default: no)
تبدیل محتوای بدنه پیام که مدعی 8-bit بودن است به quoted-printable، قبل از header_checks، body_checks، فیلترهای Milter و قبل از فیلترهای محتوای پس از صف (after-queue). این ویژگی بر پیامهایی که به smtpd_proxy_filter فرستاده میشوند تأثیری ندارد.
کاربرد معمول آن در کارگزار انتقال ایمیل (MTA) است که این تبدیل را قبل از امضای پیامهای خروجی اعمال میکند تا امضاها زمانی که پیام بعداً به یک MTA تحویل داده میشود که پشتیبانی از 8BITMIME را اعلام نمیکند، یا هنگامی که یک خط پیام از محدودیت طول SMTP فراتر میرود، معتبر باقی بمانند.
این ویژگی در Postfix نسخه 3.9 یا بالاتر در دسترس است.
fork_attempts (default: 5)
حداکثر تعداد تلاشها برای فراخوانی fork() یک فرایند فرزند.
fork_delay (default: 1s)
تاخیر بین تلاشها برای فراخوانی fork() یک فرایند فرزند.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
forward_expansion_filter (default: see postconf -d output)
محدود کردن نویسههایی که عامل تحویل local(8) در بسطهای $name مربوط به $forward_path مجاز میداند. نویسههای خارج از مجموعه مجاز با زیرخط جایگزین میشوند.
forward_path (default: see postconf -d output)
فهرست جستجوی عامل تحویل local(8) برای یافتن یک فایل .forward با روشهای تحویل مشخصشده توسط کاربر. نخستین فایلی که پیدا شود استفاده میشود.
مقدار forward_path مشمول بسط پارامتر پیکربندی $name در Postfix قرار نمیگیرد. در عوض، بسطهای $name زیر روی forward_path پیش از انجام جستجوی واقعی انجام میشوند. نتیجه بسط $name با مجموعه نویسههایی که با پارامتر forward_expansion_filter مشخص شده است پالایش میشود.
- $user
- نام کاربری
گیرنده.
- $shell
- مسیر پوسته
ورود
گیرنده.
- $home
- دایرکتوری
خانگی
گیرنده.
- $recipient
- آدرس کامل
گیرنده.
- $extension
- پسوند
اختیاری
آدرس
گیرنده.
- $domain
- دامنه
گیرنده.
- $local
- کل بخش محلی
(localpart) گیرنده.
- $recipient_delimiter
- جداکننده
پسوند آدرس
که در آدرس
گیرنده
پیدا شده
است (Postfix 2.11 و
بالاتر)، یا
«اولین»
جداکننده
تعیینشده
با
جداکننده
سراسری
سیستم برای
پسوند آدرس
گیرنده (Postfix 3.5.22،
3.6.12، 3.7.8، 3.8.3 و
بالاتر). در
گذشته، این
مقدار
همیشه
جداکننده
سراسری
سیستم برای
پسوند آدرس
گیرنده بود
(Postfix 2.10 و پیشتر).
- ${name?value}
- ${name?{value}} (Postfix >= 3.0)
- در صورتی که
$name خالی
نباشد، به
value بسط
مییابد.
- ${name:value}
- ${name:{value}} (Postfix >= 3.0)
- در صورتی که
$name خالی
باشد، به value
بسط
مییابد.
- ${name?{value1}:{value2}} (Postfix >= 3.0)
- در صورتی که
$name خالی
نباشد به value1
و در غیر
این صورت به
value2 بسط
مییابد.
به جای name$ میتوانید {name}$ یا (name)$ را نیز مشخص کنید.
مثالها:
forward_path = /var/forward/$user
forward_path =
/var/forward/$user/.forward$recipient_delimiter$extension,
/var/forward/$user/.forward
frozen_delivered_to (default: yes)
دیدگاه مأمور تحویل local(8) را از آدرس :Delivered-To (به prepend_delivered_header مراجعه کنید) فقط یکبار، در شروع تلاش برای تحویل بهروزرسانی کنید؛ هنگام بسط دادن نامهای مستعار یا فایلهای forward. آدرس :Delivered-To را بهروزرسانی نکنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است. در نسخههای قدیمیتر Postfix، رفتار بهگونهای است که گویی این پارامتر روی "no" تنظیم شده است. تنظیم قدیمی با نامهای مستعار یا فایلهای forward. بسیار تو در تو میتواند هزینهبر باشد. وقتی یک نام مستعار یا فایل forward. آدرس :Delivered-To را تغییر میدهد، هنگام هدایت ایمیل یک فایل صف و یک نمونه پردازش cleanup را درگیر نگه میدارد.
full_name_encoding_charset (default: utf-8)
نام مجموعه نویسه (که "charset" نیز نامیده میشود) که Postfix هنگام تولید خودکار یک نام کامل کدگذاریشده بر اساس RFC 2047 در خروجی قرار میدهد. کدگذاری نامهای کامل غیر ASCII میتواند نیاز به استفاده از SMTPUTF8 را برطرف کرده و در نتیجه از ناسازگاری با سایتهایی که از SMTPUTF8 پشتیبانی نمیکنند جلوگیری کند.
نامهای کدگذاریشده شبیه به "=?charset?q?gibberish?=" با کدگذاری quoted-printable، یا "=?charset?b?gibberish?=" با کدگذاری base64 هستند. Postfix برای نام کاملی که کوتاه باشد یا بیشتر آن اسکی قابل چاپ باشد از کدگذاری quoted-printable استفاده میکند و در غیر این صورت از base64 استفاده مینماید.
پیشزمینه: وقتی پیامی بدون سرایند :From از طریق دستور sendmail(1) پستفیکس ارسال میشود، دیمن cleanup(8) پستفیکس یک سرایند :From اضافه کرده و تلاش میکند از نام کامل فرستنده مشخصشده با گزینه "-F" در sendmail(1) پستفیکس، متغیر محیطی "NAME" در sendmail(1) پستفیکس، یا فیلد GECOS در پایگاهداده رمز عبور UNIX استفاده کند. در حالت اخیر، Postfix نویسه "&" را با نام ورود (login name) جایگزین میکند، در حالی که حرف کوچک اول اسکی به حرف بزرگ تبدیل میشود.
نکته: Postfix تبدیلی بین مجموعههای نویسه انجام نمیدهد. پارامتر full_name_encoding_charset مجموعه نویسه نام کامل را در گزینه "-F" دستور sendmail پستفیکس، متغیر محیطی "NAME" در sendmail پستفیکس، یا فیلد GECOS در پایگاهداده رمز عبور UNIX مشخص میکند. مقدار پارامتر همچنین بخشی از نام کامل کدگذاریشده است و به مأمور کاربر ایمیل (MUA) اطلاع میدهد که چگونه متن کدگشاییشده را نمایش دهد.
یک نام معتبر مجموعه نویسه مانند "utf-8" یا "iso-8859-1" مشخص کنید (مورد دوم را برای نامهای کاملی که از کدگذاری Latin1 استفاده میکنند مشخص کنید). نام مجموعه نویسه به حروف بزرگ و کوچک حساس نیست. وقتی یک نام مجموعه نویسه قواعد نحوی RFC 2047 را نقض کند، Postfix یک هشدار ثبت کرده و از نام کامل صرفنظر میکند.
این قابلیت در Postfix >= 3.10 در دسترس است.
hash_queue_depth (default: 1)
تعداد سطوح زیرپوشه برای پوشههای صفی که با پارامتر hash_queue_names فهرست شدهاند. هش کردن صف با ایجاد یک یا چند سطح پوشه با نامهای تکنویسهای پیادهسازی میشود. در ابتدا، این نامهای پوشه برابر با نویسههای اول نام فایل صف، همراه با نمایش هگزادسیمال زمان ایجاد فایل بر حسب میکروثانیه بود.
با نامهای طولانی فایل صف، هش کردن صف نتایجی مشابه با نامهای کوتاه تولید میکند. زمان ایجاد فایل بر حسب میکروثانیه، پیش از اینکه نتیجه برای هش کردن صف استفاده شود، به قالب هگزادسیمال تبدیل میشود. کدگذاری پایه ۱۶ نسبت به کدگذاری پایه ۵۲ در نامهای طولانی فایل صف، کنترل دقیقتری روی تعداد زیرپوشهها فراهم میکند.
پس از تغییر پارامتر hash_queue_names یا hash_queue_depth، دستور «postfix reload» را اجرا کنید.
hash_queue_names (default: deferred, defer)
نام پوشههای صفی که در چندین سطح زیرپوشه تقسیم شدهاند.
قبل از Postfix نسخه 2.2، فهرست پیشفرض صفهای هششده بسیار بزرگتر بود. ادعاها در مورد بهبودهای فناوری سیستم فایل نشان میدهد که هش کردن صفهای incoming و active دیگر لازم نیست. پوشههای هششده کمتر، زمان مورد نیاز برای راهاندازی مجدد Postfix را سرعت میبخشد.
پس از تغییر پارامتر hash_queue_names یا hash_queue_depth، دستور «postfix reload» را اجرا کنید.
header_address_token_limit (default: 10240)
حداکثر تعداد نشانههای (token) مجاز آدرس در یک سرایند آدرس پیام. اطلاعاتی که فراتر از این حد باشد دور ریخته میشود. این محدودیت توسط سرور cleanup(8) اعمال میشود.
header_checks (default: empty)
جدولهای جستجوی اختیاری برای بررسی محتوای سرایندهای اصلی پیام غیر MIME، طبق آنچه در صفحه راهنمای header_checks(5) مشخص شده است.
header_from_format (default: standard)
قالب سرایند From: تولیدشده توسط Postfix. این تنظیم بر شکل ظاهری اطلاعات «نام کامل» اثر میگذارد وقتی یک برنامه محلی مانند bin/mail/ پیامی را بدون سرایند :From از طریق دستور sendmail(1) پستفیکس ارسال میکند.
یکی از موارد زیر را مشخص کنید:
- standard (پیشفرض)
- سرایندی با
قالب "From: name
<address>"
تولید
میکند. این
گزینه از Postfix 3.3
پیشفرض
است.
- obsolete
- سرایندی با
قالب "From: address
(name)" تولید
میکند. این
رفتار
نسخههای
پیش از Postfix 3.3
است.
نکات:
- وقتی اطلاعات name موجود نباشد یا آدرس فرستنده پاکت خالی باشد، Postfix قالب "From: address" را تولید میکند. این همان رفتار پیش از Postfix 3.3 است.
- در فرم standard، اگر name حاوی نویسههای خاص (specials) تعریفشده در RFC 5322 یا عملگرهای آدرس "!%" باشد، نقلقول (quote) خواهد شد.
- دستور sendmail(1)
پستفیکس
اطلاعات name
را از گزینه
خط فرمان
-F، از
متغیر
محیطی NAME،
یا از فایل
رمز عبور UNIX
دریافت
میکند.
این قابلیت در Postfix 3.3 و بالاتر در دسترس است.
header_size_limit (default: 102400)
حداکثر میزان حافظه بر حسب بایت برای ذخیرهسازی سرایند پیام. اگر یک سرایند بزرگتر باشد، بخش مازاد دور ریخته میشود. این محدودیت توسط سرور cleanup(8) اعمال میشود.
helpful_warnings (default: yes)
ثبت هشدارهایی درباره تنظیمات پیکربندی مسئلهدار و ارائه پیشنهادهای مفید.
این قابلیت در Postfix 2.0 و بالاتر در دسترس است.
home_mailbox (default: empty)
مسیر اختیاری فایل صندوق پستی نسبت به پوشه خانگی یک کاربر local(8).
برای تحویل به سبک qmail، مسیری را مشخص کنید که به "/" ختم میشود.
اولویت قابلیتهای تحویل local(8) از زیاد به کم عبارت است از: aliases، فایلهای forward.، mailbox_transport_maps، mailbox_transport، mailbox_command_maps، mailbox_command، home_mailbox، mail_spool_directory، fallback_transport_maps، fallback_transport و luser_relay.
مثالها:
home_mailbox = Mailbox home_mailbox = Maildir/
hopcount_limit (default: 50)
حداکثر تعداد سرایندهای پیام :Received که در سرایندهای اصلی پیام مجاز است. پیامی که فراتر از این حد باشد، برای متوقف کردن حلقه پیام برگشت داده میشود (bounce میشود).
html_directory (default: see postconf -d output)
محل فایلهای HTML پستفیکس که نحوه ساخت، پیکربندی یا استفاده از یک زیرسیستم یا قابلیت خاص Postfix را توضیح میدهند.
ignore_mx_lookup_error (default: no)
نادیده گرفتن جستجوهای DNS MX که پاسخی تولید نمیکنند. کلاینت SMTP پستفیکس بهطور پیشفرض تحویل را به تعویق میاندازد و پس از مدتی دوباره تلاش میکند. این رفتار طبق استاندارد SMTP الزامی است.
برای اجبار به جستجوی رکورد DNS A بهجای آن، "ignore_mx_lookup_error = yes" را مشخص کنید. این کار استاندارد SMTP را نقض میکند و میتواند منجر به تحویل اشتباه ایمیل شود.
ignore_srv_lookup_error (default: no)
هنگامی که جستجوی رکورد SRV با شکست مواجه میشود، بازگشت به جستجوی رکورد MX یا آدرس IP به گونهای انجام میشود که گویی جستجوی رکورد SRV فعال نبوده است.
این قابلیت در Postfix 3.8 و بالاتر در دسترس است.
import_environment (default: see postconf -d output)
فهرست متغیرهای محیطی که یک پردازش دارای دسترسی ممتاز Postfix از یک پردازش والد غیر Postfix وارد میکند، یا بازنویسیهای محیطی به صورت name=value. ابزارهای غیر ممتاز بازنویسیهای name=value را اعمال میکنند، اما در غیر این صورت محیط پردازش خود را تغییر نخواهند داد. نمونههایی از متغیرهای محیطی مرتبط:
- TZ
- ممکن است
برای ثبت
صحیح زمان
در بیشتر
سیستمهای
شبیه System-V نیاز
باشد.
- DISPLAY
- برای
اشکالزدایی
دیمنهای Postfix
با یک
دیباگر X-windows
مورد نیاز
است.
- XAUTHORITY
- برای
اشکالزدایی
دیمنهای Postfix
با یک
دیباگر X-windows
مورد نیاز
است.
- MAIL_CONFIG
- برای
کارکرد
درست دستور
«postfix -c» نیاز
است.
- POSTLOG_HOSTNAME
- برای
عملکرد
درست «maillog_file»
در طول
مقداردهی
اولیه
پردازش
دیمن نیاز
است.
- POSTLOG_SERVICE
- برای
عملکرد
درست «maillog_file»
در طول
مقداردهی
اولیه
پردازش
دیمن نیاز
است.
- XDG_RUNTIME_DIR
- برای
اشکالزدایی
دیمنهای Postfix
با یک
دیباگر سبک
XDG نیاز است.
فهرستی از نامها و/یا جفتهای name=value را مشخص کنید که با فاصله خالی یا کاما جدا شدهاند. برای محافظت از فاصله خالی یا کاما در مقادیر متغیرهای محیطی، از "{ name=value }" استفاده کنید (فاصلههای خالی بعد از "{" بازکننده و قبل از "}" بستهکننده نادیده گرفته میشوند). شکل name=value در Postfix نسخه 2.1 و بالاتر پشتیبانی میشود؛ استفاده از {} در Postfix 3.0 و بالاتر پشتیبانی میشود.
in_flow_delay (default: 1s)
مدتزمان مکث قبل از پذیرش یک پیام جدید، زمانی که نرخ ورود پیام از نرخ تحویل پیام بیشتر میشود. این قابلیت بهطور پیشفرض فعال است (روی SCO UNIX به دلیل یک باگ در SCO غیرفعال است).
با محدودیت پیشفرض ۱۰۰ پردازش سرور SMTP پستفیکس، مقدار "in_flow_delay = 1s" ورود ایمیل را به ۱۰۰ پیام در ثانیه فراتر از تعداد پیامهای تحویلشده در ثانیه محدود میکند.
برای غیرفعال کردن این ویژگی مقدار 0 را مشخص کنید. تأخیرهای معتبر 0..10 هستند.
inet_interfaces (default: all)
آدرسهای رابط شبکه محلی که این سیستم ایمیل روی آنها ایمیل دریافت میکند. برای دریافت ایمیل روی همه رابطهای شبکه "all" (پیشفرض)، برای دریافت ایمیل فقط روی رابطهای شبکه لوپبک "loopback-only" (Postfix نسخه 2.2 و بالاتر)، یا صفر یا چند آدرس IPv4 یا IPv6 را مشخص کنید (IPv6 در Postfix نسخه 2.2 و بالاتر پشتیبانی میشود). این پارامتر همچنین کنترل میکند که آیا Postfix ایمیل برای user@[ip.address] را بپذیرد یا خیر، و از تحویل ایمیل توسط Postfix به میزبانی با اولویت MX برابر یا بیشتر جلوگیری میکند. در صورتی که Postfix ایمیلی را از طریق شبکه دریافت نمیکند، یا اگر تمام شنوندگان شبکه یک آدرس IP صریح در master.cf دارند، یک مقدار خالی مشخص کنید.
نکته ۱: هنگام تغییر این پارامتر باید Postfix را متوقف کرده و دوباره راهاندازی کنید.
نکته ۲: اطلاعات آدرس ممکن است درون [] قرار داده شوند، اما این قالب در اینجا الزامی نیست.
هنگامی که smtp_bind_address و/یا smtp_bind_address6 مشخص نشده باشند، تنظیم inet_interfaces ممکن است آدرس IP مبدأ را برای یک اتصال خروجی SMTP یا LMTP طبق آنچه در زیر توضیح داده شده محدود کند.
متن زیر مختص SMTP و IPv4 است. استدلال مشابه برای پروتکل IPv6 و کلاینت LMTP پستفیکس نیز اعمال میشود. برای غیرفعال کردن پشتیبانی از IPv4 یا IPv6 در کلاینت SMTP و LMTP پستفیکس، از inet_protocols استفاده کنید.
- هنگامی که inet_interfaces یک آدرس IPv4 را مشخص میکند، و آن آدرس یک آدرس لوپبک نیست، کلاینت SMTP پستفیکس از آن بهعنوان آدرس مبدأ برای اتصالات خروجی IPv4 استفاده میکند.
- در غیر این
صورت،
کلاینت SMTP
پستفیکس
آدرس IPv4 مبدأ
را محدود
نمیکند و
با استفاده
از یک آدرس IPv4
مبدأ که
توسط سیستم
انتخاب شده
متصل
میشود. این
شامل
مواردی است
که inet_interfaces خالی
باشد،
مقدار all را
مشخص کند،
فاقد آدرس IPv4
باشد، یک
آدرس IPv4
داشته باشد
که آدرس
لوپبک
است، یا
حاوی چندین
آدرس IPv4 باشد.
هنگامی که آدرس IP مبدأ کلاینت بهصورت صریح با smtp_bind_address یا smtp_bind_address6، یا بهطور ضمنی با inet_interfaces محدود شده باشد، کلاینت SMTP پستفیکس ممکن است نتواند به برخی سرورهای SMTP راه دور دسترسی پیدا کند. این وضعیت میتواند زمانی رخ دهد که Postfix روی یک سیستم چندمسیری (multi-homed) مانند فایروال اجرا میشود، آدرس IP کلاینت مبدأ SMTP پستفیکس به یک رابط شبکه خاص محدود شده است، و سرور SMTP راه دور باید از طریق رابط دیگری در دسترس قرار گیرد. تنظیم smtp_bind_address روی 0.0.0.0 از این مشکل احتمالی برای IPv4 جلوگیری میکند، و تنظیم smtp_bind_address6 روی :: مشکل را برای IPv6 برطرف میسازد.
راهحل بهتر برای سیستمهای چندمسیری این است که inet_interfaces را روی مقدار پیشفرض رها کنید و بهجای آن از آدرسهای IP صریح در تعاریف سرور SMTP در master.cf استفاده کنید. این کار با اطمینان از اینکه هر طرف فایروال میداند که آدرس IP دیگر همان میزبان است، قابلیت تشخیص حلقه در کلاینت SMTP پستفیکس را حفظ میکند. تنظیم inet_interfaces$ به یک آدرس تکی IPv4 و/یا IPv6 در درجه اول برای میزبانی مجازی دامنهها روی آدرسهای IP ثانویه مفید است، زمانی که هر آدرس IP به یک دامنه متفاوت سرویس میدهد (و دارای تنظیم myhostname$ متفاوتی است).
همچنین پارامتر proxy_interfaces را برای آدرسهای شبکهای که از طریق یک پروکسی یا مترجم آدرس به Postfix هدایت میشوند، ببینید.
مثالها:
inet_interfaces = all (DEFAULT) inet_interfaces = loopback-only (Postfix version 2.2 and later) inet_interfaces = 127.0.0.1 inet_interfaces = 127.0.0.1, [::1] (Postfix version 2.2 and later) inet_interfaces = 192.168.1.2, 127.0.0.1
inet_protocols (default: see 'postconf -d' output)
پروتکلهای اینترنتی که Postfix هنگام برقراری یا پذیرش اتصالات تلاش خواهد کرد از آنها استفاده کند. یک یا چند مورد از "ipv4" یا "ipv6" را مشخص کنید که با فاصله یا کاما جدا شدهاند. فرم "all" بسته به اینکه آیا سیستمعامل IPv6 را پیادهسازی کرده است یا خیر، معادل "ipv4, ipv6" یا "ipv4" است.
در Postfix 2.8 و پیش از آن پیشفرض "ipv4" است. برای سازگاری عقبروی با این نسخهها، روال ارتقای Postfix 2.9 و بالاتر هنگامی که هیچ تنظیم صریحی وجود ندارد، یک تنظیم صریح "inet_protocols = ipv4" را به main.cf اضافه میکند. با رایجتر شدن بهکارگیری IPv6، این ترفند سازگاری به تدریج کنار گذاشته خواهد شد.
این قابلیت در Postfix 2.2 و بالاتر در دسترس است.
نکته: پس از تغییر این پارامتر حتماً باید Postfix را متوقف کرده و دوباره راهاندازی کنید.
در سیستمهایی که قبل از پشتیبانی IPV6_V6ONLY (طبق RFC 3493) ارائه شدهاند، یک سرور IPv6 اتصالات IPv4 را نیز خواهد پذیرفت، حتی اگر IPv4 با پارامتر inet_protocols خاموش شده باشد. در سیستمهای دارای پشتیبانی از IPV6_V6ONLY، پستفیکس از سوکتهای سرور جداگانه برای IPv6 و IPv4 استفاده خواهد کرد و هر یک فقط اتصالات مربوط به پروتکل خود را میپذیرند.
هنگامی که پشتیبانی از IPv4 از طریق پارامتر inet_protocols فعال باشد، Postfix رکوردهای نوع A در DNS را جستجو میکند، و آدرسهای IP کلاینت IPv4-in-IPv6 (مانند ::ffff:1.2.3.4) را به شکل اصلی IPv4 آنها (1.2.3.4) تبدیل خواهد کرد. مورد اخیر در میزبانهایی که قبل از پشتیبانی IPV6_V6ONLY (طبق RFC 3493) بودهاند، لازم است.
هنگامی که پشتیبانی از IPv6 از طریق پارامتر inet_protocols فعال باشد، Postfix جستجوهای رکورد DNS از نوع AAAA را انجام میدهد.
هنگامی که هر دو پشتیبانی IPv4 و IPv6 فعال باشند، کلاینت SMTP پستفیکس پروتکل را طبق آنچه در پارامتر smtp_address_preference مشخص شده انتخاب خواهد کرد. نسخههای Postfix پیش از 2.8 قبل از تلاش برای استفاده از IPv4، تلاش میکردند از طریق IPv6 متصل شوند.
مثالها:
inet_protocols = ipv4 inet_protocols = all (DEFAULT) inet_protocols = ipv6 inet_protocols = ipv4, ipv6
info_log_address_format (default: external)
قالب نشانی ایمیل مورد استفاده در لاگهای غیردیباگ (info، warning، و غیره). از Postfix 3.5 به بعد، وقتی بخش محلی (localpart) یک نشانی حاوی فاصله یا نویسههای خاص دیگر باشد، در نقلقول قرار میگیرد؛ به عنوان مثال:
from=<"name with spaces"@example.com>
نگارشهای قدیمیتر Postfix قالب داخلی (بدون نقلقول) را ثبت میکردند:
from=<name with spaces@example.com>
قالبهای خارجی و داخلی برای اکثریت قریب به اتفاق نشانیهای ایمیل فاقد فاصله یا نویسههای خاص در بخش محلی، یکسان هستند.
ثبت وقایع در قالب خارجی با قالب نشانی ترجیحدادهشده توسط Postfix 3.2 و بالاتر برای بیشتر جستجوهای جدول مطابقت دارد؛ از این رو برای لاگهای غیردیباگ فرم کاربردیتری است.
برای سازگاری با گذشته، مقدار «info_log_address_format = internal» را مشخص کنید.
Postfix دروناً از قالب بدون نقلقول استفاده میکند، زیرا مهاجم میتواند با دستکاری نقلقولها و بکاسلشها، یک نشانی ایمیل را به اشکال مختلفی مشخص کند. مهاجم نباید بتواند با چنین ترفندهایی سیاستهای دسترسی Postfix را دور بزند.
این ویژگی در Postfix نگارش 3.5 و بالاتر در دسترس است.
initial_destination_concurrency (default: 5)
سطح همروندی اولیه به ازای هر مقصد برای تحویل موازی به همان مقصد. با محدودیت گیرنده به ازای مقصد بیش از 1 (per-destination recipient limit > 1)، مقصد یک دامنه است؛ در غیر این صورت یک گیرنده در نظر گرفته میشود.
از transport_initial_destination_concurrency برای بازنویسی اختصاصی ترابری استفاده کنید، که در آن transport نام ترابری تحویل پیام در master.cf است (Postfix نگارش 2.5 و بالاتر).
هشدار: با همروندی 1، یک پیام معیوب میتواند برای مسدود کردن تمام ایمیلها به یک سایت کافی باشد.
internal_mail_filter_classes (default: empty)
دستههایی از ایمیلهای تولیدشده توسط Postfix که مشمول بازرسی محتوا پیش از صف توسط non_smtpd_milters، header_checks و body_checks میشوند. صفر یا چند مورد از مقادیر زیر را مشخص کنید که با فاصله یا کاما از هم جدا شدهاند.
- bounce
- بازرسی
محتوای
اعلانهای
وضعیت
تحویل (DSN).
- notify
- بازرسی
محتوای
اعلانهای
مدیر پست (postmaster)
توسط
فرایندهای
smtp(8) و smtpd(8).
نکته: فعالسازی بازرسی محتوای پیامهای ایمیل تولیدشده توسط Postfix عموماً ایمن نیست. به کاربر هشدار داده میشود.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
invalid_hostname_reject_code (default: 501)
کد عددی پاسخ سرور SMTP در Postfix هنگامی که پارامتر دستور HELO یا EHLO کلاینت توسط محدودیت reject_invalid_helo_hostname رد میشود.
این مقدار را تغییر ندهید مگر اینکه درک کاملی از RFC 5321 داشته باشید.
ipc_idle (default: version dependent)
مدت زمانی که پس از آن کلاینت یک کانال ارتباطی داخلی بیکار (idle) را میبندد. هدف، امکان خاتمه داوطلبانه فرایندهای دیمن Postfix پس از بیکار شدن آنها است. این مقدار به عنوان مثال توسط کلاینتهای بازنویسی و حل نشانی Postfix استفاده میشود.
در Postfix نگارش 2.4 مقدار پیشفرض از 100s به 5s کاهش یافت.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
ipc_timeout (default: 3600s)
محدودیت زمانی برای ارسال یا دریافت اطلاعات روی یک کانال ارتباطی داخلی. هدف، خروج از وضعیتهای بنبست (deadlock) است. در صورت فراتر رفتن از این محدودیت زمانی، نرمافزار با یک خطای مهلک متوقف میشود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
ipc_ttl (default: 1000s)
مدت زمانی که پس از آن کلاینت یک کانال ارتباطی داخلی فعال را میبندد. هدف، امکان خاتمه داوطلبانه فرایندهای دیمن Postfix پس از رسیدن به سقف کلاینتهای آنها است. این مقدار به عنوان مثال توسط کلاینتهای بازنویسی و حل نشانی Postfix استفاده میشود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix نگارش 2.1 و بالاتر در دسترس است.
known_tcp_ports (default: lmtp=24, smtp=25, smtps=submissions=465, submission=587)
تنظیم اختیاری برای جلوگیری از جستجو در پایگاهداده services(5). این ویژگی برای رفع ناسازگاریها در نام سرویس پورت «465» پیادهسازی شده است. ساختار ABNF آن به شرح زیر است:
known_tcp_ports = empty | name-to-port *("," name-to-port)
name-to-port = 1*(service-name "=') port-number
استفاده از کاما الزامی است. فاصله اختیاری است اما نباید درون نام سرویس یا شماره پورت قرار گیرد.
این ویژگی در Postfix نگارش 3.6 و بالاتر در دسترس است.
line_length_limit (default: 2048)
هنگام ورود، خطوط طولانی به قطعاتی با حداکثر این طول خرد میشوند؛ هنگام تحویل، این خطوط طولانی مجدداً بازسازی میگردند.
lmdb_map_size (default: 16777216)
محدودیت اندازه اولیه پایگاهداده OpenLDAP LMDB به بایت. با هر بار پر شدن پایگاهداده، سقف اندازه آن دو برابر میشود.
این ویژگی در Postfix نگارش 2.11 و بالاتر در دسترس است.
lmtp_address_preference (default: ipv6)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_address_preference. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.8 و بالاتر در دسترس است.
lmtp_address_verify_target (default: rcpt)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_address_verify_target. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 3.0 و بالاتر در دسترس است.
lmtp_assume_final (default: no)
هنگامی که سرور LMTP دوردست عدم پشتیبانی از DSN را اعلام میکند، فرض را بر این میگذارد که سرور تحویل نهایی را انجام میدهد و به جای «relayed»، اعلانهای وضعیت تحویل «delivered» را ارسال میکند. تنظیم پیشفرض برای حفظ سازگاری با گذشته است تا احتمال اندک از کار افتادن فیلترهای محتوای مبتنی بر LMTP فعلی از بین برود.
lmtp_balance_inet_protocols (default: yes)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_balance_inet_protocols. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 3.3 و بالاتر در دسترس است.
lmtp_bind_address (default: empty)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_bind_address. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
lmtp_bind_address6 (default: empty)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_bind_address6. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
lmtp_bind_address_enforce (default: empty)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_bind_address_enforce. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 3.7 و بالاتر در دسترس است.
lmtp_body_checks (default: empty)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_body_checks. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.5 و بالاتر در دسترس است.
lmtp_cache_connection (default: yes)
اتصالات کلاینت LMTP در Postfix را تا $max_idle ثانیه باز نگه میدارد. در صورت دریافت درخواستی برای همان اتصال توسط کلاینت LMTP، اتصال بازیافت و مجدداً استفاده میشود.
این پارامتر در Postfix نگارش 2.2 و پیش از آن در دسترس است. برای Postfix نگارش 2.3 و بالاتر، پارامترهای lmtp_connection_cache_on_demand، lmtp_connection_cache_destinations، یا lmtp_connection_reuse_time_limit را ببینید.
میزان کارایی اتصالات کششده با تعداد سرورهای دوردست LMTP در حال استفاده و حد همروندی تعیینشده برای کلاینت LMTP در Postfix سنجیده میشود. اتصالات کششده تحت هر یک از شرایط زیر بسته میشوند:
- رسیدن به سقف زمان بیکاری کلاینت LMTP در Postfix. این سقف با پارامتر پیکربندی max_idle در Postfix تعیین میشود.
- درخواست تحویلی که مقصدی متفاوت از مقصد کششده فعلی را مشخص کند.
- رسیدن به سقف تعداد درخواستهای تحویل به ازای هر فرایند. این سقف با پارامتر پیکربندی max_use در Postfix تعیین میشود.
- عدم پاسخ
سرور LMTP
دوردست
مرتبط با
نشست فعلی
به دستور RSET،
در آغاز یک
درخواست
تحویل دیگر.
بیشتر این محدودیتها در حافظه کش اتصالات Postfix که میان چندین برنامه کلاینت LMTP مشترک است وجود داشتهاند.
lmtp_cname_overrides_servername (default: yes)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_cname_overrides_servername. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
lmtp_connect_timeout (default: 0s)
محدودیت زمانی کلاینت LMTP در Postfix برای برقراری اتصال TCP، یا صفر (استفاده از محدودیت زمانی پیشفرض سیستمعامل). چنانچه اتصالی در مهلت مقرر برقرار نشود، کلاینت LMTP نشانی بعدی در فهرست مبادلهکنندگان ایمیل را بررسی میکند.
یک مقدار زمانی نامنفی مشخص کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
مثال:
lmtp_connect_timeout = 30s
lmtp_connection_cache_destinations (default: empty)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_connection_cache_destinations. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
lmtp_connection_cache_on_demand (default: yes)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_connection_cache_on_demand. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
lmtp_connection_cache_time_limit (default: 2s)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_connection_cache_time_limit. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
lmtp_connection_reuse_count_limit (default: 0)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_connection_reuse_count_limit. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.11 و بالاتر در دسترس است.
lmtp_connection_reuse_time_limit (default: 300s)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_connection_reuse_time_limit. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
lmtp_data_done_timeout (default: 600s)
محدودیت زمانی کلاینت LMTP در Postfix برای ارسال «.» در LMTP، و دریافت پاسخ سرور LMTP دوردست. چنانچه در مهلت مقرر پاسخی دریافت نشود، هشداری مبنی بر احتمال چندین بار تحویل شدن ایمیل ثبت میشود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
lmtp_data_init_timeout (default: 120s)
محدودیت زمانی کلاینت LMTP در Postfix برای ارسال دستور DATA در LMTP، و دریافت پاسخ سرور LMTP دوردست.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
lmtp_data_xfer_timeout (default: 180s)
محدودیت زمانی کلاینت LMTP در Postfix برای ارسال محتوای پیام LMTP. چنانچه اتصال بیش از $lmtp_data_xfer_timeout متوقف شود، کلاینت LMTP انتقال را خاتمه میدهد.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
lmtp_defer_if_no_mx_address_found (default: no)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_defer_if_no_mx_address_found. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
lmtp_delivery_status_filter (default: empty)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_delivery_status_filter. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 3.0 و بالاتر در دسترس است.
lmtp_destination_concurrency_limit (default: $default_destination_concurrency_limit)
حداکثر تعداد تحویلهای موازی به یک مقصد از طریق ترابری تحویل پیام lmtp. این سقف توسط مدیر صف (queue manager) اعمال میشود. نام ترابری تحویل پیام، نخستین فیلد از مدخل در فایل master.cf است.
lmtp_destination_recipient_limit (default: $default_destination_recipient_limit)
حداکثر تعداد گیرندگان به ازای هر پیام برای ترابری تحویل پیام lmtp. این سقف توسط مدیر صف (queue manager) اعمال میشود. نام ترابری تحویل پیام، نخستین فیلد از مدخل در فایل master.cf است.
تنظیم این پارامتر روی مقدار 1، معنای lmtp_destination_concurrency_limit را از همروندی به ازای دامنه به همروندی به ازای گیرنده تغییر میدهد.
lmtp_discard_lhlo_keyword_address_maps (default: empty)
جدولهای جستجو، مبتنی بر نشانی سرور LMTP دوردست، شامل فهرستهای غیرحساس به بزرگی و کوچکی حروف از کلیدواژههای LHLO (مانند pipelining، starttls، auth و غیره) که کلاینت LMTP در Postfix آنها را در پاسخ LHLO سرور LMTP دوردست نادیده میگیرد. برای جزئیات بیشتر lmtp_discard_lhlo_keywords را ببینید. جهت سازگاری با smtpd_discard_ehlo_keyword_address_maps، جدول بر اساس نام هاست شاخصگذاری نمیشود.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
lmtp_discard_lhlo_keywords (default: empty)
فهرستی غیرحساس به حروف از کلیدواژههای LHLO (مانند pipelining، starttls، auth و غیره) که کلاینت LMTP در Postfix در پاسخ LHLO از سوی سرور LMTP دوردست نادیده خواهد گرفت.
این ویژگی در Postfix نگارش 2.3 و بالاتر در دسترس است.
نکات:
- کلیدواژه کاذب silent-discard را برای جلوگیری از ثبت این اقدام در لاگها مشخص کنید.
- برای
نادیده
گرفتن
گزینشی
کلیدواژههای
LHLO از ویژگی
lmtp_discard_lhlo_keyword_address_maps
استفاده
کنید.
lmtp_dns_reply_filter (default: empty)
فیلتر اختیاری برای نتایج جستجوی DNS کلاینت LMTP در Postfix. برای جزئیات شامل مثال، smtp_dns_reply_filter را ببینید.
این ویژگی در Postfix نگارش 3.0 و بالاتر در دسترس است.
lmtp_dns_resolver_options (default: empty)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_dns_resolver_options. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.8 و بالاتر در دسترس است.
lmtp_dns_support_level (default: empty)
نگارش ویژه LMTP برای پارامتر پیکربندی smtp_dns_support_level. برای جزئیات به توضیحات آن مراجعه کنید.
این ویژگی در Postfix نگارش 2.11 و بالاتر در دسترس است.
lmtp_enforce_tls (default: no)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_enforce_tls. برای جزئیات به آن مراجعه کنید.
این ویژگی از Postfix 3.9 منسوخ شده است. به جای آن lmtp_tls_security_level را مشخص کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_fallback_relay (default: empty)
فهرست اختیاری از میزبانهای رله برای مقصدهای LMTP که پیدا نمیشوند یا غیرقابل دسترس هستند. در main.cf عناصر با فاصله خالی یا کاما از یکدیگر جدا میشوند.
بهطور پیشفرض، در صورت پیدا نشدن مقصد، ایمیل به فرستنده بازگردانده میشود، و در صورت در دسترس نبودن مقصد، تحویل به تعویق میافتد.
میزبانهای رله جایگزین باید مقصدهای TCP باشند که بدون پیشوند "inet:" مشخص میشوند. یک میزبان یا host:port را مشخص کنید. از آنجا که جستجوهای MX در LMTP اعمال نمیشوند، نیازی به استفاده از قالبهای "[host]" یا "[host]:port" نیست. اگر چندین مقصد LMTP تعیین کنید، Postfix آنها را به ترتیب مشخصشده بررسی میکند.
این ویژگی در Postfix 3.1 و بالاتر در دسترس است.
lmtp_generic_maps (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_generic_maps. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_header_checks (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_header_checks. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.5 و بالاتر در دسترس است.
lmtp_host_lookup (default: dns)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_host_lookup. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_lhlo_name (default: $myhostname)
نام میزبان جهت ارسال در دستور LHLO در LMTP.
مقدار پیشفرض نام میزبان سیستم است. یک نام میزبان یا [ip.add.re.ss] یا [ip:v6:add:re::ss] مشخص کنید.
این اطلاعات را میتوان در فایل main.cf برای همه کلاینتهای LMTP تعیین کرد، یا در فایل master.cf برای یک کلاینت خاص تنظیم نمود؛ برای مثال:
/etc/postfix/master.cf:
mylmtp ... lmtp -o lmtp_lhlo_name=foo.bar.com
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_lhlo_timeout (default: 300s)
محدودیت زمانی کلاینت LMTP در Postfix برای ارسال دستور LHLO و دریافت پاسخ اولیه از سرور دوردست LMTP.
واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
lmtp_line_length_limit (default: 998)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_line_length_limit. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_log_tls_feature_status (default: yes)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_log_tls_feature_status. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix >= 3.11 در دسترس است.
lmtp_mail_timeout (default: 300s)
محدودیت زمانی کلاینت LMTP در Postfix برای ارسال دستور MAIL FROM و دریافت پاسخ از سرور دوردست LMTP.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
lmtp_mime_header_checks (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_mime_header_checks. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.5 و بالاتر در دسترس است.
lmtp_min_data_rate (default: 500)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_min_data_rate. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 3.7 و بالاتر در دسترس است.
lmtp_mx_address_limit (default: 5)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_mx_address_limit. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_mx_session_limit (default: 2)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_mx_session_limit. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_nested_header_checks (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_nested_header_checks. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.5 و بالاتر در دسترس است.
lmtp_per_record_deadline (default: no)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_per_record_deadline. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.9 و بالاتر در دسترس است.
lmtp_per_request_deadline (default: no)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_per_request_deadline. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 3.7 و بالاتر در دسترس است.
lmtp_pix_workaround_delay_time (default: 10s)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_pix_workaround_delay_time. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_pix_workaround_maps (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_pix_workaround_maps. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.4 و بالاتر در دسترس است.
lmtp_pix_workaround_threshold_time (default: 500s)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_pix_workaround_threshold_time. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_pix_workarounds (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_pix_workaround. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.4 و بالاتر در دسترس است.
lmtp_quit_timeout (default: 300s)
محدودیت زمانی کلاینت LMTP در Postfix برای ارسال دستور QUIT و دریافت پاسخ از سرور دوردست LMTP.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
lmtp_quote_rfc821_envelope (default: yes)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_quote_rfc821_envelope. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_randomize_addresses (default: yes)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_randomize_addresses. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_rcpt_timeout (default: 300s)
محدودیت زمانی کلاینت LMTP در Postfix برای ارسال دستور RCPT TO و دریافت پاسخ از سرور دوردست LMTP.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
lmtp_reply_filter (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_reply_filter. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.7 و بالاتر در دسترس است.
lmtp_requiretls_policy (default: opportunistic)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_requiretls_policy. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix >= 3.11 در دسترس است.
lmtp_rset_timeout (default: 20s)
محدودیت زمانی کلاینت LMTP در Postfix برای ارسال دستور RSET و دریافت پاسخ از سرور دوردست LMTP. کلاینت LMTP برای به پایان رساندن بررسی کاوش آدرس گیرنده یا برای تایید فعال بودن اتصال کششده، دستور RSET را ارسال میکند.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
lmtp_sasl_auth_cache_name (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_sasl_auth_cache_name. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.5 و بالاتر در دسترس است.
lmtp_sasl_auth_cache_time (default: 90d)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_sasl_auth_cache_time. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.5 و بالاتر در دسترس است.
lmtp_sasl_auth_enable (default: no)
فعالسازی احراز هویت SASL در کلاینت LMTP در Postfix.
lmtp_sasl_auth_soft_bounce (default: yes)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_sasl_auth_soft_bounce. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.5 و بالاتر در دسترس است.
lmtp_sasl_mechanism_filter (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_sasl_mechanism_filter. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_sasl_password_maps (default: empty)
جدولهای اختیاری جستجوی کلاینت LMTP در Postfix شامل یک مدخل username:password به ازای هر میزبان یا دامنه. اگر یک میزبان یا دامنه دوردست فاقد مدخل username:password باشد، کلاینت LMTP در Postfix برای احراز هویت در آن میزبان دوردست تلاش نمیکند.
lmtp_sasl_password_result_delimiter (default: :)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_sasl_password_result_delimiter. برای جزئیات به آن مراجعه کنید.
lmtp_sasl_path (default: empty)
اطلاعات مختص پیادهسازی که به افزونه پیادهسازی SASL انتخابشده با lmtp_sasl_type ارسال میشود. این مورد معمولاً نام فایل پیکربندی یا نقطه اتصال (rendezvous point) را مشخص میکند.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_sasl_security_options (default: noplaintext, noanonymous)
گزینههای امنیتی SASL؛ از نسخه Postfix 2.3 به بعد، فهرست گزینههای موجود به نوع پیادهسازی کلاینت SASL انتخابشده با lmtp_sasl_type بستگی دارد.
ویژگیهای امنیتی زیر برای پیادهسازی کلاینت SASL از نوع cyrus تعریف شدهاند:
- noplaintext
- غیرمجاز
کردن
روشهای
احراز
هویتی که از
گذرواژههای
متنی ساده
استفاده
میکنند.
- noactive
- غیرمجاز
کردن
روشهای
احراز
هویتی که در
برابر
حملات فعال
غیردیکشنری
آسیبپذیر
هستند.
- nodictionary
- غیرمجاز
کردن
روشهای
احراز
هویتی که در
برابر
حملات
غیرفعال
دیکشنری
آسیبپذیر
هستند.
- noanonymous
- غیرمجاز
کردن
ورودهای
ناشناس.
مثال:
lmtp_sasl_security_options = noplaintext
lmtp_sasl_tls_security_options (default: $lmtp_sasl_security_options)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_sasl_tls_security_options. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_sasl_tls_verified_security_options (default: $lmtp_sasl_tls_security_options)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_sasl_tls_verified_security_options. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_sasl_type (default: cyrus)
نوع افزونه SASL که کلاینت LMTP در Postfix باید برای احراز هویت استفاده کند. انواع موجود با دستور "postconf -A" فهرست میشوند.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_send_dummy_mail_auth (default: no)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_send_dummy_mail_auth. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.9 و بالاتر در دسترس است.
lmtp_send_xforward_command (default: no)
ارسال یک دستور XFORWARD به سرور دوردست LMTP زمانی که پاسخ LHLO سرور LMTP پشتیبانی از XFORWARD را اعلام میکند. این به عامل تحویل lmtp(8) که برای تزریق پیام به پالایه محتوا استفاده میشود امکان میدهد نام، آدرس، پروتکل و نام HELO کلاینت اصلی را به فیلتر محتوا و سرور LMTP بعدی هدایت کند. پیش از تغییر مقدار به yes، بررسی کنید که فیلتر محتوای شما از این دستور پشتیبانی کند.
این ویژگی در Postfix 2.1 و بالاتر در دسترس است.
lmtp_sender_dependent_authentication (default: no)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_sender_dependent_authentication. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_skip_5xx_greeting (default: yes)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_skip_5xx_greeting. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_skip_quit_response (default: no)
منتظر ماندن برای دریافت پاسخ دستور QUIT در LMTP.
lmtp_starttls_timeout (default: 300s)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_starttls_timeout. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tcp_port (default: 24)
پورت پیشفرض TCP که کلاینت LMTP در Postfix به آن متصل میشود. یک نام نمادین (به services(5) مراجعه کنید) یا یک پورت عددی مشخص کنید.
lmtp_tls_CAfile (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_tls_CAfile. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_CApath (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_tls_CApath. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_block_early_mail_reply (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_tls_block_early_mail_reply. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.7 و بالاتر در دسترس است.
lmtp_tls_cert_file (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_tls_cert_file. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_chain_files (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_tls_chain_files. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 3.4 و بالاتر در دسترس است.
lmtp_tls_ciphers (default: medium)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_tls_ciphers. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.6 و بالاتر در دسترس است.
lmtp_tls_connection_reuse (default: no)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_tls_connection_reuse. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 3.4 و بالاتر در دسترس است.
lmtp_tls_dcert_file (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_tls_dcert_file. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_dkey_file (default: $lmtp_tls_dcert_file)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_tls_dkey_file. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_eccert_file (default: empty)
نسخه مخصوص LMTP از پارامتر پیکربندی smtp_tls_eccert_file. برای جزئیات به آن مراجعه کنید.
این ویژگی در Postfix 2.6 و بالاتر در دسترس است، در صورتی که Postfix با OpenSSL 1.0.0 یا بالاتر کامپایل و پیوند داده شده باشد.
lmtp_tls_eckey_file (default: empty)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_eckey_file. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.6 و بالاتر، در صورتی که Postfix با OpenSSL 1.0.0 یا بالاتر کامپایل و پیوند شده باشد، در دسترس است.
lmtp_tls_enable_rpk (default: yes)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_enable_rpk. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 3.9 و بالاتر در دسترس است.
lmtp_tls_enforce_peername (default: yes)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_enforce_peername. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_enforce_sts_mx_patterns (default: yes)
به smtp_tls_enforce_sts_mx_patterns مراجعه کنید.
این قابلیت در Postfix >= 3.10.5 در دسترس است.
lmtp_tls_exclude_ciphers (default: empty)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_exclude_ciphers. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_fingerprint_cert_match (default: empty)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_fingerprint_cert_match. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.5 و بالاتر در دسترس است.
lmtp_tls_fingerprint_digest (default: see postconf -d output)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_fingerprint_digest. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.5 و بالاتر در دسترس است.
lmtp_tls_force_insecure_host_tlsa_lookup (default: no)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_force_insecure_host_tlsa_lookup. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.11 و بالاتر در دسترس است.
lmtp_tls_key_file (default: $lmtp_tls_cert_file)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_key_file. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_loglevel (default: 0)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_loglevel. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_mandatory_ciphers (default: medium)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_mandatory_ciphers. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_mandatory_exclude_ciphers (default: empty)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_mandatory_exclude_ciphers. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_mandatory_protocols (default: see 'postconf -d' output)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_mandatory_protocols. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_note_starttls_offer (default: no)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_note_starttls_offer. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_per_site (default: empty)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_per_site. برای جزئیات به آن مراجعه کنید.
این قابلیت از Postfix 3.9 منسوخ شده است. به جای آن lmtp_tls_policy_maps را مشخص کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_policy_maps (default: empty)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_policy_maps. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_protocols (default: see 'postconf -d' output)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_protocols. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.6 و بالاتر در دسترس است.
lmtp_tls_scert_verifydepth (default: 9)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_scert_verifydepth. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_secure_cert_match (default: nexthop)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_secure_cert_match. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_security_level (default: empty)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_security_level. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_servername (default: empty)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_servername. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 3.4 و بالاتر در دسترس است.
lmtp_tls_session_cache_database (default: empty)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_session_cache_database. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_session_cache_timeout (default: 3600s)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_session_cache_timeout. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_trust_anchor_file (default: empty)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_trust_anchor_file. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.11 و بالاتر در دسترس است.
lmtp_tls_verify_cert_match (default: hostname)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_verify_cert_match. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_tls_wrappermode (default: no)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_tls_wrappermode. برای جزئیات به آن مراجعه کنید.
این قابلیت در Postfix 3.0 و بالاتر در دسترس است.
lmtp_use_tls (default: no)
نسخهٔ ویژهٔ LMTP از پارامتر پیکربندی smtp_use_tls. برای جزئیات به آن مراجعه کنید.
این قابلیت از Postfix 3.9 منسوخ شده است. به جای آن lmtp_tls_security_level را مشخص کنید.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
lmtp_xforward_timeout (default: 300s)
مهلت زمانی کلاینت LMTP در Postfix برای ارسال دستور XFORWARD و دریافت پاسخ کارگزار LMTP دوردست.
در صورت بروز مشکل، کلاینت آدرس بعدی را در فهرست مبادلهگر ایمیل امتحان نمیکند.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمان پیشفرض s (ثانیه) است.
این قابلیت در Postfix 2.1 و بالاتر در دسترس است.
local_command_shell (default: empty)
برنامه پوسته اختیاری برای تحویل local(8) به دستورهای غیر Postfix. بهطور پیشفرض، دستورهای غیر Postfix مستقیماً اجرا میشوند؛ دستورها تنها زمانی به پوسته پیشفرض (معمولاً /bin/sh) داده میشوند که حاوی نویسههای متا پوسته یا دستورهای توکار پوسته باشند.
«پوسته محدودشده sendmail» موسوم به (smrsh) برنامهای است که اغلب افراد برای محدود کردن برنامههای قابل اجرا از طریق پروندههای forward. بهکار میبرند (smrsh بخشی از توزیع Sendmail است).
نکته: هنگامی که یک برنامه پوسته مشخص شود، حتی زمانی که دستور فاقد نویسههای متا یا دستورهای توکار پوسته باشد نیز فراخوانی میشود.
مثال:
local_command_shell = /some/where/smrsh -c local_command_shell = /bin/bash -c
local_delivery_status_filter (default: $default_delivery_status_filter)
فیلتر اختیاری برای عامل تحویل local(8) جهت تغییر کد وضعیت یا متن توضیحی تحویلهای موفق یا ناموفق. برای جزئیات به default_delivery_status_filter مراجعه کنید.
این قابلیت در Postfix 3.0 و بالاتر در دسترس است.
local_destination_concurrency_limit (default: 2)
حداکثر تعداد تحویلهای موازی از طریق ترابرد تحویل ایمیل محلی به یک گیرنده یکسان (هنگامی که "local_destination_recipient_limit = 1") یا حداکثر تعداد تحویلهای موازی به یک دامنه محلی یکسان (هنگامی که "local_destination_recipient_limit > 1"). این محدودیت توسط مدیر صف اعمال میشود. نام ترابرد تحویل پیام، فیلد اول در مدخل پرونده master.cf است.
حد پایین ۲ توصیه میشود، صرفاً برای حالتی که کاربری یک دستور سنگین پوسته در پرونده forward. یا در یک نام مستعار داشته باشد (مانند مدیر فهرست پستی). اجرای همزمان تعداد زیادی از این دستورها مطلوب نیست.
local_destination_recipient_limit (default: 1)
حداکثر تعداد گیرندگان به ازای هر تحویل پیام از طریق ترابرد تحویل ایمیل محلی. این محدودیت توسط مدیر صف اعمال میشود. نام ترابرد تحویل پیام فیلد اول در مدخل پرونده master.cf است.
تنظیم این پارامتر روی مقداری بزرگتر از ۱، مفهوم local_destination_concurrency_limit را از همزمانی به ازای گیرنده به همزمانی به ازای دامنه تغییر میدهد.
local_header_rewrite_clients (default: permit_inet_interfaces)
بازنویسی یا افزودن سرآیندهای پیام در ایمیلهای این کلاینتها، بهروزرسانی نشانیهای ناقص با نام دامنه در myorigin$ یا mydomain$، و افزودن سرآیندهای مفقود.
برای جزئیات چگونگی الحاق نامهای دامنه به نشانیهای ناقص، پارامترهای append_at_myorigin و append_dot_mydomain را ببینید.
برای بازنویسی اختیاری یا افزودن سرآیندهای پیام در ایمیلهای کلاینتهای دیگر، remote_header_rewrite_domain را ببینید.
فهرستی از صفر یا چند مورد از موارد زیر را مشخص کنید:
- permit_inet_interfaces
- الحاق نام
دامنه
موجود در myorigin$
یا mydomain$
هنگامی که
نشانی IP
کلاینت با
inet_interfaces$ تطبیق
داشته باشد.
این گزینه
بهطور
پیشفرض
فعال است.
- permit_mynetworks
- الحاق نام
دامنه
موجود در myorigin$
یا mydomain$
هنگامی که
نشانی IP
کلاینت با
هر شبکه یا
نشانی شبکه
فهرستشده
در mynetworks$ تطبیق
داشته باشد.
این تنظیم
مانع از
بازنویسی
نشانی
سرآیند
ایمیل راه
دور در صورت
هدایت
ایمیل توسط
یک سیستم
مجاور
نخواهد شد.
- permit_sasl_authenticated
- الحاق نام
دامنه
موجود در myorigin$
یا mydomain$
هنگامی که
هویت
کلاینت با
موفقیت از
طریق
پروتکل (RFC 4954 (AUTH
احراز شود.
- permit_tls_clientcerts
- الحاق نام
دامنه
موجود در myorigin$
یا mydomain$
هنگامی که
اثر انگشت
گواهی TLS یا
اثر انگشت
کلید عمومی
کلاینت
دوردست SMTP (در
Postfix 2.9 و بالاتر)
در relay_clientcerts$
فهرست شده
باشد.
الگوریتم
هضم اثر
انگشت از
طریق
پارامتر
smtpd_tls_fingerprint_digest قابل
پیکربندی
است (پیش از
نسخه ۲٫۵ Postfix
بهطور
ثابت md5 بود).
الگوریتم پیشفرض در Postfix >= 3.6 با مقدار compatibility_level برابر ۳٫۶ یا بالاتر، برابر sha256 است. در Postfix <= 3.5، الگوریتم پیشفرض md5 است. الگوریتم استاندارد فعلی sha256 است. پیشرفتهای اخیر در تحلیل رمز توابع هش منجر به منسوخ شدن md5 و sha1 به نفع sha256 شده است. با این حال، تا زمانی که حمله شناختهشده «پیشتصویر دوم» علیه الگوریتمهای قدیمیتر وجود نداشته باشد، استفاده از آنها در این زمینه، هرچند غیرتوصیهشده، کماکان ایمن تلقی میشود.
- permit_tls_all_clientcerts
- الحاق نام
دامنه
موجود در myorigin$
یا mydomain$
هنگامی که
گواهی TLS
کلاینت
دوردست SMTP با
موفقیت
تأیید شود،
صرفنظر از
اینکه در
کارگزار
فهرست شده
باشد یا
خیر، و بدون
در نظر
گرفتن مرجع
صدور گواهی.
- check_address_map type:table
- type:table
- الحاق نام
دامنه
موجود در myorigin$
یا mydomain$
هنگامی که
نشانی IP
کلاینت با
جدول
جستجوی
مشخصشده
تطبیق دارد.
نتیجه
جستجو
نادیده
گرفته
میشود و
هیچ جستجوی
زیرشبکهای
انجام
نمیشود.
این حالت
برای مثال
برای
جدولهای
جستجوی pop-before-smtp
مناسب است.
مثالها:
تنظیم سازگار با گذشته در Postfix < 2.2: همیشه سرآیندهای پیام بازنویسی شوند، و همیشه دامنه محلی به نشانیهای ناقص سرآیند پیوست شود.
local_header_rewrite_clients = static:all
تنظیم دقیق (و پیشفرض): بازنویسی سرآیندها تنها در نامههای ارسالی از sendmail در Postfix و نامههای SMTP از همین رایانه.
local_header_rewrite_clients = permit_inet_interfaces
تنظیم بینابینی: بازنویسی نشانیهای سرآیند و پیوست اطلاعات myorigin$ یا mydomain$ تنها برای نامههای Postfix sendmail، کلاینتهای محلی، یا کلاینتهای احرازهویتشدهٔ SMTP.
نکته: این تنظیم مانع از بازنویسی نشانی سرآیند ایمیل راه دور هنگامی که ایمیل توسط سیستم مجاور هدایت میشود، نخواهد شد.
local_header_rewrite_clients = permit_mynetworks,
permit_sasl_authenticated permit_tls_clientcerts
check_address_map lmdb:/etc/postfix/pop-before-smtp
به جای :lmdb، برخی سیستمها از :cdb، :hash یا :dbm استفاده میکنند.
local_login_sender_maps (default: static:*)
فهرستی از جدولهای جستجو که براساس نام ورود UNIX بررسی میشوند، و فهرستی از الگوهای مجاز فرستنده پاکت را که با فاصله یا کاما جدا شدهاند، برمیگردانند. این الگوهای فرستنده توسط دستور postdrop(1) در Postfix اعمال میشوند. حالت پیشفرض سازگار با گذشته است: هر کاربری میتواند هر نشانی فرستنده پاکتی را مشخص کند.
زمانی که نام ورود UNIX در دسترس نباشد، دستور postdrop(1) پیشوند "uid:" را به شناسه کاربری عددی اضافه کرده و از آن استفاده میکند.
این قابلیت، پسوندهای نشانی را در نشانی فرستنده پاکت مشخصشده توسط کاربر نادیده میگیرد.
نکته: جهت تطبیق نشانی سرآیند :From با نشانی فرستنده پاکت (MAIL FROM)، یک فیلتر خارجی مانند Milter را با پارامتر non_smtpd_milters مشخص کنید. برای نمونه: https://github.com/magcks/milterfrom.
الگوهای فرستنده زیر خاص هستند؛ این الگوها نمیتوانند به عنوان بخشی از یک الگوی طولانیتر استفاده شوند.
- *
- این الگو هر
نشانی
فرستنده
پاکتی را
مجاز
میداند.
- <>
- این الگو
نشانی
فرستنده
پاکت خالی
را مجاز
میداند.
پارامتر
پیکربندی
empty_address_local_login_sender_maps_lookup_key را
ببینید.
- @domain
- این الگو
هنگامی که
بخش '@' و domain
همخوانی
داشته
باشند،
نشانی
فرستنده
پاکت را
مجاز
میداند.
مثالها:
/etc/postfix/main.cf:
# Allow root and postfix full control, anyone else can only
# send mail as themselves. Use "uid:" followed by the numerical
# UID when the UID has no entry in the UNIX password file.
local_login_sender_maps =
inline:{ { root = * }, { postfix = * } },
pcre:/etc/postfix/login_senders
/etc/postfix/login_senders:
# Allow both the bare username and the user@domain forms.
/(.+)/ $1 $1@example.com
این قابلیت در Postfix 3.6 و بالاتر در دسترس است.
local_recipient_maps (default: proxy:unix:passwd.byname $alias_maps)
جدولهای جستجو شامل نامها یا آدرسهای تمام گیرندگان محلی معتبر. آدرس گیرنده زمانی محلی است که دامنهاش با $mydestination، $inet_interfaces یا $proxy_interfaces مطابقت داشته باشد.
اگر مقدار پارامتر local_recipient_maps غیرخالی باشد (حالت پیشفرض)، سرور SMTP پُستفیکس local_recipient_maps را همانطور که در "Local recipient table query format" آمده است جستجو میکند و نامهها را برای گیرندگان محلی ناشناخته رد میکند. سایر رابطهای Postfix مانند دستور sendmail(1) ممکن است همچنان یک گیرنده «ناشناخته» را بپذیرند.
تنظیمات پیشفرض local_recipient_maps فرض میکند که local_transport عامل تحویل سازگار با یونیکس local(8) را مشخص میکند که پایگاهداده passwd یونیکس (معمولاً /etc/passwd) و پایگاهداده نامهای مستعار محلی (معمولاً /etc/aliases) را جستجو میکند. عامل proxy: به سرور SMTP پُستفیکس اجازه میدهد از خارج از زندان chroot به پایگاهداده passwd یونیکس دسترسی داشته باشد.
برای سایر پیکربندیهای تحویل محلی نامه، به "When you need to change the local_recipient_maps setting in main.cf" مراجعه کنید.
از نظر فنی، جدولهای فهرستشده با $local_recipient_maps به عنوان لیست استفاده میشوند: سرور SMTP پُستفیکس تنها نیاز دارد بداند آیا رشته جستجو یافت شده است یا خیر، و از نتیجه خروجی جستجوی جدول استفاده نمیکند.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله خالی یا کاما جدا شدهاند. جدولها به ترتیب مشخصشده تا زمان یافتن یک تطابق جستجو خواهند شد.
برای غیرفعال کردن بررسی گیرنده محلی در سرور SMTP پُستفیکس، مقدار "local_recipient_maps =" (یعنی خالی) را مشخص کنید.
مثالها:
local_recipient_maps =
local_transport (default: local:$myhostname)
ترابرد پیشفرض تحویل نامه و مقصد گام بعدی (next-hop) برای تحویل نهایی به دامنههای فهرستشده در mydestination، و برای مقصدهای [ipaddress] که با $inet_interfaces یا $proxy_interfaces تطابق دارند. این اطلاعات میتواند با جدول transport(5) لغو و جایگزین شود.
بهطور پیشفرض، نامههای محلی به ترابردی به نام "local" تحویل داده میشوند که صرفاً نام سرویسی تعریفشده در فایل master.cf است.
رشتهای به قالب transport:nexthop مشخص کنید، که در آن transport نام یک ترابرد تحویل نامه تعریفشده در master.cf است. مقصد :nexthop اختیاری است؛ نحو نگارش آن در صفحه راهنمای عامل تحویل مربوطه مستند شده است.
هشدار: اگر عامل تحویل محلی پیشفرض را لغو و جایگزین کنید، لازم است سند LOCAL_RECIPIENT_README را مطالعه کنید؛ در غیر این صورت ممکن است سرور SMTP نامههای ارسالی به گیرندگان محلی را رد کند.
luser_relay (default: empty)
مقصد دریافت فراگیر (catch-all) اختیاری برای گیرندگان ناشناخته local(8). بهطور پیشفرض، نامههای ارسالی برای گیرندگان ناشناخته در دامنههای منطبق با $mydestination، $inet_interfaces یا $proxy_interfaces به عنوان غیرقابلتحویل بازگردانده میشوند.
مقدار luser_relay مشمول گسترش پارامترهای پیکربندی $name در Postfix نمیشود. در عوض، گسترشهای $name زیر روی آن انجام میگیرند:
- $domain
- دامنه
گیرنده.
- $extension
- پسوند آدرس
گیرنده.
- $home
- دایرکتوری
خانگی
گیرنده.
- $local
- کل بخش محلی
(localpart) آدرس
گیرنده.
- $recipient
- آدرس کامل
گیرنده.
- $recipient_delimiter
- جداکننده
پسوند آدرس
که در آدرس
گیرنده
یافت شد (Postfix
نسخه ۲.۱۱ و
بعدتر)، یا
جداکننده
سراسری
پسوند آدرس
گیرنده در
سیستم (Postfix
نسخه ۲.۱۰ و
قبلتر).
- $shell
- شِل ورود به
سیستم
گیرنده.
- $user
- نام کاربری
گیرنده.
- ${name?value}
- ${name?{value}} (Postfix >= 3.0)
- در صورتی که
$name غیرخالی
باشد، به value
گسترش
مییابد.
- ${name:value}
- ${name:{value}} (Postfix >= 3.0)
- در صورتی که
$name خالی
باشد، به value
گسترش
مییابد.
- ${name?{value1}:{value2}} (Postfix >= 3.0)
- در صورتی که
$name غیرخالی
باشد، به value1
و در غیر
این صورت به
value2 گسترش
مییابد.
به جای $name میتوانید ${name} یا $(name) را نیز مشخص کنید.
نکته: luser_relay تنها برای عامل تحویل local(8) پُستفیکس عمل میکند.
نکته: اگر از این ویژگی برای حسابهایی که در فایل رمز عبور یونیکس نیستند استفاده میکنید، باید در فایل main.cf مقدار "local_recipient_maps =" (یعنی خالی) را تعیین کنید؛ در غیر این صورت سرور SMTP پُستفیکس نامههای مربوط به حسابهای غیر یونیکسی را با خطای "User unknown in local recipient table" رد خواهد کرد.
مثالها:
luser_relay = $user@other.host luser_relay = $local@other.host luser_relay = admin+$local
mail_name (default: Postfix)
نام سیستم ایمیل که در هدرهای Received:، در بنر خوشآمدگویی SMTP، و در نامههای برگشتخورده نمایش داده میشود.
mail_owner (default: postfix)
حساب کاربری سیستم یونیکس که مالک صف Postfix و اکثر فرایندهای دیمن Postfix است. نام یک حساب کاربری غیرمجاز (بدون امتیاز ویژه) را مشخص کنید که شناسه کاربری (UID) یا گروهی (GID) مشترک با حسابهای دیگر نداشته باشد، و مالک هیچ فایل یا فرایند دیگری در سیستم نباشد. بهویژه، nobody یا daemon را مشخص نکنید. لطفاً از یک شناسه کاربری و شناسه گروه اختصاصی استفاده کنید.
هنگام تغییر مقدار این پارامتر، باید مجدداً "postfix set-permissions" را اجرا کنید (در نسخه ۲.۰ و قبلتر Postfix: "/etc/postfix/post-install set-permissions").
mail_release_date (default: see postconf -d output)
تاریخ انتشار Postfix، در قالب "YYYYMMDD".
mail_spool_directory (default: see postconf -d output)
دایرکتوری محل نگهداری صندوقهای پستی سبک یونیکس local(8). تنظیمات پیشفرض به نوع سیستم بستگی دارد. برای تحویل به سبک maildir، نامی را مشخص کنید که به / ختم میشود.
نکته: تحویل maildir با مجوزهای گیرنده انجام میشود. اگر از تنظیم mail_spool_directory برای تحویل به سبک maildir استفاده میکنید، باید دایرکتوری سطح بالای maildir را از قبل ایجاد کنید. Postfix آن را ایجاد نخواهد کرد.
مثالها:
mail_spool_directory = /var/mail mail_spool_directory = /var/spool/mail
mail_version (default: see postconf -d output)
نسخه سیستم ایمیل. انتشارهای پایدار به صورت major.minor.patchlevel نامگذاری میشوند. انتشارهای آزمایشی شامل تاریخ انتشار نیز هستند. رشته نسخه میتواند برای نمونه در بنر خوشآمدگویی SMTP استفاده شود.
mailbox_command (default: empty)
دستور خارجی اختیاری که عامل تحویل local(8) باید برای تحویل به صندوق پستی استفاده کند. دستور با امتیازهای شناسه کاربری و شناسه گروه اصلی گیرنده اجرا میشود. استثنا: تحویل دستور برای root با امتیازهای $default_privs اجرا میشود. این مسئله مشکلی ایجاد نمیکند، زیرا ۱) نامه برای root باید همیشه به یک کاربر واقعی alias شود و ۲) نباید به عنوان root وارد شوید، بلکه به جای آن از "su" استفاده کنید.
متغیرهای محیطی زیر به این دستور صادر (export) میشوند:
- CLIENT_ADDRESS
- آدرس شبکه
کلاینت راه
دور. موجود
در Postfix نسخه
۲.۲ و بعدتر.
- CLIENT_HELO
- پارامتر
دستور EHLO
کلاینت راه
دور. موجود
در Postfix نسخه
۲.۲ و بعدتر.
- CLIENT_HOSTNAME
- نام میزبان
کلاینت راه
دور. موجود
در Postfix نسخه
۲.۲ و بعدتر.
- CLIENT_PROTOCOL
- پروتکل
کلاینت راه
دور. موجود
در Postfix نسخه
۲.۲ و بعدتر.
- DOMAIN
- بخش دامنه
آدرس
گیرنده.
- ENVID
- شناسه
اختیاری
پاکت نامه
(envelope ID) مطابق RFC 3461.
موجود در Postfix
نسخه ۳.۹ و
بعدتر.
- EXTENSION
- پسوند
اختیاری
آدرس.
- HOME
- دایرکتوری
خانگی
گیرنده.
- LOCAL
- بخش محلی
آدرس
گیرنده.
- LOGNAME
- نام کاربری
گیرنده.
- ORIGINAL_RECIPIENT
- کل آدرس
گیرنده،
قبل از
هرگونه
بازنویسی
آدرس یا نام
مستعار (aliasing).
- RECIPIENT
- آدرس کامل
گیرنده.
- SASL_METHOD
- روش احراز
هویت SASL
مشخصشده
در دستور AUTH
کلاینت راه
دور. موجود
در Postfix نسخه
۲.۲ و بعدتر.
- SASL_SENDER
- آدرس
فرستنده SASL
مشخصشده
در دستور MAIL FROM
کلاینت راه
دور. موجود
در Postfix نسخه
۲.۲ و بعدتر.
- SASL_USER
- نام کاربری
SASL مشخصشده
در دستور AUTH
کلاینت راه
دور. موجود
در Postfix نسخه
۲.۲ و بعدتر.
- SENDER
- آدرس کامل
فرستنده.
- SHELL
- شِل ورود به
سیستم
گیرنده.
- USER
- نام کاربری
گیرنده.
برخلاف سایر پارامترهای پیکربندی Postfix، پارامتر mailbox_command مشمول جایگزینیهای $name نمیشود. این کار برای آسانتر کردن تعیین نحو شِل است (مثال زیر را ببینید).
در صورت امکان، از کاراکترهای متای شِل خودداری کنید زیرا باعث میشوند Postfix ناچار به اجرای یک فرایند پرهزینه شِل شود. اگر تحویل از طریق "procmail" انجام میگیرد، اجرای شِل تفاوت محسوسی در هزینه کل ایجاد نخواهد کرد.
نکته: اگر از قابلیت mailbox_command برای تحویل نامه در سطح کل سیستم استفاده میکنید، باید یک نام مستعار تعریف کنید که نامههای root را به یک کاربر واقعی فوروارد کند.
ترتیب تقدم قابلیتهای تحویل local(8) از زیاد به کم عبارت است از: aliases، فایلهای .forward، mailbox_transport_maps، mailbox_transport، mailbox_command_maps، mailbox_command، home_mailbox، mail_spool_directory، fallback_transport_maps، fallback_transport و luser_relay.
مثالها:
mailbox_command = /some/where/procmail
mailbox_command = /some/where/procmail -a "$EXTENSION"
mailbox_command = /some/where/maildrop -d "$USER"
-f "$SENDER" "$EXTENSION"
mailbox_command_maps (default: empty)
جدولهای جستجوی اختیاری شامل دستورات خارجی به ازای هر گیرنده برای استفاده در تحویل صندوق پستی local(8). رفتار آن مشابه mailbox_command است.
ترتیب اولویت قابلیتهای تحویل local(8) از زیاد به کم عبارت است از: aliases، فایلهای .forward، mailbox_transport_maps، mailbox_transport، mailbox_command_maps، mailbox_command، home_mailbox، mail_spool_directory، fallback_transport_maps، fallback_transport و luser_relay.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله خالی یا کاما جدا شدهاند. جدولها به ترتیب مشخصشده تا زمان یافتن یک تطابق جستجو خواهند شد.
mailbox_delivery_lock (default: see postconf -d output)
روش قفلکردن صندوق پستی سبک یونیکس local(8) پیش از اقدام به تحویل. برای مشاهده فهرست روشهای موجود قفلکردن فایل، از دستور "postconf -l" استفاده کنید.
این تنظیم در تحویل به سبک maildir نادیده گرفته میشود، زیرا چنین تحویلهایی بدون قفلهای صریح نیز ایمن هستند.
نکته: روش dotlock مستلزم آن است که UID یا GID گیرنده دسترسی نوشتن به دایرکتوری والد فایل صندوق پستی را داشته باشد.
نکته: تنظیم پیشفرض این پارامتر وابسته به سیستم است.
mailbox_size_limit (default: 51200000)
حداکثر اندازه هر صندوق پستی انفرادی local(8) یا فایل maildir، یا صفر (نامحدود). در عمل، این پارامتر اندازه هر فایلی را که هنگام تحویل محلی روی آن نوشته میشود محدود میکند، از جمله فایلهایی که توسط دستورات خارجی اجراشده توسط عامل تحویل local(8) ایجاد یا ویرایش میشوند. این مقدار نمیتواند از LONG_MAX (معمولاً یک عدد صحیح علامتدار ۳۲ بیتی یا ۶۴ بیتی) فراتر رود.
این محدودیت نباید کوچکتر از محدودیت اندازه پیام باشد.
mailbox_transport (default: empty)
ترابرد تحویل پیام اختیاری که عامل تحویل local(8) باید برای تحویل صندوق پستی به تمام گیرندگان محلی استفاده کند، صرفنظر از اینکه در پایگاهداده passwd یونیکس یافت شوند یا خیر.
ترتیب تقدم قابلیتهای تحویل local(8) از زیاد به کم عبارت است از: aliases، فایلهای .forward، mailbox_transport_maps، mailbox_transport، mailbox_command_maps، mailbox_command، home_mailbox، mail_spool_directory، fallback_transport_maps، fallback_transport و luser_relay.
mailbox_transport_maps (default: empty)
جدولهای جستجوی اختیاری شامل ترابردهای تحویل پیام به ازای هر گیرنده برای استفاده در تحویل صندوق پستی local(8)، صرفنظر از اینکه گیرندگان در پایگاهداده passwd یونیکس یافت شوند یا خیر.
ترتیب اولویت قابلیتهای تحویل local(8) از زیاد به کم عبارت است از: aliases، فایلهای .forward، mailbox_transport_maps، mailbox_transport، mailbox_command_maps، mailbox_command، home_mailbox، mail_spool_directory، fallback_transport_maps، fallback_transport و luser_relay.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله خالی یا کاما جدا شدهاند. جدولها به ترتیب تعیینشده تا زمان یافتن تطابق جستجو خواهند شد.
به دلایل امنیتی، این ویژگی اجازه جایگزینیهای $number را در نقشههای عبارت منظم (regex) نمیدهد.
این ویژگی در Postfix نسخه ۲.۳ و بعدتر در دسترس است.
maillog_file (default: empty)
نام یک فایل لاگ اختیاری که توسط سرویس postlogd(8) پُستفیکس نوشته میشود. مقدار خالی، لاگگیری به syslogd(8) را انتخاب میکند. برای انتخاب لاگگیری به خروجی استاندارد، مقدار "/dev/stdout" را مشخص کنید. لاگگیری در stdout نیازمند این است که Postfix با "postfix start-fg" راهاندازی شده باشد.
نکته ۱: مقدار پارامتر maillog_file باید دارای پیشوندی باشد که با پارامتر maillog_file_prefixes مشخص شده است.
نکته ۲: برخی برنامههای غیردیمن Postfix ممکن است قبل از پردازش پارامترهای پیکربندی و گزینههای خط فرمان خود، همچنان اطلاعات را به syslogd(8) لاگ کنند.
این ویژگی در Postfix نسخه ۳.۴ و بعدتر در دسترس است.
maillog_file_compressor (default: gzip)
برنامهای که پس از چرخاندن (rotate) فایل $maillog_file توسط "postfix logrotate" باید اجرا شود. این دستور با نام فایل لاگ چرخاندهشده به عنوان اولین آرگومان خود اجرا میشود.
این ویژگی در Postfix نسخه ۳.۴ و بعدتر در دسترس است.
maillog_file_permissions (default: 0600)
مجوزهای دسترسی به فایل که هنگام ایجاد فایل $maillog_file برای بار نخست، یا هنگام ایجاد فایل پس از چرخاندن فایل موجود تنظیم میشود. یکی از این مقادیر را مشخص کنید: 0600 (فقط دسترسی خواندن/نوشتن کاربر ارشد)، 0640 (افزودن دسترسی خواندن به 'group')، یا 0644 (افزودن دسترسی خواندن به 'other'). کاراکتر ابتدایی '0' اختیاری است.
این ویژگی در Postfix نسخه ۳.۹ و بعدتر در دسترس است.
maillog_file_prefixes (default: /var, /dev/stdout)
فهرستی از پیشوندهای مجاز برای مقدار maillog_file. این یک قابلیت امنیتی برای مهار خسارت ناشی از یک اشتباه منفرد در پیکربندی است. یک یا چند رشته پیشوند را با کاما یا نویسه فاصله از هم جدا کنید.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
maillog_file_rotate_suffix (default: %Y%m%d-%H%M%S)
قالب پسوندی که هنگام چرخش لاگ با «postfix logrotate» به $maillog_file اضافه میشود. برای نحو به strftime(3) مراجعه کنید. پسوند پیشفرض، YYYYMMDD-HHMMSS، امکان چرخش مکرر گزارشها را فراهم میکند.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
mailq_path (default: see postconf -d output)
قابلیت سازگاری با Sendmail که مکان نصب دستور mailq(1) مربوط به Postfix را مشخص میکند. این دستور میتواند برای فهرست کردن صف ایمیل Postfix استفاده شود.
manpage_directory (default: see postconf -d output)
محل نصب صفحات راهنمای کارگزار Postfix.
maps_rbl_domains (default: empty)
قابلیت منسوخشده: بهجای آن از قابلیت reject_rbl_client استفاده کنید.
maps_rbl_reject_code (default: 554)
کد عددی پاسخ سرور SMTP در Postfix هنگامی که درخواست یک کلاینت SMTP دوردست توسط محدودیتهای reject_rbl_client، reject_rhsbl_client، reject_rhsbl_reverse_client، reject_rhsbl_sender یا reject_rhsbl_recipient مسدود میشود.
این مقدار را تغییر ندهید مگر آنکه درک کاملی از RFC 5321 داشته باشید.
masquerade_classes (default: envelope_sender, header_sender, header_recipient)
آدرسهایی که مشمول ماسکگذاری آدرس (address masquerading) میشوند.
بهطور پیشفرض، ماسکگذاری آدرس به آدرسهای فرستنده پاکت (envelope sender) و آدرسهای فرستنده و گیرنده در سرآیند محدود است. این به شما امکان میدهد در یک درگاه ایمیل از ماسکگذاری آدرس استفاده کنید، در حالی که همچنان قادر به فوروارد کردن ایمیل به کاربران در ماشینهای مجزا هستید.
صفر یا چند مورد از اینها را مشخص کنید: envelope_sender، envelope_recipient، header_sender، header_recipient
masquerade_domains (default: empty)
فهرست اختیاری از دامنههایی که ساختار زیردامنه آنها در آدرسهای ایمیل حذف خواهد شد.
فهرست از چپ به راست پردازش میشود و با اولین تطابق متوقف میگردد. بنابراین،
masquerade_domains = foo.example.com example.com
«user@any.thing.foo.example.com» را به «user@foo.example.com» تقلیل میدهد، اما «user@any.thing.else.example.com» را به «user@example.com» تقلیل میدهد.
نام دامنهای که پیشوند ! داشته باشد بدین معناست که این دامنه یا زیردامنههای آن ماسکگذاری نشوند. بنابراین،
masquerade_domains = !foo.example.com example.com
«user@any.thing.foo.example.com» یا «user@foo.example.com» را تغییر نمیدهد، اما «user@any.thing.else.example.com» را به «user@example.com» تقلیل میدهد.
نکته: در Postfix نسخه 2.2، ماسکگذاری آدرس در سرآیند پیام تنها زمانی رخ میدهد که بازنویسی آدرس سرآیند فعال باشد:
- پیام با دستور sendmail(1) مربوط به Postfix دریافت شده باشد،
- پیام از یک کلاینت شبکهای منطبق با $local_header_rewrite_clients دریافت شده باشد،
- پیام از
شبکه
دریافت شده
باشد، و
پارامتر
remote_header_rewrite_domain
مقداری
غیرخالی را
مشخص کرده
باشد.
برای داشتن رفتار پیش از نسخه 2.2 کارگزار Postfix، عبارت «local_header_rewrite_clients = static:all» را مشخص کنید.
مثال:
masquerade_domains = $mydomain
masquerade_exceptions (default: empty)
فهرست اختیاری از نامهای کاربری که مشمول ماسکگذاری آدرس نمیشوند، حتی اگر آدرس آنها با $masquerade_domains مطابقت داشته باشد.
بهطور پیشفرض، ماسکگذاری آدرس هیچ استثنایی قائل نمیشود.
فهرستی از نامهای کاربری، الگوهای «/file/name» یا «type:table» را با کاما و/یا نویسه فاصله جدا کنید. فهرست از چپ به راست مطابقت داده میشود و جستجو با اولین تطابق متوقف میگردد. یک الگوی «/file/name» با محتویات آن جایگزین میشود؛ جدول جستجوی «type:table» زمانی مطابقت مییابد که یک نام با یک کلید جستجو منطبق باشد (نتیجه جستجو نادیده گرفته میشود). خطوط طولانی را با شروع خط بعدی با نویسه فاصله ادامه دهید. برای مستثنی کردن یک نام از فهرست، از «!pattern» استفاده کنید. ساختار «!/file/name» تنها در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
مثالها:
masquerade_exceptions = root, mailer-daemon masquerade_exceptions = root
master_service_disable (default: empty)
غیرفعالسازی گزینشی پورتهای شنوندهٔ master(8) بر اساس نوع سرویس یا بر اساس نام و نوع سرویس. فهرستی از انواع سرویس («inet»، «unix»، «fifo» یا «pass») یا چندتاییهای «name/type» را مشخص کنید، که در آن «name» فیلد اول ورودی در master.cf و «type» نوع سرویس است. همانند سایر فهرستهای تطبیق Postfix، جستجو با اولین تطابق متوقف میشود. برای مستثنی کردن یک سرویس از فهرست، «!pattern» را مشخص کنید. بهطور پیشفرض، همه پورتهای شنوندهٔ master(8) فعال هستند.
نکته: این قابلیت از الگوهای «/file/name» یا «type:table» و همچنین از نویسههای عام مانند «*» یا «all» پشتیبانی نمیکند. این امر عمدی است.
مثالها:
# With Postfix 2.6..2.10 use '.' instead of '/'. # Turn on all master(8) listener ports (the default). master_service_disable = # Turn off only the main SMTP listener port. master_service_disable = smtp/inet # Turn off all TCP/IP listener ports. master_service_disable = inet # Turn off all TCP/IP listener ports except "foo". master_service_disable = !foo/inet, inet
این قابلیت در Postfix نسخه 2.6 و بالاتر در دسترس است.
max_idle (default: 100s)
حداکثر مدت زمانی که یک فرایند دیمن بیکار Postfix پیش از خاتمهٔ داوطلبانه، منتظر اتصال ورودی میماند. این پارامتر توسط مدیر صف Postfix و سایر فرایندهای دیمن بلندمدت نادیده گرفته میشود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه پسوند یکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
max_use (default: 100)
حداکثر تعداد اتصالات ورودی که یک فرایند دیمن Postfix پیش از خاتمه داوطلبانه سرویسدهی خواهد کرد. این پارامتر توسط مدیر صف Postfix و سایر فرایندهای دیمن بلندمدت نادیده گرفته میشود.
maximal_backoff_time (default: 4000s)
حداکثر زمان بین تلاشها برای تحویل یک پیام به تعویقافتاده (deferred).
این پارامتر باید روی مقداری بزرگتر یا مساوی با $minimal_backoff_time تنظیم شود. همچنین $queue_run_delay را ببینید.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه پسوند یکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
maximal_queue_lifetime (default: 5d)
هنگامی که تحویل پیام با خطای موقت مواجه شود و مدت زمان ماندن در صف به حد maximal_queue_lifetime برسد، پیام غیرقابلتحویل در نظر گرفته میشود.
یک مقدار زمانی غیرمنفی مشخص کنید (یک مقدار عددی صحیح به همراه پسوند یکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض d (روز) است.
در صورتی که تحویل ایمیل باید تنها یکبار تلاش شود، مقدار 0 را مشخص کنید.
message_drop_headers (default: bcc, content-length, resent-bcc, return-path)
نام سرآیندهایی از پیام که دیمن cleanup(8) پس از اعمال header_checks(5) و پیش از فراخوانی برنامههای Milter حذف خواهد کرد. تنظیمات پیشفرض با Postfix کمتر از 3.0 سازگار است.
فهرستی از نامهای سرآیند را مشخص کنید که با کاما یا فاصله از هم جدا شدهاند. تطابق نامها بدون حساسیت به حروف بزرگ و کوچک انجام میشود. فهرست نامهای سرآیند پشتیبانیشده تنها به حافظه در دسترس محدود است.
این قابلیت در Postfix نسخه 3.0 و بالاتر در دسترس است.
message_reject_characters (default: empty)
مجموعه نویسههایی که Postfix در محتوای پیام رد خواهد کرد. دنبالههای گریز معمول شبه-C شناخته میشوند: \a \b \f \n \r \t \v \ddd (حداکثر تا سه رقم هشتهشتی) و \\.
نکته ۱: این قابلیت متنی را که نیاز به رمزگشایی MIME دارد تشخیص نمیدهد. محتوای خام پیام را بازرسی میکند، درست مانند header_checks و body_checks.
نکته ۲: این قابلیت با «receive_override_options = no_header_body_checks» غیرفعال میشود.
مثال:
message_reject_characters = \0
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
message_size_limit (default: 10240000)
حداکثر اندازهٔ یک پیام بر حسب بایت، شامل اطلاعات پاکت نامه. این مقدار نمیتواند از LONG_MAX (معمولاً یک عدد صحیح علامتدار ۳۲ یا ۶۴ بیتی) فراتر رود.
نکته: هنگام ایجاد تغییرات احتیاط کنید. مقادیر بیش از حد کوچک، هنگامی که اندازهٔ پیام برگشتی (bounce) از محدودیت اندازهٔ پیام در MTA محلی یا دوردست تجاوز کند، منجر به از دست رفتن اعلانهای عدم تحویل خواهد شد.
message_strip_characters (default: empty)
مجموعه نویسههایی که Postfix از محتوای پیام حذف خواهد کرد. دنبالههای گریز معمول شبه-C شناخته میشوند: \a \b \f \n \r \t \v \ddd (حداکثر تا سه رقم هشتهشتی) و \\.
نکته ۱: این قابلیت متنی را که نیاز به رمزگشایی MIME دارد تشخیص نمیدهد. محتوای خام پیام را بازرسی میکند، درست مانند header_checks و body_checks.
نکته ۲: این قابلیت با «receive_override_options = no_header_body_checks» غیرفعال میشود.
مثال:
message_strip_characters = \0
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
meta_directory (default: see 'postconf -d' output)
مکان فایلهای غیرقابلاجرا که بین چندین نمونهٔ Postfix به اشتراک گذاشته میشوند، مانند postfix-files، dynamicmaps.cf و فایلهای الگوی چندنمونهای main.cf.proto و master.cf.proto. این دایرکتوری تنها باید حاوی فایلهای مرتبط با Postfix باشد. معمولاً پارامتر meta_directory مقدار پیشفرضی مشابه با پارامتر config_directory دارد (/etc/postfix یا /usr/local/etc/postfix).
برای سازگاری عقبروی با نسخههای 2.6 تا 2.11 کارگزار Postfix، پیش از نصب یا ارتقای Postfix مقدار «meta_directory = $daemon_directory» را در main.cf مشخص کنید، یا در خط فرمان «make makefiles»، «make install» یا «make upgrade» مقدار «meta_directory = /path/name» را تعیین نمایید.
این قابلیت در Postfix نسخه 3.0 و بالاتر در دسترس است.
milter_command_timeout (default: 30s)
محدودیت زمانی برای ارسال یک دستور SMTP به یک برنامهٔ Milter (فیلتر ایمیل) و دریافت پاسخ آن.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه پسوند یکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_connect_macros (default: see postconf -d output)
ماکروهایی که پس از برقراری یک اتصال SMTP به برنامههای Milter (فیلتر ایمیل) ارسال میشوند. برای فهرستی از نامهای ماکروی موجود و معانی آنها به MILTER_README مراجعه کنید.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_connect_timeout (default: 30s)
محدودیت زمانی برای اتصال به یک برنامهٔ Milter (فیلتر ایمیل) و مذاکره پیرامون گزینههای پروتکل.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه پسوند یکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_content_timeout (default: 300s)
محدودیت زمانی برای ارسال محتوای پیام به برنامهٔ Milter (فیلتر ایمیل) و دریافت پاسخ آن.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه پسوند یکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_data_macros (default: see postconf -d output)
ماکروهایی که پس از دستور SMTP DATA به برنامههای Milter (فیلتر ایمیل) نسخه ۴ یا بالاتر ارسال میشوند. برای فهرستی از نامهای ماکروی موجود و معانی آنها به MILTER_README مراجعه کنید.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_default_action (default: Postfix >= 3.11: shutdown; Postfix < 3.11: tempfail)
اقدام پیشفرض در زمانی که پاسخ Milter (فیلتر ایمیل) در دسترس نباشد (برای نمونه، پیکربندی نادرست Postfix یا خرابی Milter). یکی از موارد زیر را مشخص کنید:
- accept
- طوری ادامه
داده شود که
گویی فیلتر
ایمیل وجود
ندارد.
- reject
- رد تمام
دستورهای
بعدی در این
نشست با یک
کد وضعیت
دائمی.
- tempfail
- رد تمام
دستورهای
بعدی در این
نشست با یک
کد وضعیت
موقت.
- shutdown
- در smtpd_milters، بستن
اتصال SMTP پس
از ارسال
پاسخ 421 SMTP؛ در
non_smtpd_milters، گزارش
خطای نوشتن
در فایل صف.
موجود در Postfix
نسخه 3.11 و
بالاتر.
- quarantine
- مانند «accept»،
اما پیام در
صف «hold»
منجمد
میشود.
موجود در Postfix
نسخه 2.6 و
بالاتر.
اقدام پیشفرض در Postfix نسخه 3.10 و قبلتر «tempfail» بود.
اقدام پیشفرض در Postfix نسخه 3.11 و بالاتر «shutdown» است، به این معنی که اتصال کلاینت SMTP را قطع میکند. با پیشفرض قدیمی، ممکن بود Postfix همه پیامهایی را که کلاینت در طول یک اتصال طولانیمدت ارسال میکند با خطای موقت (tempfail) مواجه سازد، حتی اگر خرابی Milter تنها موقتی بوده باشد.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_end_of_data_macros (default: see postconf -d output)
ماکروهایی که پس از پایان دادههای پیام به برنامههای Milter (فیلتر ایمیل) ارسال میشوند. برای فهرستی از نامهای ماکروی موجود و معانی آنها به MILTER_README مراجعه کنید.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_end_of_header_macros (default: see postconf -d output)
ماکروهایی که پس از پایان سرآیند پیام به برنامههای Milter (فیلتر ایمیل) ارسال میشوند. برای فهرستی از نامهای ماکروی موجود و معانی آنها به MILTER_README مراجعه کنید.
این قابلیت در Postfix نسخه 2.5 و بالاتر در دسترس است.
milter_header_checks (default: empty)
جدولهای جستجوی اختیاری برای بازرسی محتوای سرآیندهای پیامی که توسط برنامههای Milter ایجاد شدهاند. برای اقدامات موجود به صفحه راهنمای header_checks(5) مراجعه کنید. در حال حاضر، PREPEND پیادهسازی نشده است.
مثال زیر همه ایمیلهایی را که به عنوان هرزنامه (SPAM) نشانهگذاری شدهاند، به یک ماشین رسیدگی به هرزنامه ارسال میکند. توجه داشته باشید که تطابقها بهطور پیشفرض به حروف بزرگ و کوچک حساس نیستند.
/etc/postfix/main.cf:
milter_header_checks = pcre:/etc/postfix/milter_header_checks
/etc/postfix/milter_header_checks:
/^X-SPAM-FLAG:\s+YES/ FILTER mysmtp:sanitizer.example.com:25
سازوکار milter_header_checks میتواند برای مجازسازی (allowlisting) نیز استفاده شود. برای نمونه میتواند برای صرفنظر کردن از بازرسی سنگین محتوا برای ایمیلهای دارای امضای DKIM از دامنههای شناختهشده و معتبر به کار رود.
این قابلیت در Postfix نسخه 2.7، و به صورت یک پچ اختیاری برای Postfix نسخه 2.6 در دسترس است.
milter_helo_macros (default: see postconf -d output)
ماکروهایی که پس از دستور SMTP HELO یا EHLO به برنامههای Milter (فیلتر ایمیل) ارسال میشوند. برای فهرستی از نامهای ماکروی موجود و معانی آنها به MILTER_README مراجعه کنید.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_macro_daemon_name (default: $myhostname)
مقدار ماکروی {daemon_name} برای برنامههای Milter (فیلتر ایمیل). برای فهرستی از نامهای ماکروی موجود و معانی آنها به MILTER_README مراجعه کنید.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_macro_defaults (default: empty)
فهرست اختیاری از جفتهای name=value که مقادیر پیشفرض را برای ماکروهای دلخواهی که ممکن است Postfix به برنامههای Milter ارسال کند مشخص میکند. این پیشفرضها زمانی استفاده میشوند که اطلاعات متناظری از بافتار تحویل پیام وجود نداشته باشد.
جفتهای name=value یا {name=value} را که با کاما یا نویسه فاصله از هم جدا شدهاند مشخص کنید. هنگامی که یک مقدار شامل کاما یا فاصله است، جفت را درون "{}" قرار دهید (این قالب فاصلههای پس از "{" آغازین، اطراف "=" و پیش از "}" پایانی را نادیده میگیرد).
این ویژگی در Postfix نسخه 3.1 و بالاتر در دسترس است.
milter_macro_v (default: $mail_name $mail_version)
مقدار ماکروی {v} برای برنامههای Milter (فیلتر ایمیل). برای فهرستی از نامهای ماکروی موجود و معانی آنها به MILTER_README مراجعه کنید.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_mail_macros (default: see postconf -d output)
ماکروهایی که پس از دستور SMTP MAIL FROM به برنامههای Milter (فیلتر ایمیل) ارسال میشوند. برای فهرستی از نامهای ماکروی موجود و معانی آنها به MILTER_README مراجعه کنید.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_protocol (default: 6)
نسخه پروتکل فیلتر ایمیل و افزونههای اختیاری پروتکل برای ارتباط با یک برنامه Milter؛ قبل از Postfix نسخه 2.6 پروتکل پیشفرض 2 است. Postfix این شماره نسخه را در طول دستتکانی اولیه پروتکل ارسال میکند. این شماره باید با نسخه مورد انتظار برنامه فیلتر ایمیل (یا کتابخانه Milter آن) مطابقت داشته باشد.
نسخههای پروتکل:
- 2
- استفاده از
نسخه 2
پروتکل
فیلتر
ایمیل Sendmail 8
(پیشفرض با
Sendmail نسخه 8.11 .. 8.13 و Postfix
نسخه 2.3 .. 2.5).
- 3
- استفاده از
نسخه 3
پروتکل
فیلتر
ایمیل Sendmail 8.
- 4
- استفاده از
نسخه 4
پروتکل
فیلتر
ایمیل Sendmail 8.
- 6
- استفاده از
نسخه 6
پروتکل
فیلتر
ایمیل Sendmail 8
(پیشفرض با
Sendmail نسخه 8.14 و Postfix
نسخه 2.6).
افزونههای پروتکل:
- no_header_reply
- این گزینه
را زمانی
مشخص کنید
که برنامه Milter
برای تکتک
سرآیندهای
پیام پاسخ
نخواهد داد.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_rcpt_macros (default: see postconf -d output)
ماکروهایی که پس از دستور SMTP RCPT TO به برنامههای Milter (فیلتر ایمیل) ارسال میشوند. برای فهرستی از نامهای ماکروی موجود و معانی آنها به MILTER_README مراجعه کنید.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
milter_unknown_command_macros (default: see postconf -d output)
ماکروهایی که پس از یک دستور ناشناخته SMTP به برنامههای Milter (فیلتر ایمیل) نسخه 3 یا بالاتر ارسال میشوند. برای فهرستی از نامهای ماکروی موجود و معانی آنها به MILTER_README مراجعه کنید.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
mime_boundary_length_limit (default: 2048)
حداکثر طول رشتههای مرز (boundary) چندبخشی MIME. پردازشگر MIME قادر به تشخیص تفاوت بین رشتههای مرزی که در $mime_boundary_length_limit نویسه اول تفاوتی ندارند، نیست.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
mime_header_checks (default: $header_checks)
جدولهای جستجوی اختیاری برای بازرسی محتوای سرآیندهای پیام مربوط به MIME، مطابق آنچه در صفحه راهنمای header_checks(5) توضیح داده شده است.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
mime_nesting_limit (default: 100)
حداکثر سطح بازگشتی که پردازشگر MIME مدیریت خواهد کرد. Postfix ایمیلی را که تودرتویی آن عمیقتر از حد تعیینشده باشد رد میکند.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
minimal_backoff_time (default: 300s)
حداقل زمان بین تلاشها برای تحویل یک پیام به تعویق افتاده؛ قبل از Postfix نسخه 2.4 مقدار پیشفرض 1000s بود.
این پارامتر همچنین مدت زمانی را که یک مقصد غیرقابل دسترس در حافظه موقت (درونحافظهای کوتاهمدت) وضعیت مقصد نگهداری میشود، محدود میکند.
این پارامتر باید بزرگتر یا مساوی $queue_run_delay تنظیم شود. همچنین $maximal_backoff_time را ببینید.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
multi_instance_directories (default: empty)
فهرست اختیاری از دایرکتوریهای پیکربندی غیرپیشفرض Postfix؛ این دایرکتوریها متعلق به نمونههای اضافی Postfix هستند که فایلهای اجرایی و مستندات را با نمونه پیشفرض Postfix به اشتراک میگذارند، و همراه با نمونه پیشفرض Postfix راهاندازی، متوقف و غیره میشوند. فهرستی از نامهای مسیر را که با کاما یا نویسه فاصله از هم جدا شدهاند مشخص کنید.
هنگامی که $multi_instance_directories خالی باشد، دستور postfix(1) در حالت تکنمونهای اجرا میشود و فقط روی یک نمونه منفرد Postfix کار میکند. در غیر این صورت، دستور postfix(1) در حالت چندنمونهای اجرا شده و مدیر چندنمونهای مشخصشده توسط پارامتر multi_instance_wrapper را فراخوانی میکند. مدیر چندنمونهای نیز به نوبه خود دستورات postfix(1) را برای نمونه پیشفرض و تمام نمونههای Postfix در $multi_instance_directories اجرا میکند.
در حال حاضر، این تنظیم پارامتر به جز برای فایل پیشفرض main.cf نادیده گرفته میشود.
این ویژگی در Postfix نسخه 2.6 و بالاتر در دسترس است.
multi_instance_enable (default: no)
اجازه میدهد تا این نمونه Postfix توسط یک مدیر چندنمونهای راهاندازی، متوقف و غیره شود. به طور پیشفرض، نمونههای جدید در یک وضعیت ایمن ایجاد میشوند که از راهاندازی ناخواسته آنها جلوگیری میکند. این پارامتر برای مدیر چندنمونهای رزرو شده است.
این ویژگی در Postfix نسخه 2.6 و بالاتر در دسترس است.
multi_instance_group (default: empty)
نام گروه نمونه اختیاری برای این نمونه Postfix. یک گروه، نمونههای نزدیک به هم Postfix را مشخص میکند که مدیر چندنمونهای میتواند آنها را به عنوان یک واحد راهاندازی، متوقف و غیره کند. این پارامتر برای مدیر چندنمونهای رزرو شده است.
این ویژگی در Postfix نسخه 2.6 و بالاتر در دسترس است.
multi_instance_name (default: empty)
نام نمونه اختیاری برای این نمونه Postfix. این نام همچنین به مقدار پیشفرض پارامتر syslog_name تبدیل میشود.
این ویژگی در Postfix نسخه 2.6 و بالاتر در دسترس است.
multi_instance_wrapper (default: empty)
مسیر یک دستور مدیر چندنمونهای که هنگام غیرخالی بودن مقدار پارامتر multi_instance_directories توسط دستور postfix(1) فراخوانی میشود. مسیر میتواند با آرگومانهای اولیه دستور که با فاصله از هم جدا شدهاند همراه باشد؛ فراکاراکترهای شل مانند علامت نقلقول در این بافت پشتیبانی نمیشوند.
دستور postfix(1) دستور مدیر را با آرگومانهای غیرگزینهای دستور postfix(1) در خط فرمان مدیر، و با تمام پارامترهای پیکربندی نصب صادرشده در محیط پردازش دستور مدیر فراخوانی میکند. دستور مدیر نیز به نوبه خود دستور postfix(1) را برای تکتک نمونههای Postfix به صورت "postfix -c config_directory command" فراخوانی میکند.
این ویژگی در Postfix نسخه 2.6 و بالاتر در دسترس است.
multi_recipient_bounce_reject_code (default: 550)
کد پاسخ عددی سرور SMTP پُستفیکس هنگامی که درخواست یک کلاینت SMTP راه دور توسط محدودیت reject_multi_recipient_bounce مسدود میشود.
این مقدار را تغییر ندهید مگر اینکه درک کاملی از RFC 5321 داشته باشید.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
mydestination (default: $myhostname, localhost.$mydomain, localhost)
فهرست دامنههایی که از طریق ترابرد تحویل ایمیل $local_transport تحویل داده میشوند. بهطور پیشفرض این عامل تحویل local(8) پُستفیکس است که تمام گیرندگان را در /etc/passwd و /etc/aliases جستجو میکند. سرور SMTP آدرسهای گیرنده را با $local_recipient_maps اعتبارسنجی کرده و گیرندگان ناموجود را رد میکند. همچنین کلاس دامنه محلی را در فایل ADDRESS_CLASS_README ببینید.
مقدار پیشفرض mydestination تنها نامهای ماشین محلی را مشخص میکند. در یک درگاه دامنه ایمیل، باید $mydomain را نیز اضافه کنید.
روش تحویل $local_transport همچنین برای ایمیلهایی انتخاب میشود که به user@[the.net.work.address] از سیستم ایمیل (آدرسهای IP مشخصشده با پارامترهای inet_interfaces و proxy_interfaces) آدرسدهی شدهاند.
هشدارها:
- نام دامنههای مجازی را مشخص نکنید - آن دامنهها در جای دیگر مشخص میشوند. برای اطلاعات بیشتر به VIRTUAL_README مراجعه کنید.
- نام دامنههایی را که این ماشین میزبان MX پشتیبان آنها است مشخص نکنید. برای نحوه راهاندازی میزبانهای MX پشتیبان به STANDARD_CONFIGURATION_README مراجعه کنید.
- بهطور
پیشفرض،
سرور SMTP
پُستفیکس
ایمیلهای
مربوط به
گیرندگانی
را که با
پارامتر
local_recipient_maps فهرست
نشدهاند،
رد میکند.
برای
توضیحات در
مورد
پارامترهای
local_recipient_maps و unknown_local_recipient_reject_code
به راهنمای
postconf(5) مراجعه
کنید.
فهرستی از نامهای میزبان یا دامنه، الگوهای "/file/name" یا "type:table" را که با کاما و/یا نویسه فاصله جدا شدهاند مشخص کنید. یک الگوی "/file/name" با محتویات آن جایگزین میشود؛ یک جدول جستجوی "type:table" زمانی تطبیق داده میشود که یک نام با یک کلید جستجو مطابقت داشته باشد (نتیجه جستجو نادیده گرفته میشود). خطوط طولانی را با شروع خط بعدی با نویسه فاصله ادامه دهید.
مثالها:
mydestination = $myhostname, localhost.$mydomain $mydomain mydestination = $myhostname, localhost.$mydomain www.$mydomain, ftp.$mydomain
mydomain (default: see postconf -d output)
نام دامنه اینترنتی این سیستم ایمیل. مقدار پیشفرض استفاده از $myhostname منهای جزء اول آن، یا "localdomain" (در Postfix 2.3 و بالاتر) است. $mydomain به عنوان مقدار پیشفرض برای بسیاری از پارامترهای پیکربندی دیگر استفاده میشود.
مثال:
mydomain = domain.tld
myhostname (default: see postconf -d output)
نام میزبان اینترنتی این سیستم ایمیل. مقدار پیشفرض استفاده از نام دامنه کاملاً واجد شرایط (FQDN) حاصل از gethostname()، یا استفاده از نتیجه غیر-FQDN حاصل از gethostname() و الحاق ".$mydomain" به انتهای آن است. $myhostname به عنوان مقدار پیشفرض برای بسیاری از پارامترهای پیکربندی دیگر استفاده میشود.
مثال:
myhostname = host.example.com
mynetworks (default: see postconf -d output)
فهرست کلاینتهای SMTP راه دور "مورد اعتماد" که امتیازات بیشتری نسبت به "غریبهها" دارند.
بهطور خاص، کلاینتهای SMTP "مورد اعتماد" مجاز به بازپخش (relay) ایمیل از طریق Postfix هستند. توضیحات پارامتر smtpd_relay_restrictions را در راهنمای postconf(5) ببینید.
میتوانید فهرست آدرسهای شبکه "مورد اعتماد" را به صورت دستی مشخص کنید یا اجازه دهید Postfix این کار را برای شما انجام دهد (که پیشفرض است). برای اطلاعات بیشتر به توضیحات پارامتر mynetworks_style مراجعه کنید.
اگر فهرست mynetworks را به صورت دستی مشخص کنید، Postfix تنظیمات mynetworks_style را نادیده میگیرد.
فهرستی از آدرسهای شبکه یا الگوهای شبکه/ماسکشبکه را که با کاما و/یا نویسه فاصله از هم جدا شدهاند مشخص کنید. خطوط طولانی را با شروع خط بعدی با فاصله ادامه دهید.
ماسک شبکه تعداد بیتهای بخش شبکه یک آدرس میزبان را مشخص میکند. همچنین میتوانید الگوهای "/file/name" یا "type:table" را مشخص کنید. الگوی "/file/name" با محتویات آن جایگزین میشود؛ جدول جستجوی "type:table" زمانی تطبیق مییابد که یک مدخل جدول با یک رشته جستجو مطابقت داشته باشد (نتیجه جستجو نادیده گرفته میشود).
فهرست از چپ به راست تطبیق داده میشود و جستجو با اولین تطابق متوقف میشود. برای حذف یک آدرس یا بلوک شبکه از فهرست، "!pattern" را مشخص کنید. فرم "!/file/name" فقط در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
نکته ۱: تطبیق الگوی نامهای دامنه توسط حضور یا عدم حضور "mynetworks" در مقدار پارامتر parent_domain_matches_subdomains کنترل میشود.
نکته ۲: اطلاعات آدرس IPv6 باید درون [] در مقدار mynetworks، و در فایلهای مشخصشده با "/file/name" قید شود. آدرسهای IPv6 حاوی نویسه ":" هستند و در غیر این صورت با الگوی "type:table" اشتباه گرفته میشوند.
نکته ۳: محدودههای CIDR را نمیتوان در جدولهای hash مشخص کرد. اگر از محدودههای CIDR استفاده میشود، از جدولهای cidr استفاده کنید.
مثالها:
mynetworks = 127.0.0.0/8 168.100.189.0/28 mynetworks = !192.168.0.1, 192.168.0.0/28 mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [2001:240:587::]/64 mynetworks = $config_directory/mynetworks mynetworks = lmdb:/etc/postfix/network_table mynetworks = cidr:/etc/postfix/network_table.cidr
به جای lmdb:، برخی سیستمها از cdb:، hash:، یا dbm: استفاده میکنند.
تغییرات پیکربندی پس از حدود یک دقیقه نمایان خواهند شد. برای رفع تأخیر از "postfix reload" استفاده کنید.
mynetworks_style (default: Postfix >= 3.0: host, Postfix < 3.0: subnet)
روش تولید مقدار پیشفرض برای پارامتر mynetworks. این فهرست شبکههای مورد اعتماد برای کنترل دسترسی بازپخش و غیره است.
- زمانی که Postfix باید فقط به ماشین محلی "اعتماد" کند، "mynetworks_style = host" را مشخص کنید.
- زمانی که Postfix باید به کلاینتهای SMTP راه دور در همان زیرشبکههای IP ماشین محلی "اعتماد" کند، "mynetworks_style = subnet" را مشخص کنید. در لینوکس، این ویژگی فقط با رابطهای مشخصشده با دستور "ifconfig" یا "ip" به درستی کار میکند.
- زمانی که Postfix
باید به
کلاینتهای
SMTP راه دور در
همان
شبکههای
کلاس A/B/C
آیپی
ماشین محلی
"اعتماد"
کند، "mynetworks_style = class"
را مشخص
کنید.
احتیاط: این
کار ممکن
است باعث
شود Postfix به کل
شبکه
ارائهدهنده
اینترنت
شما
"اعتماد"
کند. در
عوض،
همانطور
که در
پارامتر
پیکربندی
mynetworks شرح داده
شده است، یک
فهرست صریح
mynetworks را به
صورت دستی
مشخص کنید.
myorigin (default: $myhostname)
نام دامنهای که به نظر میرسد نامههای ارسالشده محلی از آن میآیند، و نامههای ارسالشده محلی به آن تحویل داده میشوند. مقدار پیشفرض، $myhostname، برای سایتهای کوچک کافی است. اگر دامنهای با چندین ماشین را اداره میکنید، باید (۱) این مقدار را به $mydomain تغییر دهید و (۲) یک پایگاهداده نام مستعار در سطح دامنه راهاندازی کنید که هر کاربر را به user@that.users.mailhost ارجاع دهد.
مثال:
myorigin = $mydomain
nested_header_checks (default: $header_checks)
جدولهای جستجوی اختیاری برای بازرسی محتوای سرآیندهای پیام غیر-MIME در پیامهای پیوستشده، همانطور که در صفحه راهنمای header_checks(5) توضیح داده شده است.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
newaliases_path (default: see postconf -d output)
ویژگی سازگاری با Sendmail که مکان دستور newaliases(1) را مشخص میکند. این دستور میتواند برای بازسازی پایگاهداده aliases(5) مربوط به local(8) استفاده شود.
non_bdb_custom_mapping (default: empty)
هنگام فعال بودن مهاجرت از Berkeley-DB، نگاشت اختیاری از نوع hash: یا btree: به نوعی غیر از Berkeley-DB. این نگاشت بر نگاشت پیشفرض از hash: به $default_database_type، و از btree: به $default_cache_db_type اولویت دارد.
- مشخص کردن جدول جستجو با کلیدهایی به صورت type برکلی دیبی (بدون ':') یا type:name.
- کلید جستجو با قالب type:name بر type (بدون ':') تقدم دارد.
- نتیجهٔ جستجو باید همواره یک type غیر Berkeley-DB (بدون ':') باشد و نباید شامل :name باشد.
- نوع جدول
نگاشت
نباید hash یا
btree باشد.
این ویژگی در Postfix نسخهٔ 3.11 و بالاتر در دسترس است.
non_bdb_migration_allow_root_prefixes (default: see 'postconf -d non_bdb_migration_allow_root_prefixes' output)
فهرستی از پیشوندهای مسیر معتبر که سرویس مهاجرت non-Berkeley-DB (nbdb_reindexd(8)) هنگام نیاز به اجرای دستورهای postmap(1) یا postalias(1) با دسترسی "root"، باید با آنها مطابقت داشته باشد.
این ویژگی در Postfix نسخهٔ 3.11 و بالاتر در دسترس است.
non_bdb_migration_allow_user_prefixes (default: see 'postconf -d non_bdb_migration_allow_user_prefixes' output)
فهرستی از پیشوندهای مسیر معتبر که سرویس مهاجرت non-Berkeley-DB (nbdb_reindexd(8)) هنگام نیاز به اجرای دستورهای postmap(1) یا postalias(1) با دسترسی غیر ریشه (غیر root)، باید با آنها مطابقت داشته باشد.
این ویژگی در Postfix نسخهٔ 3.11 و بالاتر در دسترس است.
non_bdb_migration_level (default: disable)
سطح سرویس مهاجرت non-Berkeley-DB. انتظار میرود برای پیکربندی صحیح سطح سرویس مهاجرت از دستور "postfix non-bdb name-of-level" استفاده کنید (به postfix-non-bdb(1) مراجعه کنید).
- disable
- غیرفعالسازی
تمام
قابلیتهای
مهاجرت non-Berkeley-DB.
برای بررسی
پیامدهای
منفی
احتمالی در
یکپارچگی
با
نرمافزارهای
دیگر مانند
mailman، به NON_BERKELEYDB_README#disable
مراجعه
کنید.
- enable-redirect (aliasing)
- فعالسازی
تغییرمسیر
(نام
مستعار/aliasing)
از Berkeley DB hash به
$default_database_type، و از Berkeley DB btree
به $default_cache_db_type، اما
بدون ایجاد
خودکار
فایلهای
پایگاهداده
نمایهشدهٔ
جدید cdb یا lmdb
مورد نیاز
برنامههای
Postfix. برای
جزئیات و
محدودیتها
به NON_BERKELEYDB_README#enable-redirect
مراجعه
کنید.
- enable-reindex
- علاوه بر enable-redirect، ایجاد یک فایل پایگاهداده نمایهشدهٔ غیر Berkeley-DB هنگامی که یک برنامه دیمن میخواهد به فایلی که هنوز وجود ندارد دسترسی پیدا کند. این قابلیت از دیمن nbdb_reindexd(8) برای اجرای postmap(1) یا postalias(1) استفاده میکند. برای جزئیات و محدودیتها به NON_BERKELEYDB_README#enable-reindex مراجعه کنید.
نکته: enable-reindex
باید تنها
بهصورت
موقت برای
ایجاد
بیشتر
فایلهای
پایگاهداده
نمایهشدهٔ
غیر Berkeley-DB مورد
نیاز
برنامههای
Postfix استفاده
شود. فعال
گذاشتن
دائمی این
سطح ممکن
است سیستم
را در معرض
حملات
ارتقای سطح
دسترسی
قرار دهد.
استفاده از
enable-redirect هیچ
نگرانی
امنیتی
ندارد.
این ویژگی در Postfix نسخهٔ 3.11 و بالاتر در دسترس است.
non_bdb_migration_log_redirect (default: yes)
ثبت رخدادهای مربوط به تغییرمسیر از نوع پایگاهداده سنتی Berkeley-DB به نوع غیر Berkeley-DB.
این ویژگی در Postfix نسخهٔ 3.11 و بالاتر در دسترس است.
non_bdb_migration_service_name (default: nbdb_reindex)
نام سرویسی در master.cf که پروتکل سرویس مهاجرت non-Berkeley-DB را پیادهسازی میکند.
این ویژگی در Postfix نسخهٔ 3.11 و بالاتر در دسترس است.
non_empty_end_of_header_action (default: fix_quietly)
نحوه پردازش پیام توسط دیمن cleanup(8) زمانی که سرآیند اصلی پیام با خطی غیرخالی خاتمه مییابد.
- fix_quietly
- رفتار
پیشفرض:
درج یک خط
خالی پیش از
متن دارای
خطا. این
رفتار با Postfix <=
3.10 سازگار به
عقب است.
- add_header
- درج سرآیند
MIME-Error: و یک خط
خالی پیش از
متن دارای
خطا.
مثال:
MIME-Error: message header was not terminated by empty line
- reject
- ثبت متن
دارای خطا
در لاگ و رد
محتوای
پیام.
مثال:
queueid reject: mime-error message header was terminated with non-empty line: erroneous text; from=<sender> to=<recipient>
این ویژگی در Postfix نسخهٔ 3.11 و بالاتر در دسترس است.
non_fqdn_reject_code (default: 504)
کد عددی پاسخ سرور SMTP در Postfix هنگامی که درخواست کلاینت توسط محدودیتهای reject_non_fqdn_helo_hostname، reject_non_fqdn_sender یا reject_non_fqdn_recipient رد میشود.
non_smtpd_milters (default: empty)
فهرستی از برنامههای Milter (فیلتر ایمیل) برای ایمیلهای جدیدی که از طریق سرور smtpd(8) پستفیکس دریافت نمیشوند. این موارد شامل ارسال محلی از طریق خط فرمان sendmail(1)، ایمیلهای جدید ورودی از سرور qmqpd(8) پستفیکس، و ایمیلهای قدیمی که مجدداً با "postsuper -r" به صف تزریق شدهاند میشود. فاصله یا ویرگول را بهعنوان جداکننده مشخص کنید. برای جزئیات به سند MILTER_README مراجعه کنید.
این ویژگی در Postfix نسخهٔ 2.3 و بالاتر در دسترس است.
notify_classes (default: resource, software)
فهرست دستههای خطایی که به postmaster گزارش میشوند. این اعلانهای postmaster جایگزین اعلانهای کاربر نمیشوند. حالت پیشفرض، گزارش تنها جدیترین مشکلات است. افراد دقیق و محتاط ممکن است تمایل به فعال کردن گزارشهای policy (سیاستهای UCE و بازپخش ایمیل) و protocol (خطای پروتکل نرمافزارهای پستی معیوب) داشته باشند.
نکته: اعلانهای postmaster ممکن است شامل اطلاعات محرمانه مانند گذرواژههای SASL یا محتوای پیام باشند. مراقبت از چنین اطلاعاتی بر عهدهٔ مدیر سیستم است.
دستههای خطا عبارتند از:
- bounce (also implies 2bounce)
- ارسال
رونوشت
سرآیندهای
ایمیلهای
برگشتخورده،
و ارسال
رونوشت
نشستهای SMTP
هنگامی که Postfix
ایمیلی را
رد میکند
به postmaster. اعلان
به نشانی
مشخصشده
با پارامتر
پیکربندی
bounce_notice_recipient ارسال
میشود
(پیشفرض: postmaster).
- 2bounce
- ارسال
ایمیلهای
برگشتخوردهٔ
غیرقابلتحویل
به postmaster. اعلان
به نشانی
مشخصشده
با پارامتر
پیکربندی
2bounce_notice_recipient ارسال
میشود
(پیشفرض: postmaster).
- data
- ارسال
رونوشت
نشست SMTP به
همراه خطا
به postmaster در
شرایطی که
یک فایل
دادهای
حیاتی در
دسترس
نباشد.
اعلان به
نشانی
مشخصشده
با پارامتر
پیکربندی
error_notice_recipient ارسال
میشود
(پیشفرض: postmaster).
این ویژگی در Postfix نسخهٔ 2.9 و بالاتر در دسترس است.
- delay
- ارسال
رونوشت
سرآیندهای
ایمیلهای
تاخیرخورده
به postmaster (به delay_warning_time
مراجعه
کنید).
اعلان به
نشانی
مشخصشده
با پارامتر
پیکربندی
delay_notice_recipient ارسال
میشود
(پیشفرض: postmaster).
- policy
- ارسال
رونوشت
نشست SMTP به postmaster
هنگام رد
درخواست
سرویسگیرنده
به دلیل
خطمشیهای
ضدهرزنامه
(UCE). اعلان به
نشانی
مشخصشده
با پارامتر
پیکربندی
error_notice_recipient ارسال
میشود
(پیشفرض: postmaster).
- protocol
- ارسال
رونوشت
نشست SMTP به postmaster
در صورت
بروز
خطاهای
پروتکل از
سوی
سرویسگیرنده
یا کارگزار.
اعلان به
نشانی
مشخصشده
با پارامتر
پیکربندی
error_notice_recipient ارسال
میشود
(پیشفرض: postmaster).
- resource
- مطلع کردن
postmaster از
ایمیلهای
تحویلنشده
به دلیل
مشکلات
منابع
سیستم.
اعلان به
نشانی
مشخصشده
با پارامتر
پیکربندی
error_notice_recipient ارسال
میشود
(پیشفرض: postmaster).
- software
- مطلع کردن
postmaster از
ایمیلهای
تحویلنشده
به دلیل
مشکلات
نرمافزاری.
اعلان به
نشانی
مشخصشده
با پارامتر
پیکربندی
error_notice_recipient ارسال
میشود
(پیشفرض: postmaster).
مثالها:
notify_classes = bounce, delay, policy, protocol, resource, software notify_classes = 2bounce, resource, software
openssl_path (default: openssl)
مسیر برنامه خط فرمان OpenSSL به نام openssl(1). این پارامتر توسط دستور "postfix tls" جهت ساخت کلیدهای خصوصی، درخواستهای امضای گواهی، گواهیهای خودامضا، و محاسبهٔ خلاصه کلیدهای عمومی برای رکوردهای DANE TLSA استفاده میشود. در محیطهای چندنمونهای (multi-instance)، مقدار این پارامتر همواره از پیکربندی نمونهٔ پیشفرض Postfix تعیین میشود.
مثال:
/etc/postfix/main.cf:
# NetBSD pkgsrc:
openssl_path = /usr/pkg/bin/openssl
# Local build:
openssl_path = /usr/local/bin/openssl
این ویژگی در Postfix نسخهٔ 3.1 و بالاتر در دسترس است.
owner_request_special (default: yes)
فعالسازی رفتار ویژه برای مدخلهای owner-listname در فایل aliases(5)، و تفکیک نکردن بخشهای محلی نشانیهای owner-listname و listname-request هنگامی که recipient_delimiter بر روی "-" تنظیم شده است. این ویژگی برای فهرستهای پستی کاربرد دارد.
parent_domain_matches_subdomains (default: see postconf -d output)
فهرستی از ویژگیهای Postfix که در آنها الگوی "example.com" علاوه بر خود دامنه، زیردامنههای example.com را نیز مطابقت میدهد، بهجای اینکه نیازمند الگوی صریح ".example.com" باشد. این یک سازگاری به عقب برنامهریزیشده است: در نهایت انتظار میرود تمام ویژگیهای Postfix برای تطبیق با زیردامنهها نیازمند الگوهای صریح به سبک ".example.com" باشند.
نام ویژگیهای پشتیبانیشدهٔ Postfix به شرح زیر است.
- Postfix نسخهٔ 1.0 و بالاتر
- debug_peer_list, fast_flush_domains, mynetworks,
permit_mx_backup_networks, relay_domains, transport_maps
- Postfix نسخهٔ 1.1 و بالاتر
- qmqpd_authorized_clients, smtpd_access_maps,
- Postfix نسخهٔ 2.8 و بالاتر
- postscreen_access_list
- Postfix نسخهٔ 3.0 و بالاتر
- smtpd_client_event_limit_exceptions
permit_mx_backup_networks (default: empty)
محدود کردن استفاده از قابلیت دسترسی SMTP با عنوان permit_mx_backup تنها به دامنههایی که هاستهای MX اصلی آنها با شبکههای فهرستشده مطابقت دارند. نحو (سینتکس) مقدار این پارامتر همانند پارامتر mynetworks است؛ با این حال توجه داشته باشید که مقدار پیشفرض آن خالی است.
تطبیق الگوی نامهای دامنه توسط وجود یا عدم وجود "permit_mx_backup_networks" در مقدار پارامتر parent_domain_matches_subdomains کنترل میشود.
pickup_service_name (default: pickup)
نام سرویس pickup(8). این سرویس ایمیلهای ارسالی محلی را از صف maildrop پستفیکس برمیدارد.
این ویژگی در Postfix نسخهٔ 2.0 و بالاتر در دسترس است.
pipe_delivery_status_filter (default: $default_delivery_status_filter)
فیلتر اختیاری برای عامل تحویل pipe(8) جهت تغییر کد وضعیت تحویل یا متن توضیحی تحویلهای موفق یا ناموفق. برای جزئیات به default_delivery_status_filter مراجعه کنید.
این ویژگی در Postfix نسخهٔ 3.0 و بالاتر در دسترس است.
plaintext_reject_code (default: 450)
کد عددی پاسخ سرور SMTP در Postfix هنگامی که درخواستی توسط محدودیت reject_plaintext_session رد میشود.
این ویژگی در Postfix نسخهٔ 2.3 و بالاتر در دسترس است.
postlog_service_name (default: postlog)
نام مدخل سرویس postlogd(8) در master.cf. این سرویس رکوردهای گزارش را به فایل مشخصشده با پارامتر maillog_file ضمیمه میکند.
این ویژگی در Postfix نسخهٔ 3.4 و بالاتر در دسترس است.
postlogd_watchdog_timeout (default: 10s)
حداکثر زمانی که یک فرایند postlogd(8) میتواند برای پردازش یک درخواست صرف کند، پیش از آنکه توسط تایمر نظارتی (watchdog) داخلی متوقف شود. این یک سازوکار ایمنی است که از بیپاسخ ماندن postlogd(8) به دلیل اشکال در خود Postfix یا در نرمافزارهای سیستم جلوگیری میکند. این حد نمیتواند کمتر از 10s تنظیم شود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix نسخهٔ 3.4 و بالاتر در دسترس است.
postmulti_control_commands (default: reload flush)
دستورهای postfix(1) که مدیر نمونههای postmulti(1) با آنها بهعنوان دستورهای "control" رفتار میکند و بر روی نمونههای در حال اجرا اعمال میشوند. برای این دستورها، از نمونههای غیرفعال صرفنظر میشود.
این ویژگی در Postfix نسخهٔ 2.6 و بالاتر در دسترس است.
postmulti_start_commands (default: start)
دستورهای postfix(1) که مدیر نمونههای postmulti(1) آنها را بهعنوان دستورهای "start" تلقی میکند. برای این دستورها، نمونههای غیرفعال بهجای "start" شدن فقط "check" (بررسی) میشوند، و شکست در "start" یک نمونهٔ عضو از یک گروه، شروع نمونههای بعدی را متوقف میکند.
این ویژگی در Postfix نسخهٔ 2.6 و بالاتر در دسترس است.
postmulti_stop_commands (default: see postconf -d output)
دستورهای postfix(1) که مدیر نمونههای postmulti(1) با آنها بهعنوان دستورهای "stop" رفتار میکند. برای این دستورها، از نمونههای غیرفعال صرفنظر شده و نمونههای فعال به ترتیب معکوس پردازش میشوند.
این ویژگی در Postfix نسخهٔ 2.6 و بالاتر در دسترس است.
postscreen_access_list (default: permit_mynetworks)
فهرست مجاز/مسدود دائمی برای آدرسهای IP سرویسگیرندهٔ راه دور SMTP. دیمن postscreen(8) بلافاصله پس از اتصال سرویسگیرندهٔ راه دور SMTP این فهرست را بررسی میکند. فهرستی جداشده با کاما یا فاصله از دستورها (با حروف کوچک یا بزرگ) یا جدولهای جستجو را مشخص کنید. جستجو با اولین دستوری که برای نشانی IP کلاینت فعال شود، متوقف میشود.
- permit_mynetworks
- سرویسگیرنده
را در فهرست
مجاز قرار
داده و در
صورتی که
آدرس IP
کلاینت با
$mynetworks مطابقت
داشته
باشد،
جستجو را
پایان دهید.
کلاینت
مشمول هیچ
آزمون پیام
خوشآمدگویی
قبل یا بعد
از 220
نمیشود.
اتصال
فوراً به
فرایند
سرور SMTP
پستفیکس
منتقل
میشود.
تطبیق الگوی نامهای دامنه توسط حضور یا عدم حضور "postscreen_access_list" در مقدار پارامتر parent_domain_matches_subdomains کنترل میشود.
- type:table
- جدول
جستجوی
مشخصشده
را پرسمان
کنید. هر
نتیجهٔ
جستجوی
جدول، یک
فهرست
دسترسی
است، مگر
اینکه
فهرستهای
دسترسی
داخل جدول
نتوانند
مدخلهای
type:table را مشخص
کنند.
جهت منصرف کردن از بهکارگیری جدولهای hash، btree و موارد مشابه، هیچ پشتیبانی از تطبیق زیررشتهها مانند smtpd(8) وجود ندارد. در عوض از جدولهای CIDR استفاده کنید.
- permit
- سرویسگیرنده
را در فهرست
مجاز قرار
داده و
جستجو را
خاتمه دهید.
سرویسگیرنده
را مشمول
آزمونهای
پیام
خوشآمدگویی
قبل یا بعد
از 220 نکنید.
اتصال
فوراً به
فرایند
سرور SMTP در Postfix
واگذار
میشود.
- reject
- سرویسگیرنده
را مسدود
کرده و
جستجو را
پایان دهید.
سرویسگیرنده
را مشمول
عملیات
پیکربندیشده
با پارامتر
postscreen_denylist_action قرار
دهید.
- dunno
- همهٔ
فهرستهای
دسترسی postscreen(8)
به طور ضمنی
این دستور
را در
انتهای خود
دارند.
هنگامی که dunno در داخل یک جدول جستجو اجرا میشود، از جدول جستجو بازگشته و دستور بعدی را ارزیابی میکند.
هنگامی که dunno در خارج از یک جدول جستجو اجرا میشود، جستجو را پایان داده و کلاینت را تحت آزمایشهای پیکربندیشدهٔ قبل/بعد از پیام خوشآمدگویی (greeting) ۲۲۰ قرار میدهد.
مثال:
/etc/postfix/main.cf:
postscreen_access_list = permit_mynetworks,
cidr:/etc/postfix/postscreen_access.cidr
# Postfix < 3.6 use postscreen_blacklist_action.
postscreen_denylist_action = enforce
/etc/postfix/postscreen_access.cidr:
# Rules are evaluated in the order as specified.
# Denylist 192.168.* except 192.168.0.1.
192.168.0.1 dunno
192.168.0.0/16 reject
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_allowlist_interfaces (default: static:all)
فهرستی از آدرسهای IP سرور محلی postscreen(8) که یک کلاینت SMTP راه دورِ خارج از فهرست مجاز میتواند وضعیت فهرست مجاز موقت postscreen(8) را در آنها به دست آورد. این وضعیت پیش از آنکه کلاینت بتواند با یک فرایند سرور SMTP در Postfix گفتگو کند الزامی است. به صورت پیشفرض، یک کلاینت میتواند وضعیت فهرست مجاز postscreen(8) را روی هر آدرس IP سرور محلی postscreen(8) به دست آورد.
هنگامی که postscreen(8) روی هر دو آدرس MX اصلی و پشتیبان گوش میدهد، پارامتر postscreen_allowlist_interfaces میتواند به گونهای پیکربندی شود که وضعیت فهرست مجاز موقت را تنها زمانی ارائه دهد که یک کلاینت به آدرس MX اصلی متصل شود. به محض اینکه یک کلاینت در فهرست مجاز قرار گرفت، میتواند با یک سرور SMTP در Postfix روی هر آدرسی گفتگو کند. بنابراین، کلاینتهایی که فقط به آدرسهای MX پشتیبان متصل میشوند هرگز در فهرست مجاز قرار نگرفته و هرگز اجازهٔ گفتگو با فرایند سرور SMTP در Postfix را نخواهند داشت.
فهرستی از آدرسهای شبکه یا الگوهای شبکه/نتماسک را که با کاما و/یا نویسهٔ فاصله از یکدیگر جدا شدهاند، مشخص کنید. نتماسک تعداد بیتها را در بخش شبکهٔ یک آدرس میزبان مشخص میکند. خطوط طولانی را با آغاز خط بعدی با نویسهٔ فاصله ادامه دهید.
همچنین میتوانید الگوهای "/file/name" یا "type:table" را مشخص کنید. یک الگوی "/file/name" با محتویات آن جایگزین میشود؛ یک جدول جستجوی "type:table" هنگامی تطبیق مییابد که یک مدخل جدول با یک رشتهٔ جستجو تطابق داشته باشد (نتیجهٔ جستجو نادیده گرفته میشود).
تطبیق فهرست از چپ به راست انجام میشود و جستجو با اولین تطابق متوقف میشود. برای مستثنی کردن یک آدرس یا بلوک شبکه از فهرست، "!pattern" را مشخص کنید.
نکته: اطلاعات آدرس پروتکل اینترنت نسخهٔ ۶ (IPv6) باید درون [] در مقدار postscreen_allowlist_interfaces و در فایلهای مشخصشده با "/file/name" قرار گیرد. آدرسهای IPv6 حاوی نویسهٔ ":" هستند و در غیر این صورت با یک الگوی "type:table" اشتباه گرفته میشوند.
مثال:
/etc/postfix/main.cf:
# Don't allowlist connections to the backup IP address.
# Postfix < 3.6 use postscreen_whitelist_interfaces.
postscreen_allowlist_interfaces = !168.100.189.8, static:all
این ویژگی در Postfix 3.6 و بالاتر در دسترس است.
به صورت postscreen_whitelist_interfaces در Postfix 2.9 - 3.5 در دسترس است.
postscreen_bare_newline_action (default: ignore)
اقدامی که postscreen(8) هنگام ارسال نویسهٔ خط جدید خالی (bare newline) توسط یک کلاینت SMTP راه دور انجام میدهد؛ یعنی خط جدیدی که پیش از آن carriage return نیامده باشد. یکی از موارد زیر را مشخص کنید:
- ignore
- شکست این
آزمایش را
نادیده
بگیر. به
سایر
آزمایشها
اجازه بده
کامل شوند.
این آزمایش
را پیش از
منقضی شدن
نتیجهٔ
آزمایشی
دیگر،
تکرار نکن.
این گزینه
برای
آزمایش و
جمعآوری
آمار بدون
مسدودسازی
دائمی
ایمیلها
مفید است.
- enforce
- به سایر
آزمایشها
اجازه بده
کامل شوند.
تلاشها
برای تحویل
ایمیل را با
یک پاسخ ۵۵۰
SMTP رد کن، و
اطلاعات
helo/فرستنده/گیرنده
را ثبت کن.
در اتصال
بعدی
کلاینت این
آزمایش را
تکرار کن.
- drop
- بلافاصله
اتصال را با
یک پاسخ ۵۲۱
SMTP قطع کن. در
اتصال بعدی
کلاینت این
آزمایش را
تکرار کن.
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_bare_newline_enable (default: no)
آزمایشهای پروتکل SMTP برای «خط جدید خالی» (bare newline) را در سرور postscreen(8) فعال میکند. این آزمایشها پرهزینه هستند: یک کلاینت SMTP راه دور پس از قبولی در آزمایش و پیش از آنکه بتواند با یک سرور واقعی SMTP در Postfix گفتگو کند، باید اتصال خود را قطع کند.
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_bare_newline_ttl (default: 30d)
مدت زمانی که postscreen(8) قبولی آدرس IP یک کلاینت در آزمایش پروتکل SMTP برای «خط جدید خالی» را به یاد میسپارد، پیش از آنکه کلاینت ملزم به قبولی مجدد در آن آزمایش باشد. مقدار پیشفرض طولانی است زیرا کلاینت SMTP راه دور پس از قبولی در آزمایش، پیش از آنکه بتواند با سرور واقعی SMTP در Postfix گفتگو کند باید اتصال خود را قطع نماید.
یک مقدار زمانی غیر صفر را مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را تعیین میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض d (روز) است.
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_blacklist_action (default: ignore)
در Postfix 3.6 به postscreen_denylist_action تغییر نام یافته است.
این ویژگی در Postfix 2.8 - 3.5 در دسترس است.
postscreen_cache_cleanup_interval (default: 12h)
مدت زمان بین دفعات اجرای پاکسازی کَش postscreen(8). پاکسازی کَش بار روی پایگاهدادهٔ کَش را افزایش میدهد و بنابراین نباید به صورت مکرر اجرا شود. این ویژگی نیازمند آن است که پایگاهدادهٔ کَش از عملگرهای "delete" و "sequence" پشتیبانی کند. برای غیرفعال کردن پاکسازی کَش، یک بازهٔ زمانی صفر مشخص کنید.
پس از هر بار اجرای پاکسازی کَش، دیمن postscreen(8) تعداد مدخلهایی را که نگهداشته شده و یا دور ریخته شدهاند لاگ میکند. هنگامی که دیمن پس از «postfix reload»، «postfix stop»، یا به دلیل عدم دریافت درخواست برای $max_idle ثانیه زودتر متوقف شود، اجرای پاکسازی به صورت "partial" (ناقص) لاگ میشود.
یک مقدار زمانی غیرمنفی را مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را تعیین میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض h (ساعت) است.
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_cache_map (default: Postfix >= 3.11: $default_cache_db_type:$data_directory/postscreen_cache; Postfix < 3.11: btree:$data_directory/postscreen_cache)
فضای ذخیرهسازی پایدار برای تصمیمگیریهای سرور postscreen(8).
برای به اشتراکگذاری یک کَش postscreen(8) میان چندین نمونهٔ postscreen(8)، از "postscreen_cache_map = proxy:lmdb:/path/to/file" یا "proxy:btree:/path/to/file" استفاده کنید. این کار به نسخهٔ ۲.۹ یا بالاتر Postfix نیاز دارد؛ پیادهسازیهای پیشین proxymap(8) از پاکسازی کَش پشتیبانی نمیکنند. برای روشی جایگزین، صفحهٔ راهنمای memcache_table(5) را ببینید.
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_cache_retention_time (default: 7d)
مدت زمانی که postscreen(8) یک مدخل منقضیشده در فهرست مجاز موقت را پیش از حذف شدن، در کَش نگه میدارد. این کار مانع از آن میشود که کلاینتها صرفاً به دلیل اینکه مدخل کَش آنها یک ساعت پیش منقضی شده است، به عنوان "NEW" لاگ شوند. همچنین از پر شدن کَش با کلاینتهایی که یک بار از یک آزمایش عمیق پروتکل عبور کرده و دیگر هرگز بازنگشتهاند جلوگیری میکند.
یک مقدار زمانی غیر صفر را مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را تعیین میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض d (روز) است.
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_client_connection_count_limit (default: $smtpd_client_connection_count_limit)
حداکثر تعداد اتصالات همزمانی که هر کلاینت SMTP راه دور مجاز است با دیمن postscreen(8) داشته باشد. به صورت پیشفرض، این محدودیت با محدودیت سرور SMTP در Postfix یکسان است. توجه داشته باشید که فرایند بررسی اولیه ممکن است چند ثانیه طول بکشد، با احتساب زمانی که در تأخیر postscreen_greet_wait صرف میشود و زمانی که صرف گفتگو با موتور داخلی و ساختگی پروتکل SMTP در postscreen(8) میگردد.
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_command_count_limit (default: 20)
محدودیت تعداد کل دستورات در هر نشست SMTP برای موتور داخلی پروتکل SMTP در postscreen(8). این موتور SMTP تمامی تلاشها برای تحویل ایمیل را به تعویق میاندازد (defer) یا رد میکند (reject)، بنابراین نیازی به اعمال محدودیتهای جداگانه روی تعداد دستورات زائد (junk) و دستورات خطا وجود ندارد.
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_command_filter (default: $smtpd_command_filter)
سازوکاری برای دگرگونسازی دستورات ارسالی از کلاینتهای SMTP راه دور. برای جزئیات بیشتر به smtpd_command_filter مراجعه کنید.
این ویژگی در Postfix 2.8 و بالاتر در دسترس است.
postscreen_command_time_limit (default: normal: 300s, overload: 10s)
محدودیت زمانی برای خواندن یک خط کامل دستور با موتور داخلی پروتکل SMTP در postscreen(8).
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_denylist_action (default: ignore)
اقدامی که postscreen(8) در صورت قرار داشتن دائمی یک کلاینت SMTP راه دور در فهرست رد توسط پارامتر postscreen_access_list انجام میدهد. یکی از موارد زیر را مشخص کنید:
- ignore (پیشفرض)
- این نتیجه
را نادیده
بگیر. به
سایر
آزمایشها
اجازه بده
کامل شوند.
در اتصال
بعدی
کلاینت این
آزمایش را
تکرار کن.
این گزینه
برای
آزمایش و
جمعآوری
آمار بدون
مسدود کردن
ایمیلها
مفید است.
- enforce
- به سایر
آزمایشها
اجازه بده
کامل شوند.
تلاشها
برای تحویل
ایمیل را با
یک پاسخ ۵۵۰
SMTP رد کن، و
اطلاعات
helo/فرستنده/گیرنده
را ثبت کن.
در اتصال
بعدی
کلاینت این
آزمایش را
تکرار کن.
- drop
- بلافاصله
اتصال را با
یک پاسخ ۵۲۱
SMTP قطع کن. در
اتصال بعدی
کلاینت این
آزمایش را
تکرار کن.
این ویژگی در Postfix 3.6 و بالاتر در دسترس است.
به صورت postscreen_blacklist_action در Postfix 2.8 - 3.5 در دسترس است.
postscreen_disable_vrfy_command (default: $disable_vrfy_command)
دستور VRFY در SMTP را در دیمن postscreen(8) غیرفعال میکند. برای جزئیات به disable_vrfy_command مراجعه کنید.
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_discard_ehlo_keyword_address_maps (default: $smtpd_discard_ehlo_keyword_address_maps)
جداول جستجو، نمایهسازیشده بر اساس آدرس کلاینت SMTP راه دور، شامل فهرستهای غیرحساس به بزرگ و کوچکی حروف از کلمات کلیدی EHLO (مانند pipelining، starttls، auth و غیره) که سرور postscreen(8) در پاسخ EHLO به یک کلاینت SMTP راه دور ارسال نخواهد کرد. برای جزئیات به smtpd_discard_ehlo_keywords مراجعه کنید. به دلایل پایداری، این جدول بر اساس نام میزبان جستجو نمیشود.
این ویژگی در Postfix 2.8 و بالاتر در دسترس است.
postscreen_discard_ehlo_keywords (default: $smtpd_discard_ehlo_keywords)
فهرستی غیرحساس به بزرگ و کوچکی حروف از کلمات کلیدی EHLO (مانند pipelining، starttls، auth و غیره) که سرور postscreen(8) در پاسخ EHLO به یک کلاینت SMTP راه دور ارسال نخواهد کرد. برای جزئیات به smtpd_discard_ehlo_keywords مراجعه کنید.
این ویژگی در Postfix 2.8 و بالاتر در دسترس است.
postscreen_dnsbl_action (default: ignore)
اقدامی که postscreen(8) زمانی انجام میدهد که امتیاز ترکیبی DNSBL یک کلاینت SMTP راه دور مساوی یا بیشتر از یک آستانه باشد (طبق تعریف ارائهشده با پارامترهای postscreen_dnsbl_sites و postscreen_dnsbl_threshold). یکی از موارد زیر را مشخص کنید:
- ignore (پیشفرض)
- شکست این
آزمایش را
نادیده
بگیر. به
سایر
آزمایشها
اجازه بده
کامل شوند.
در اتصال
بعدی
کلاینت این
آزمایش را
تکرار کن.
این گزینه
برای
آزمایش و
جمعآوری
آمار بدون
مسدود کردن
ایمیلها
مفید است.
- enforce
- به سایر
آزمایشها
اجازه بده
کامل شوند.
تلاشها
برای تحویل
ایمیل را با
یک پاسخ ۵۵۰
SMTP رد کن، و
اطلاعات
helo/فرستنده/گیرنده
را ثبت کن.
در اتصال
بعدی
کلاینت این
آزمایش را
تکرار کن.
- drop
- بلافاصله
اتصال را با
یک پاسخ ۵۲۱
SMTP قطع کن. در
اتصال بعدی
کلاینت این
آزمایش را
تکرار کن.
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_dnsbl_allowlist_threshold (default: 0)
به یک کلاینت SMTP راه دور اجازه میدهد تا بر اساس امتیاز ترکیبی DNSBL خود، همانطور که با پارامتر postscreen_dnsbl_sites تعریف شده است، آزمایشهای پروتکل «قبل» و «بعد از پیام خوشآمدگویی ۲۲۰» را نادیده بگیرد.
برای فعالسازی این ویژگی یک مقدار منفی مشخص کنید. هنگامی که یک کلاینت بدون شکست در سایر آزمایشها حد آستانهٔ postscreen_dnsbl_allowlist_threshold را کسب میکند، همهٔ آزمایشهای در انتظار یا غیرفعال با یک زمان انقضا بر اساس TTL پاسخ DNS به عنوان تکمیلشده علامتگذاری میشوند. هنگامی که یک آزمایش از پیش تکمیل شده باشد، در صورتی که زمان انقضای آن کمتر از مقدار مبتنی بر TTL پاسخ DNS باشد، بهروزرسانی میشود. همچنین به postscreen_dnsbl_max_ttl و postscreen_dnsbl_min_ttl مراجعه کنید.
این ویژگی در Postfix 3.6 و بالاتر در دسترس است.
به صورت postscreen_dnsbl_whitelist_threshold در Postfix 2.11 - 3.5 در دسترس است.
postscreen_dnsbl_max_ttl (default: ${postscreen_dnsbl_ttl?{$postscreen_dnsbl_ttl}:{1}}h)
حداکثر مدت زمانی که postscreen(8) قبولی آدرس IP یک کلاینت در یک آزمایش اعتبار مبتنی بر DNS را به یاد میسپارد، پیش از آنکه کلاینت ملزم به قبولی مجدد در آن آزمایش باشد. اگر پاسخ DNS مقدار TTL کوتاهتری را مشخص کند، همان مقدار استفاده خواهد شد مگر اینکه از postscreen_dnsbl_min_ttl کمتر باشد.
یک مقدار زمانی غیر صفر را مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را تعیین میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض h (ساعت) است.
این ویژگی در Postfix 3.1 در دسترس است. تنظیمات پیشفرض با نسخههای قدیمیتر Postfix سازگار به عقب است.
postscreen_dnsbl_min_ttl (default: 60s)
حداقل مدت زمانی که postscreen(8) قبولی آدرس IP یک کلاینت در یک آزمایش اعتبار مبتنی بر DNS را به یاد میسپارد، پیش از آنکه کلاینت ملزم به قبولی مجدد در آن آزمایش باشد. اگر پاسخ DNS مقدار TTL بزرگتری را مشخص کند، همان مقدار استفاده خواهد شد مگر اینکه از postscreen_dnsbl_max_ttl بیشتر باشد.
یک مقدار زمانی غیر صفر را مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را تعیین میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix 3.1 در دسترس است.
postscreen_dnsbl_reply_map (default: empty)
نگاشتی از یک نام دامنهٔ واقعی DNSBL که شامل یک رمز عبور محرمانه است، به نام دامنهٔ DNSBL که postscreen هنگام رد کردن ایمیل در پاسخ برمیگرداند. هنگامی که هیچ نگاشتی یافت نشود، دامنهٔ واقعی DNSBL استفاده خواهد شد.
برای حداکثر پایداری بهتر است از فایلی استفاده شود که در حافظه خوانده میشود مانند pcre:، regexp: یا texthash: (شیوهٔ texthash: مشابه hash: است، به جز اینکه الف) نیازی به اجرای postmap(1) پیش از استفاده از فایل نیست، و ب) texthash: تغییرات را پس از خوانده شدن فایل تشخیص نمیدهد).
مثال:
/etc/postfix/main.cf:
postscreen_dnsbl_reply_map = texthash:/etc/postfix/dnsbl_reply
/etc/postfix/dnsbl_reply: secret.zen.spamhaus.org zen.spamhaus.org
نکته: این ویژگی با ویژگی rbl_reply_maps در سرور SMTP در Postfix تفاوت دارد؛ چرا که ۱) کلید جستجوی جدول شامل بخش اختیاری «=address-filter» است، و ۲) نتیجهٔ جستجو شامل متن آزاد با متغیرهای $name میباشد.
این ویژگی در Postfix 2.8 در دسترس است.
postscreen_dnsbl_sites (default: empty)
فهرست اختیاری از الگوها به همراه دامنههای مجاز/مسدود DNS (allow/denylist)، فیلترها و ضرایب وزنی. هنگامی که فهرست خالی نباشد، دیمن dnsblog(8) این دامنهها را با نشانیهای IP معکوس کلاینتهای دوردست SMTP استعلام میکند، و postscreen(8) امتیاز DNSBL کلاینت SMTP را با هر پاسخ بدون خطا همانگونه که در زیر آمده بهروزرسانی خواهد کرد.
نکته: همواره سیاستهای استفاده از سرویسهای اعتبارسنجی را رعایت کنید. از تحلیلکنندههای عمومی یا ISP خودداری کنید، مگر اینکه استعلامها از کلید API اختصاصی شما استفاده کنند.
هشدار: هنگامی که postscreen ایمیل را رد میکند، پاسخ SMTP آن شامل نام دامنه DNSBL است. از قابلیت postscreen_dnsbl_reply_map برای پنهان کردن اطلاعات «گذرواژه» در نامهای دامنه DNSBL استفاده کنید.
هنگامی که امتیاز یک کلاینت بزرگتر یا مساوی آستانه مشخصشده با postscreen_dnsbl_threshold باشد، postscreen(8) میتواند اتصال با کلاینت دوردست SMTP را قطع کند.
فهرستی از الگوهای domain=filter*weight را که با کاما یا نویسه فاصله جدا شدهاند مشخص کنید.
- هنگامی که در یک الگو "=filter" مشخص نشده باشد، postscreen(8) از هر نتیجه استعلام بدون خطای DNSBL استفاده خواهد کرد. در غیر این صورت، postscreen(8) تنها از نتایج استعلام DNSBL که با فیلتر مطابقت دارند استفاده میکند. فیلتر به فرم d.d.d.d است که در آن هر d یک عدد است، یا الگویی درون [] که شامل یک یا چند عدد یا محدوده عدد..عدد جداشده با ";" میباشد.
- هنگامی که در یک الگو "*weight" مشخص نشده باشد، وزن الگو ۱ است. در غیر این صورت، وزن باید یک عدد صحیح باشد. برای قرار دادن در فهرست مجاز یک عدد منفی مشخص کنید.
- هنگامی که
یک الگو با
یک یا چند
نتیجه
استعلام DNSBL
مطابقت
پیدا کند،
postscreen(8) وزن آن
الگو را یک
بار به
امتیاز DNSBL
کلاینت
دوردست SMTP
اضافه
میکند.
مثالها:
برای استفاده از example.com به عنوان یک فهرست مسدودسازی با ضریب اطمینان بالا، و مسدود کردن ایمیل با example.net و example.org تنها زمانی که هر دو موافق باشند:
postscreen_dnsbl_threshold = 2 postscreen_dnsbl_sites = example.com*2, example.net, example.org
برای فیلتر کردن تنها پاسخهای DNSBL حاوی 127.0.0.4:
postscreen_dnsbl_sites = example.com=127.0.0.4
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_dnsbl_threshold (default: 1)
حد پایین شاملشونده برای مسدود کردن کلاینت دوردست SMTP، بر اساس امتیاز ترکیبی DNSBL آن مطابق با پارامتر postscreen_dnsbl_sites.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_dnsbl_timeout (default: 10s)
محدودیت زمانی برای جستجوهای DNSBL یا DNSWL. این مقدار جدا از مهلتهای زمانی دیمن dnsblog(8) است که توسط روالهای resolver(3) سیستم تعریف میشوند.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix 3.0 در دسترس است.
postscreen_dnsbl_ttl (default: 1h)
مدت زمانی که postscreen(8) به خاطر میسپارد که نشانی IP یک کلاینت آزمون اعتبار مبتنی بر DNS را پشت سر گذاشته است، پیش از آنکه نیاز به قبولی مجدد در آن آزمون باشد.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض h (ساعت) است.
این قابلیت در Postfix 2.8-3.0 در دسترس است. این پارامتر در Postfix 3.1 با postscreen_dnsbl_max_ttl جایگزین شد.
postscreen_dnsbl_whitelist_threshold (default: 0)
در Postfix 3.6 به postscreen_dnsbl_allowlist_threshold تغییر نام یافت.
این قابلیت در Postfix 2.11 - 3.5 در دسترس است.
postscreen_enforce_tls (default: $smtpd_enforce_tls)
استفاده اجباری از TLS: اعلان پشتیبانی STARTTLS به کلاینتهای دوردست SMTP، و الزام کلاینتها به استفاده از رمزنگاری TLS. برای جزئیات smtpd_postscreen_enforce_tls را ببینید.
این قابلیت در Postfix 2.8 و بالاتر در دسترس است. ترجیحاً به جای آن از postscreen_tls_security_level استفاده کنید.
postscreen_expansion_filter (default: see postconf -d output)
فهرست نویسههایی که در بسط ویژگی postscreen_reject_footer مجاز هستند. برای جزئیات بیشتر smtpd_expansion_filter را ببینید.
این قابلیت در Postfix 2.8 و بالاتر در دسترس است.
postscreen_forbidden_commands (default: $smtpd_forbidden_commands)
فهرست دستوراتی که سرور postscreen(8) آنها را نقض پروتکل SMTP در نظر میگیرد. برای نحو smtpd_forbidden_commands و برای اقدامات ممکن postscreen_non_smtp_command_action را ببینید.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_greet_action (default: ignore)
اقدامی که postscreen(8) در صورت صحبت زودهنگام کلاینت دوردست SMTP پیش از نوبتش درون زمان تعیینشده با پارامتر postscreen_greet_wait انجام میدهد. یکی از موارد زیر را مشخص کنید:
- ignore (پیشفرض)
- شکست این
آزمون
نادیده
گرفته شود.
به سایر
آزمونها
اجازه
تکمیل داده
شود. این
آزمون در
اتصال بعدی
کلاینت
تکرار شود.
این گزینه
برای
آزمایش و
جمعآوری
آمار بدون
مسدود کردن
ایمیل مفید
است.
- enforce
- به سایر
آزمونها
اجازه
تکمیل داده
شود.
تلاشها
برای تحویل
ایمیل با
پاسخ 550 SMTP رد
شوند و
اطلاعات
helo/فرستنده/گیرنده
لاگ شود.
این آزمون
در اتصال
بعدی
کلاینت
تکرار شود.
- drop
- اتصال
بلافاصله
با پاسخ 521 SMTP
قطع شود.
این آزمون
در اتصال
بعدی
کلاینت
تکرار شود.
در هر دو مورد، postscreen(8) نشانی IP کلاینت دوردست SMTP را در فهرست مجاز قرار نخواهد داد.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_greet_banner (default: $smtpd_banner)
متن درون پاسخ اختیاری "220-text..." سرور که postscreen(8) پیش از پاسخ "220 text..." سرور SMTP واقعی Postfix ارسال میکند، با هدف سردرگم کردن کلاینتهای بد SMTP تا پیش از نوبت خود صحبت کنند (pre-greet). برای غیرفعال کردن این قابلیت یک مقدار خالی مشخص کنید.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_greet_ttl (default: 1d)
مدت زمانی که postscreen(8) به خاطر میسپارد که نشانی IP یک کلاینت آزمون PREGREET را گذرانده است، پیش از آنکه ملزم به قبولی مجدد در آن آزمون باشد. مقدار پیشفرض نسبتاً کوتاه است، زیرا یک کلاینت خوب میتواند بلافاصله با سرور SMTP واقعی Postfix صحبت کند.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض d (روز) است.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_greet_wait (default: normal: 6s, overload: 2s)
مدت زمانی که postscreen(8) برای ارسال دستور توسط کلاینت SMTP پیش از فرارسیدن نوبتش، و رسیدن نتایج جستجوی فهرست مسدودسازی DNS منتظر خواهد ماند (پیشفرض: حداکثر تا ۲ ثانیه تحت فشار، در غیر این صورت حداکثر تا ۶ ثانیه).
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_helo_required (default: $smtpd_helo_required)
الزام کلاینت دوردست SMTP به ارسال HELO یا EHLO پیش از آغاز تراکنش MAIL.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_non_smtp_command_action (default: drop)
اقدامی که postscreen(8) هنگام ارسال دستورات غیر SMTP (مشخصشده با پارامتر postscreen_forbidden_commands) توسط کلاینت دوردست SMTP انجام میدهد. یکی از موارد زیر را مشخص کنید:
- ignore
- شکست این
آزمون
نادیده
گرفته شود.
به سایر
آزمونها
اجازه
تکمیل داده
شود. پیش از
منقضی شدن
نتیجه
آزمونهای
دیگر، این
آزمون
تکرار
نشود. این
گزینه برای
آزمایش و
جمعآوری
آمار بدون
مسدود کردن
دائمی
ایمیل مفید
است.
- enforce
- به سایر
آزمونها
اجازه
تکمیل داده
شود.
تلاشها
برای تحویل
ایمیل با
پاسخ 550 SMTP رد
شوند و
اطلاعات
helo/فرستنده/گیرنده
لاگ شود.
این آزمون
در اتصال
بعدی
کلاینت
تکرار شود.
- drop
- اتصال
بلافاصله
با پاسخ 521 SMTP
قطع شود.
این آزمون
در اتصال
بعدی
کلاینت
تکرار شود.
این اقدام
مشابه
قابلیت smtpd_forbidden_commands
در سرور SMTP
مربوط به Postfix
است.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_non_smtp_command_enable (default: no)
فعالسازی آزمونهای «دستورات غیر SMTP» در سرور postscreen(8). این آزمونها پرهزینه هستند: یک کلاینت پس از قبولی در آزمون باید اتصال را قطع کند، پیش از آنکه بتواند با یک سرور SMTP واقعی Postfix صحبت کند.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_non_smtp_command_ttl (default: 30d)
مدت زمانی که postscreen(8) به خاطر میسپارد که نشانی IP یک کلاینت آزمون پروتکل SMTP با نام "non_smtp_command" را گذرانده است، پیش از آنکه نیاز به قبولی مجدد در آن آزمون باشد. مقدار پیشفرض طولانی است زیرا کلاینت باید پس از قبولی در آزمون ارتباط را قطع کند، پیش از آنکه بتواند با سرور SMTP واقعی Postfix ارتباط برقرار کند.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض d (روز) است.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_pipelining_action (default: enforce)
اقدامی که postscreen(8) هنگام ارسال چندگانه دستورات توسط کلاینت دوردست SMTP به جای ارسال یک دستور و انتظار برای پاسخ سرور انجام میدهد. یکی از موارد زیر را مشخص کنید:
- ignore
- شکست این
آزمون
نادیده
گرفته شود.
به سایر
آزمونها
اجازه
تکمیل داده
شود. پیش از
منقضی شدن
نتیجه
آزمونهای
دیگر، این
آزمون
تکرار
نشود. این
گزینه برای
آزمایش و
جمعآوری
آمار بدون
مسدود کردن
دائمی
ایمیل مفید
است.
- enforce
- به سایر
آزمونها
اجازه
تکمیل داده
شود.
تلاشها
برای تحویل
ایمیل با
پاسخ 550 SMTP رد
شوند و
اطلاعات
helo/فرستنده/گیرنده
لاگ شود.
این آزمون
در اتصال
بعدی
کلاینت
تکرار شود.
- drop
- اتصال
بلافاصله
با پاسخ 521 SMTP
قطع شود.
این آزمون
در اتصال
بعدی
کلاینت
تکرار شود.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_pipelining_enable (default: no)
فعالسازی آزمونهای پروتکل SMTP با نام "pipelining" در سرور postscreen(8). این آزمونها پرهزینه هستند: یک کلاینت خوب باید پس از قبولی در آزمون اتصال را قطع کند، پیش از آنکه بتواند با یک سرور SMTP واقعی Postfix صحبت کند.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_pipelining_ttl (default: 30d)
مدت زمانی که postscreen(8) به خاطر میسپارد که یک نشانی IP کلاینت آزمون پروتکل SMTP با نام "pipelining" را گذرانده است، پیش از آنکه ملزم به قبولی مجدد در آن آزمون باشد. مقدار پیشفرض طولانی است زیرا کلاینت خوب باید پس از قبولی در آزمون ارتباط را قطع کند، پیش از آنکه بتواند با یک سرور SMTP واقعی Postfix صحبت کند.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض d (روز) است.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_post_queue_limit (default: $default_process_limit)
تعداد کلاینتهایی که میتوانند در صف انتظار برای دریافت سرویس از سوی یک فرایند سرور SMTP واقعی Postfix قرار گیرند. هنگامی که این صف پر شود، تمام کلاینتها پاسخ 421 دریافت خواهند کرد.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_pre_queue_limit (default: $default_process_limit)
تعداد کلاینتهای خارج از فهرست مجاز که میتوانند در انتظار تصمیمگیری برای دریافت سرویس از فرایند سرور واقعی Postfix SMTP باشند. هنگامی که این صف پر شود، تمام کلاینتهای خارج از فهرست مجاز پاسخ 421 دریافت خواهند کرد.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_reject_footer (default: $smtpd_reject_footer)
اطلاعات اختیاری که پس از پاسخ 4XX یا 5XX سرور postscreen(8) پیوست میشود. برای جزئیات بیشتر smtpd_reject_footer را ببینید.
این قابلیت در Postfix 2.8 و بالاتر در دسترس است.
postscreen_reject_footer_maps (default: $smtpd_reject_footer_maps)
جدول جستجوی اختیاری برای اطلاعاتی که پس از پاسخ 4XX یا 5XX سرور postscreen(8) پیوست میشود. برای جزئیات بیشتر smtpd_reject_footer_maps را ببینید.
این قابلیت در Postfix 3.4 و بالاتر در دسترس است.
postscreen_tls_security_level (default: $smtpd_tls_security_level)
سطح امنیت SMTP TLS برای سرور postscreen(8)؛ هنگامی که یک مقدار غیرخالی مشخص شود، این گزینه بر پارامترهای منسوخشده postscreen_use_tls و postscreen_enforce_tls ارجحیت دارد. برای جزئیات smtpd_tls_security_level را ببینید.
این قابلیت در Postfix 2.8 و بالاتر در دسترس است.
postscreen_upstream_proxy_protocol (default: empty)
نام پروتکل پراکسی مورد استفاده توسط یک عامل اختیاری پراکسی پیش از postscreen. هنگامی که یک عامل پراکسی به کار گرفته شود، این پروتکل اطلاعات درگاه و نشانی محلی و دوردست را منتقل میکند. مقدار "postscreen_upstream_proxy_protocol = haproxy" را برای فعالسازی پروتکل haproxy مشخص کنید؛ نسخه ۲ در Postfix 3.5 و بالاتر پشتیبانی میشود.
این قابلیت در Postfix 2.10 و بالاتر در دسترس است.
postscreen_upstream_proxy_timeout (default: 5s)
محدودیت زمانی برای پروتکل پراکسی مشخصشده با پارامتر postscreen_upstream_proxy_protocol.
این قابلیت در Postfix 2.10 و بالاتر در دسترس است.
postscreen_use_tls (default: $smtpd_use_tls)
استفاده اختیاری از TLS: اعلان پشتیبانی STARTTLS به کلاینتهای دوردست SMTP، اما بدون الزام کلاینتها به استفاده از رمزنگاری TLS.
این قابلیت در Postfix 2.8 و بالاتر در دسترس است. ترجیحاً به جای آن از postscreen_tls_security_level استفاده کنید.
postscreen_watchdog_timeout (default: 10s)
حداکثر زمانی که یک فرایند postscreen(8) مجاز است برای پاسخگویی به دستور کلاینت دوردست SMTP یا انجام یک عملیات کَش صرف کند پیش از آنکه توسط تایمر نگهبان داخلی (watchdog) خاتمه یابد. این یک سازوکار ایمنی است که مانع از بیپاسخ ماندن postscreen(8) به دلیل وجود باگ در خود Postfix یا در نرمافزار سیستم میشود. برای جلوگیری از هشدارهای اشتباه و خراب شدن بیمورد کَش، این محدودیت نمیتواند کمتر از 10s تنظیم شود.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix 2.8 در دسترس است.
postscreen_whitelist_interfaces (default: static:all)
در Postfix 3.6 به postscreen_allowlist_interfaces تغییر نام یافت.
این قابلیت در Postfix 2.9 - 3.5 در دسترس است.
prepend_delivered_header (default: command, file, forward)
زمینههای تحویل پیام که در آنها عامل تحویل local(8) در Postfix سرآیند Delivered-To: را به همراه نشانی تحویل ایمیل در ابتدای پیام درج میکند. این اطلاعات برای تشخیص حلقه در فرآیند تحویل ایمیل استفاده میشود.
بهطور پیشفرض، عامل تحویل محلی Postfix یک سرآیند Delivered-To: را هنگام فوروارد کردن ایمیل و هنگام تحویل به فایل (صندوق پستی) و دستور اضافه میکند. غیرفعال کردن سرآیند Delivered-To: هنگام فوروارد کردن ایمیل توصیه نمیشود.
صفر یا چند مورد از forward، file، یا command را مشخص کنید.
مثال:
prepend_delivered_header = forward
process_id (read-only)
شناسه فرایند (PID) یک دستور یا فرایند دیمن Postfix.
process_id_directory (default: pid)
مکان فایلهای PID مربوط به Postfix نسبت به $queue_directory. این یک پارامتر فقطخواندنی است.
process_name (read-only)
نام فرایند مربوط به یک دستور یا فرایند دیمن Postfix.
propagate_unmatched_extensions (default: canonical, virtual)
کدام جدولهای جستجوی آدرس، پسوند آدرس را از کلید جستجو به نتیجه جستجو کپی کنند.
برای نمونه، با یک نگاشت virtual(5) بهصورت «joe@example.com => joe.user@example.net»، آدرس «joe+foo@example.com» به «joe.user+foo@example.net» بازنویسی میشود.
صفر یا چند مورد از canonical، virtual، alias، forward، include یا generic را مشخص کنید. این موارد بهترتیب باعث انتشار پسوند آدرس در جدولهای canonical(5)، virtual(5) و aliases(5)، در جستجوهای فایل .forward و :include: مربوط به local(8)، و در جدولهای generic مربوط به smtp(8) میشوند.
نکته: فعال کردن این ویژگی برای انواعی غیر از canonical و virtual بهاحتمال قوی هنگام فوروارد ایمیل به سایتهای دیگر، بهویژه برای ایمیلهای ارسالی به آدرس توزیعکننده فهرست پستی (mailing list exploder)، مشکلاتی ایجاد خواهد کرد.
مثالها:
propagate_unmatched_extensions = canonical, virtual, alias,
forward, include
propagate_unmatched_extensions = canonical, virtual
proxy_interfaces (default: empty)
آدرسهای رابط شبکه راه دور که این سیستم ایمیل از طریق یک پراکسی یا واحد ترجمه آدرس شبکه (NAT) ایمیلها را روی آنها دریافت میکند.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
هنگامی که سیستم شما میزبان MX پشتیبان (backup MX) برای دامنههای دیگر است، باید آدرسهای «بیرونی» پراکسی/NAT خود را مشخص کنید؛ در غیر این صورت اگر میزبان MX اصلی از کار بیفتد، حلقههای تحویل ایمیل رخ خواهد داد.
مثال:
proxy_interfaces = 1.2.3.4
proxy_read_maps (default: see postconf -d output)
جدولهای جستجویی که سرور proxymap(8) مجاز به دسترسی به آنها برای سرویس فقطخواندنی است.
صفر یا چند جدول جستجو بهصورت «type:name» را مشخص کنید که با فاصله سفید یا کاما از هم جدا شدهاند. ارجاعاتی به جدول که با :proxy شروع نمیشوند نادیده گرفته میشوند.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
proxy_write_maps (default: see postconf -d output)
جدولهای جستجویی که سرور proxymap(8) مجاز به دسترسی به آنها برای سرویس خواندن-نوشتن است. فایلهای پایگاه داده محلی متعلق به Postfix باید در data_directory متعلق به Postfix ذخیره شوند. ارجاعاتی به جدول که با :proxy شروع نمیشوند نادیده گرفته میشوند.
این ویژگی در Postfix نسخه 2.5 و بالاتر در دسترس است.
proxymap_service_name (default: proxymap)
نام سرویس جستجوی جدول فقطخواندنی proxymap. این سرویس معمولاً توسط دیمن proxymap(8) پیادهسازی میشود.
این ویژگی در Postfix نسخه 2.6 و بالاتر در دسترس است.
proxywrite_service_name (default: proxywrite)
نام سرویس جستجوی جدول خواندن-نوشتن proxywrite. این سرویس معمولاً توسط دیمن proxymap(8) پیادهسازی میشود.
این ویژگی در Postfix نسخه 2.6 و بالاتر در دسترس است.
qmgr_clog_warn_time (default: 300s)
حداقل تاخیر میان هشدارهایی مبنی بر اینکه یک مقصد خاص در حال مسدود کردن صف فعال Postfix است. برای غیرفعالسازی، 0 را مشخص کنید.
یک مقدار زمانی غیرمنفی تعیین کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای واحد زمان). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی با پارامتر helpful_warnings فعال میشود.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
qmgr_daemon_timeout (default: 1000s)
مدت زمانی که یک فرایند مدیر صف Postfix میتواند پیش از خاتمه یافتن توسط تایمر نگهبان (watchdog) داخلی، برای پردازش یک درخواست صرف کند.
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای واحد زمان). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix نسخه 2.8 و بالاتر در دسترس است.
qmgr_fudge_factor (default: 100)
ویژگی منسوخشده: درصدی از منابع تحویل که یک سیستم ایمیل مشغول، برای تحویل یک پیام بزرگ به فهرست پستی استفاده خواهد کرد.
این ویژگی تنها در مدیر صف قدیمی oqmgr(8) وجود دارد. مدیر صف فعلی این مشکل را به روش بهتری حل میکند.
qmgr_ipc_timeout (default: 60s)
محدودیت زمانی برای ارسال یا دریافت اطلاعات توسط مدیر صف از طریق یک کانال ارتباطی داخلی. هدف، خروج از وضعیتهای بنبست (deadlock) است. در صورت فراتر رفتن از محدودیت زمانی، نرمافزار یا عملیات را تکرار میکند یا آن را لغو مینماید.
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای واحد زمان). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix نسخه 2.8 و بالاتر در دسترس است.
qmgr_message_active_limit (default: 20000)
حداکثر تعداد پیامها در صف فعال (active queue).
qmgr_message_recipient_limit (default: 20000)
حداکثر تعداد گیرندگانی که توسط مدیر صف Postfix در حافظه نگهداری میشوند، و حداکثر اندازه حافظه موقت کوتاهمدت درون حافظه برای وضعیت مقصد «ناموجود» (dead).
qmgr_message_recipient_minimum (default: 10)
حداقل تعداد گیرندگان درون حافظه برای هر پیام. این مقدار در صورت لزوم بر هر محدودیت گیرنده درون حافظه دیگری (یعنی qmgr_message_recipient_limit سراسری و _recipient_limit به ازای هر انتقال) ارجحیت دارد. حداقل مقدار مجاز برای این پارامتر 1 است.
qmqpd_authorized_clients (default: empty)
کدام کلاینتهای راه دور QMQP مجاز به اتصال به درگاه سرور QMQP در Postfix هستند.
بهطور پیشفرض، هیچ کلاینتی مجاز به استفاده از این سرویس نیست؛ زیرا سرور QMQP ایمیل را به هر مقصدی رله خواهد کرد.
فهرستی از الگوهای کلاینت را مشخص کنید. یک الگوی فهرست شامل یک نام میزبان، یک نام دامنه، یک آدرس اینترنتی یا یک الگوی شبکه/ماسک است که در آن ماسک تعداد بیتهای بخش شبکه را مشخص میکند. هنگامی که یک الگو نام یک فایل را مشخص میکند، محتویات آن جایگزین نام فایل میشود؛ هنگامی که یک الگو بهصورت «type:table» باشد، از جستجوی جدول استفاده میشود. آدرس IPv6 باید در [] محصور شود.
الگوها با فاصله سفید یا کاما از هم جدا میشوند. برای معکوس کردن نتیجه، پیش از الگو یک علامت تعجب (!) قرار دهید. قالب «!/file/name» تنها در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
تطبیق الگوی نامهای دامنه توسط حضور یا عدم حضور «qmqpd_authorized_clients» در مقدار پارامتر parent_domain_matches_subdomains کنترل میشود.
مثال:
qmqpd_authorized_clients = !192.168.0.1, 192.168.0.0/24
qmqpd_client_port_logging (default: no)
فعال کردن ثبت درگاه کلاینت راه دور QMQP در گزارشها علاوه بر نام میزبان و آدرس IP. قالب ثبت گزارش بهصورت «host[address]:port» است.
این ویژگی در Postfix نسخه 2.5 و بالاتر در دسترس است.
qmqpd_error_delay (default: 1s)
مدت زمانی که سرور QMQP در Postfix پیش از ارسال پاسخ منفی به کلاینت راه دور QMQP مکث میکند. هدف، کند کردن کلاینتهای سردرگم یا مخرب است.
یک مقدار زمانی غیرمنفی تعیین کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای واحد زمان). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
qmqpd_timeout (default: 300s)
محدودیت زمانی برای ارسال یا دریافت اطلاعات از طریق شبکه. چنانچه یک عملیات خواندن یا نوشتن بیش از qmqpd_timeout$ ثانیه مسدود بماند، سرور QMQP در Postfix عملیات را رها کرده و ارتباط را قطع میکند.
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای واحد زمان). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
queue_directory (default: see postconf -d output)
مکان دایرکتوری سطح بالای صف Postfix. این دایرکتوری، دایرکتوری ریشه فرایندهای دیمن Postfix است که بهصورت chrooted اجرا میشوند.
queue_file_attribute_count_limit (default: 100)
حداکثر تعداد صفتهای (name=value) که میتواند در یک فایل صف Postfix ذخیره شود. این محدودیت توسط سرور cleanup(8) اعمال میشود.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
queue_minfree (default: 0)
حداقل مقدار فضای خالی بر حسب بایت در سیستم فایل صف که برای دریافت ایمیل مورد نیاز است. این مقدار در حال حاضر توسط سرور SMTP در Postfix برای تصمیمگیری درباره پذیرش هرگونه ایمیل استفاده میشود.
بهطور پیشفرض، سرور SMTP در Postfix دستورهای MAIL FROM را زمانی که مقدار فضای خالی کمتر از 1.5*$message_size_limit باشد رد میکند (Postfix نسخه 2.1 و بالاتر). برای تعیین یک محدودیت حداقل فضای خالی بیشتر، مقداری برای queue_minfree تعیین کنید که حداقل 1.5*$message_size_limit باشد.
در Postfix نسخههای 2.0 و پیشتر، مقدار صفر برای queue_minfree به این معنی است که هیچ حداقل فضای خالی الزامی نیست.
queue_run_delay (default: 300s)
فاصله زمانی میان اسکنهای صف معوق (deferred queue) توسط مدیر صف؛ پیش از Postfix نسخه 2.4 مقدار پیشفرض 1000s بود.
این پارامتر باید کمتر یا مساوی با minimal_backoff_time$ تنظیم شود. همچنین maximal_backoff_time$ را ببینید.
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای واحد زمان). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
queue_service_name (default: qmgr)
نام سرویس qmgr(8). این سرویس صف Postfix را مدیریت کرده و درخواستهای تحویل را زمانبندی میکند.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
rbl_reply_maps (default: empty)
جدولهای جستجوی اختیاری شامل الگوهای پاسخ RBL یا RHSBL. کلید جستجوی جدول، آرگومان reject_rbl_* یا reject_rhsbl_* است، شامل هرگونه «=address-filter» اختیاری. در Postfix نسخه 3.10 و بالاتر، اگر نتیجه «یافت نشد» باشد و کلید جستجو ساختاری بهصورت domain=address-filter داشته باشد، rbl_reply_maps با خود domain نیز جستجو خواهد کرد.
بهطور پیشفرض، Postfix از الگوی تعیینشده در پارامتر پیکربندی default_rbl_reply استفاده میکند. برای آگاهی از قواعد نحوی الگوی پاسخ به آن پارامتر مراجعه کنید.
مثال:
/etc/postfix/main.cf:
rbl_reply_maps = lmdb:/etc/postfix/rbl_reply
smtpd_recipient_restrictions =
permit_mynetworks,
reject_rbl_client secret.zen.dq.spamhaus.net=127.0.0.[2..11],
...
/etc/postfix/rbl_reply:
# See https://www.postfix.org/postconf.5.html#default_rbl_reply
# for the definition of the $client_address and $rbl_class etc.
# variables.
secret.zen.dq.spamhaus.net=127.0.0.[2..11]
554 $rbl_class $rbl_what blocked using ZEN - see https://www.spamhaus.org/query/ip/$client_address for details
# Postfix >= 3.10: if a search key domain=address-filter
# is not found, then rbl_reply_maps will also search with the
# domain.
secret.zen.dq.spamhaus.net
554 $rbl_class $rbl_what blocked using ZEN - see https://www.spamhaus.org/query/ip/$client_address for details
برخی سیستمها بهجای lmdb: از cdb:، hash: یا dbm: استفاده میکنند.
نکته: این ویژگی با postscreen_dnsbl_reply_map تفاوت دارد؛ در آنجا کلید جستجوی جدول تنها یک نام دامنه است (بدون «=address-filter» و بدون ضریب «*weight») و نتیجه جستجو نیز باید فقط یک نام دامنه باشد (بدون متن آزاد و بدون متغیرهای $name).
پس از تغییر فایل rbl_reply، دستور «postmap /etc/postfix/rbl_reply» را برای بازسازی فایل نمایهسازیشده با نوع پیشفرض اجرا کنید. برای تعیین نوعی صریح، دستور «postmap type:/etc/postfix/rbl_reply» را اجرا نمایید.
نوع فایل نمایهسازیشده پیشفرض با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن انواع صریح موجود، دستور «postconf -m» را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه اعمال خواهند شد. برای رفع این تاخیر از «postfix reload» استفاده کنید.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است. ویژگی «address-filter=» در Postfix نسخه 2.8 و بالاتر در دسترس است.
readme_directory (default: see postconf -d output)
مکان فایلهای README مربوط به Postfix که چگونگی ساخت، پیکربندی یا استفاده از یک زیرسیستم یا ویژگی خاص Postfix را تشریح میکنند.
receive_override_options (default: empty)
فعال یا غیرفعال کردن اعتبارسنجی گیرنده، فیلترگذاری داخلی محتوا یا نگاشت آدرس. این گزینهها معمولاً در master.cf بهعنوان آرگومانهای خط فرمان برای دیمنهای smtpd(8)، qmqpd(8) یا pickup(8) مشخص میشوند.
صفر یا چند مورد از گزینههای زیر را تعیین کنید. این گزینهها تنظیمات main.cf را لغو میکنند و توسط خود smtpd(8)، qmqpd(8) یا pickup(8) اعمال میشوند یا به سرور cleanup ارسال میگردند.
- no_unknown_recipient_checks
- برای رد
گیرندگان
ناشناخته
تلاشی نکن
(تنها در
سرور SMTP). این
گزینه
معمولاً
بعد از یک
فیلتر
محتوای
خارجی مشخص
میشود.
- no_address_mappings
- غیرفعالسازی
نگاشت آدرس
canonical، بسط
جدولهای
نام مستعار
مجازی (virtual alias map)،
پوشش آدرس (address
masquerading) و افزودن
خودکار
گیرندگان BCC.
این مورد
معمولاً
قبل از یک
فیلتر
محتوای
خارجی مشخص
میشود.
- no_header_body_checks
- غیرفعالسازی
header/body_checks. این
مورد
معمولاً
بعد از یک
فیلتر
محتوای
خارجی مشخص
میشود.
- no_milters
- غیرفعالسازی
برنامههای
کاربردی Milter
(فیلتر
ایمیل). این
مورد
معمولاً
بعد از یک
فیلتر
محتوای
خارجی مشخص
میشود.
نکته: هنگامی که تنظیم receive_override_options برای «قبل از فیلتر محتوا» در فایل main.cf مشخص شده باشد، تنظیم مربوط به «بعد از فیلتر محتوا» را در master.cf تعیین کنید (و بالعکس).
مثالها:
receive_override_options =
no_unknown_recipient_checks, no_header_body_checks
receive_override_options = no_address_mappings
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
recipient_bcc_maps (default: empty)
جدولهای جستجوی اختیاری آدرس BCC (رونوشت مخفی)، که با آدرس گیرنده پاکت (envelope recipient) نمایهسازی شدهاند. آدرس BCC (نتایج چندگانه پشتیبانی نمیشود) هنگام ورود ایمیل از خارج Postfix افزوده میشود.
صفر یا چند جدول جستجو بهصورت «type:name» را مشخص کنید که با فاصله سفید یا کاما از هم جدا شدهاند. جدولها به ترتیب مشخصشده تا زمان یافتن یک تطابق جستجو خواهند شد.
ترتیب جستجوی جدول به شرح زیر است:
- جستجوی آدرس «user+extension@domain.tld» شامل پسوند اختیاری آدرس.
- جستجوی آدرس “user@domain.tld” بدون پسوند آدرس اختیاری.
- جستجوی بخش محلی آدرس “user+extension” هنگامی که دامنه گیرنده برابر با $myorigin، $mydestination، $inet_interfaces یا $proxy_interfaces باشد.
- جستجوی بخش محلی آدرس “user” هنگامی که دامنه گیرنده برابر با $myorigin، $mydestination، $inet_interfaces یا $proxy_interfaces باشد.
- جستجوی بخش
“@domain.tld”.
نکته: در Postfix نسخه 2.3 و بالاتر، آدرس BCC به گونهای اضافه میشود که گویی با NOTIFY=NONE مشخص شده است. تا زمانی که تمام نرمافزارهای مقصد (downstream) RFC 3461 را پیادهسازی کرده باشند، در صورت غیرقابل تحویل بودن آدرس BCC، به فرستنده اطلاع داده نخواهد شد.
نکته: در Postfix نسخه 2.2 و قبلتر، در صورت غیرقابل تحویل بودن آدرس BCC، بدون قید و شرط به فرستنده اطلاع داده میشود.
نکته: گیرندگان BCC خودکار فقط برای ایمیلهای جدید ایجاد میشوند. جهت جلوگیری از حلقههای ایمیلی (mailer loops)، پس از این که Postfix ایمیل را به صورت داخلی فوروارد کند، یا پس از این که Postfix خودش ایمیل تولید کند، گیرندگان BCC خودکار تولید نمیشوند.
نکته: گیرندگان BCC خودکار مشمول یکسانسازی آدرس (افزودن دامنه ناموجود)، canonical_maps، masquerade_domains و virtual_alias_maps هستند.
مثال:
recipient_bcc_maps = lmdb:/etc/postfix/recipient_bcc
به جای lmdb:، برخی سیستمها از cdb:، hash:، یا dbm: استفاده میکنند.
دستور “postmap /etc/postfix/recipient_bcc” را پس از تغییر فایل recipient_bcc اجرا کنید تا فایل نمایهسازیشده از نوع پیشفرض (باز)تولید شود. برای مشخص کردن یک نوع صریح، دستور “postmap type:/etc/postfix/recipient_bcc” را اجرا کنید.
نوع فایل نمایهسازیشده پیشفرض با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن نوعهای صریح موجود، دستور “postconf -m” را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه نمایان خواهند شد. برای رفع این تأخیر از “postfix reload” استفاده کنید.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
recipient_canonical_classes (default: envelope_recipient, header_recipient)
چه آدرسهایی مشمول نگاشت آدرس recipient_canonical_maps هستند. به صورت پیشفرض، نگاشت آدرس recipient_canonical_maps روی آدرسهای گیرنده پاکت (envelope) و آدرسهای گیرنده سرآیند (header) اعمال میشود.
یک یا چند مورد از موارد زیر را مشخص کنید: envelope_recipient، header_recipient
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
recipient_canonical_maps (default: empty)
جدولهای اختیاری جستجوی نگاشت آدرس برای آدرسهای گیرنده پاکت و سرآیند. قالب جدول و جستجوها در canonical(5) مستند شده است.
نکته: $recipient_canonical_maps پیش از $canonical_maps پردازش میشود.
مثال:
recipient_canonical_maps = lmdb:/etc/postfix/recipient_canonical
به جای lmdb:، برخی سیستمها از cdb:، hash:، یا dbm: استفاده میکنند.
دستور “postmap /etc/postfix/recipient_canonical” را پس از تغییر فایل recipient_canonical اجرا کنید تا فایل نمایهسازیشده از نوع پیشفرض (باز)تولید شود. برای مشخص کردن یک نوع صریح، دستور “postmap type:/etc/postfix/recipient_canonical” را اجرا کنید.
نوع فایل نمایهسازیشده پیشفرض با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن نوعهای صریح موجود، دستور “postconf -m” را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه نمایان خواهند شد. برای رفع این تأخیر از “postfix reload” استفاده کنید.
recipient_delimiter (default: empty)
مجموعه نویسههایی که میتوانند بخش محلی آدرس ایمیل، نام کاربری یا نام فایل .forward را از پسوند آن جدا کنند. برای نمونه، با “recipient_delimiter = +”، نرمافزار پیش از آزمودن user@example.com، مقدار user+foo@example.com را میآزماید، پیش از user، مقدار user+foo را، و پیش از .forward، مقدار .forward+foo را میآزماید.
به بیان دقیقتر، بخش محلی آدرس ایمیل یا نام کاربری با نخستین نویسهای که با مجموعه recipient_delimiter مطابقت داشته باشد از پسوند خود جدا میشود. نویسه جداکننده و پسوند ممکن است سپس برای تولید یک نام فایل .forward گسترشیافته به کار روند. این پیادهسازی یک نویسه جداکننده و یک پسوند را برای هر بخش محلی یا آدرس ایمیل به رسمیت میشناسد. در Postfix نسخه 2.10 و قبلتر، recipient_delimiter یک نویسه واحد را مشخص میکرد.
برای آگاهی از اثرات recipient_delimiter بر جستجوها در نگاشتهای aliases، canonical، virtual و relocated، به canonical(5)، local(8)، relocated(5) و virtual(5) مراجعه کنید؛ همچنین برای انتشار یک پسوند از یک آدرس ایمیل به آدرس دیگر، پارامتر propagate_unmatched_extensions را ببینید.
هنگامی که در command_execution_directory، forward_path یا luser_relay به کار میرود، ${recipient_delimiter} با جداکننده واقعی گیرنده که در آدرس ایمیل گیرنده یافت شده جایگزین میشود (Postfix نسخه 2.11 و بالاتر)، یا با مقدار پارامتر recipient_delimiter در main.cf جایگزین میگردد (Postfix نسخه 2.10 و قبلتر).
مقدار recipient_delimiter روی آدرسهای mailer-daemon، postmaster، یا آدرس double-bounce اعمال نمیشود. با تنظیم پیشفرض “owner_request_special = yes”، مقدار recipient_delimiter همچنین بر روی آدرسهایی با پیشوند ویژه “owner-” یا پسوند ویژه “-request” اعمال نمیشود.
مثالها:
# Handle Postfix-style extensions. recipient_delimiter = +
# Handle both Postfix and qmail extensions (Postfix 2.11 and later). recipient_delimiter = +-
# Use .forward for mail without address extension, and for mail with
# an unrecognized address extension.
forward_path = $home/.forward${recipient_delimiter}${extension},
$home/.forward
reject_code (default: 554)
کد عددی پاسخ سرور SMTP در Postfix هنگامی که درخواست کارخواه SMTP دوردست توسط محدودیت “reject” رد میشود.
این مقدار را تغییر ندهید مگر اینکه درک کاملی از RFC 5321 داشته باشید.
reject_tempfail_action (default: defer_if_permit)
اقدام سرور SMTP در Postfix هنگامی که یک محدودیت از نوع رد کردن (reject) به دلیل شرایط خطای موقت با شکست مواجه میشود. برای به تعویق انداختن فوری درخواست کارخواه SMTP دوردست، مقدار “defer” را مشخص کنید. با اقدام پیشفرض “defer_if_permit”، سرور SMTP در Postfix به بررسی فرصتهای رد کردن ایمیل ادامه میدهد و درخواست کارخواه را تنها در صورتی به تعویق میاندازد که در غیر این صورت پذیرفته میشد.
برای کنترل دقیقتر، ببینید: unverified_recipient_tempfail_action، unverified_sender_tempfail_action، unknown_address_tempfail_action و unknown_helo_hostname_tempfail_action.
این ویژگی در Postfix نسخه 2.6 و بالاتر در دسترس است.
relay_clientcerts (default: empty)
فهرستی از جدولهای اثرانگشت گواهی کارخواه SMTP دوردست یا اثرانگشتهای کلید عمومی (Postfix نسخه 2.9 و بالاتر) که سرور SMTP در Postfix با ویژگی permit_tls_clientcerts به آنها اجازه دسترسی خواهد داد. الگوریتم خلاصه اثرانگشت از طریق پارامتر smtpd_tls_fingerprint_digest قابل پیکربندی است (قبل از نسخه 2.5 کارگزار Postfix، به صورت هاردکد شده md5 بود).
الگوریتم پیشفرض در Postfix >= 3.6 در صورتی که compatibility_level روی 3.6 یا بالاتر تنظیم شده باشد، sha256 است. با Postfix <= 3.5، الگوریتم پیشفرض md5 است. اکنون مناسبترین الگوریتم بر اساس بهترین شیوهها الگوریتم sha256 است. پیشرفتهای اخیر در تحلیل رمز توابع هش منجر به منسوخ شدن md5 و sha1 به نفع sha256 شده است. با این حال، تا زمانی که هیچ حمله شناختهشدهای از نوع پیشتصویر دوم (second pre-image) علیه الگوریتمهای قدیمیتر وجود نداشته باشد، استفاده از آنها در این زمینه، هرچند توصیه نمیشود، اما احتمالاً همچنان امن است.
جدولهای جستجوی Postfix به شکل جفتهای (key, value) هستند. از آنجا که ما تنها به کلید نیاز داریم، مقدار را میتوان به دلخواه انتخاب کرد، مثلاً نام کاربر یا میزبان: D7:04:2F:A7:0B:8C:A5:21:FA:31:77:E1:41:8A:EE:80 lutzpc.at.home
مثال:
relay_clientcerts = lmdb:/etc/postfix/relay_clientcerts
به جای lmdb:، برخی سیستمها از cdb:، hash:، یا dbm: استفاده میکنند.
برای کنترل دقیقتر، از check_ccert_access برای انتخاب سیاست access(5) مناسب برای هر کارخواه استفاده کنید. RESTRICTION_CLASS_README را ببینید.
دستور “postmap /etc/postfix/relay_clientcerts” را پس از تغییر فایل relay_clientcerts اجرا کنید تا فایل نمایهسازیشده از نوع پیشفرض (باز)تولید شود. برای مشخص کردن یک نوع صریح، دستور “postmap type:/etc/postfix/relay_clientcerts” را اجرا کنید.
نوع فایل نمایهسازیشده پیشفرض با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن نوعهای صریح موجود، دستور “postconf -m” را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه نمایان خواهند شد. برای رفع این تأخیر از “postfix reload” استفاده کنید.
این ویژگی در Postfix نسخه 2.2 در دسترس است.
relay_destination_concurrency_limit (default: $default_destination_concurrency_limit)
حداکثر تعداد تحویلهای همزمان به یک مقصد یکسان از طریق ترابری تحویل پیام relay. این محدودیت توسط مدیر صف (queue manager) اعمال میشود. نام ترابری تحویل پیام، نخستین فیلد ورودی در فایل master.cf است.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
relay_destination_recipient_limit (default: $default_destination_recipient_limit)
حداکثر تعداد گیرندگان در هر پیام برای ترابری تحویل پیام relay. این محدودیت توسط مدیر صف اعمال میشود. نام ترابری تحویل پیام، نخستین فیلد ورودی در فایل master.cf است.
تنظیم این پارامتر به مقدار 1 مفهوم relay_destination_concurrency_limit را از همزمانی بر پایه دامنه به همزمانی بر پایه گیرنده تغییر میدهد.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
relay_domains (default: Postfix >= 3.0: empty, Postfix < 3.0: $mydestination)
این سیستم ایمیلها را به کدام دامنههای مقصد (و زیردامنههای آنها) رله خواهد کرد. برای جزئیات در مورد نحوه استفاده از مقدار relay_domains، توضیحات محدودیتهای گیرنده SMTP شامل permit_auth_destination و reject_unauth_destination را ببینید.
دامنههایی که با $relay_domains مطابقت دارند، با ترابری تحویل ایمیل $relay_transport تحویل داده میشوند. سرور SMTP آدرسهای گیرنده را با $relay_recipient_maps اعتبارسنجی کرده و گیرندگان ناموجود را رد میکند. همچنین رده آدرس دامنههای رله را در فایل ADDRESS_CLASS_README ببینید.
نکته: Postfix ایمیلها را برای دامنههایی که این سیستم را به عنوان میزبان MX اصلی یا پشتیبان خود فهرست کردهاند به صورت خودکار فوروارد نمیکند. محدودیت permit_mx_backup را در صفحه راهنمای postconf(5) ببینید.
فهرستی از نامهای میزبان یا دامنه، الگوهای “/file/name” یا جدولهای جستجوی “type:table” را مشخص کنید که با کاما و/یا نویسه فاصله از هم جدا شدهاند. خطوط طولانی را با شروع خط بعدی با فاصله ادامه دهید. یک الگوی “/file/name” با محتویات آن جایگزین میشود؛ یک جدول جستجوی “type:table” هنگامی تطبیق داده میشود که یک دامنه (یا والد آن) به عنوان کلید جستجو ظاهر شود. برای مستثنی کردن یک دامنه از فهرست، از “!pattern” استفاده کنید. قالب “!/file/name” تنها در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
تطبیق الگوی نامهای دامنه بر اساس وجود یا عدم وجود “relay_domains” در مقدار پارامتر parent_domain_matches_subdomains کنترل میشود.
relay_domains_reject_code (default: 554)
کد عددی پاسخ سرور SMTP در Postfix هنگامی که درخواست یک کارخواه توسط محدودیت گیرنده reject_unauth_destination رد میشود.
این مقدار را تغییر ندهید مگر اینکه درک کاملی از RFC 5321 داشته باشید.
relay_recipient_maps (default: empty)
جدولهای جستجوی اختیاری حاوی تمام آدرسهای معتبر در دامنههای منطبق بر $relay_domains. مقدار @domain را به عنوان نویسه عمومی (wildcard) برای دامنههایی تعیین کنید که فهرست گیرندگان معتبر ندارند و به منبعی برای ایمیلهای پسپراکنده (backscatter mail) تبدیل میشوند: Postfix اسپمها را برای گیرندگان ناموجود میپذیرد و سپس افراد بیگناه را با ایمیلهای غیرقابل تحویل بمباران میکند. از نظر فنی، جدولهای فهرستشده با $relay_recipient_maps به عنوان فهرست استفاده میشوند: Postfix فقط باید بداند که آیا رشته جستجو پیدا شده است یا خیر، اما از نتیجه جستجوی جدول استفاده نمیکند.
صفر یا چند جدول جستجوی “type:name” را مشخص کنید که با فاصله یا کاما از یکدیگر جدا شدهاند. جدولها به ترتیب مشخصشده جستجو میشوند تا زمانی که تطابقی پیدا شود.
اگر این پارامتر خالی نباشد، سرور SMTP در Postfix ایمیلهای ارسالی به کاربران رله ناشناخته را رد خواهد کرد. این ویژگی به صورت پیشفرض غیرفعال است.
همچنین رده آدرس دامنههای رله را در فایل ADDRESS_CLASS_README ببینید.
مثال:
relay_recipient_maps = lmdb:/etc/postfix/relay_recipients
به جای lmdb:، برخی سیستمها از cdb:، hash:، یا dbm: استفاده میکنند.
دستور “postmap /etc/postfix/relay_recipients” را پس از تغییر فایل relay_recipients اجرا کنید تا فایل نمایهسازیشده از نوع پیشفرض (باز)تولید شود. برای مشخص کردن یک نوع صریح، دستور “postmap type:/etc/postfix/relay_recipients” را اجرا کنید.
نوع فایل نمایهسازیشده پیشفرض با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن نوعهای صریح موجود، دستور “postconf -m” را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه نمایان خواهند شد. برای رفع این تأخیر از “postfix reload” استفاده کنید.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
relay_transport (default: relay)
ترابری تحویل ایمیل پیشفرض و مقصد گام بعدی (nexthop) برای رده آدرس دامنه رله: دامنههای گیرندهای که با $relay_domains مطابقت دارند.
برای دامنههای گیرنده در رده آدرس دامنه رله:
- به ترتیب اولویت کاهشی، ترابری تحویل پیام برگرفته میشود از: 1) $transport_maps، 2) $relay_transport.
- به ترتیب
اولویت
کاهشی،
مقصد گام
بعدی
برگرفته
میشود از: 1)
$transport_maps، 2) $relay_transport، 3)
$sender_dependent_relayhost_maps یا $relayhost
یا دامنه
گیرنده.
رشتهای به شکل transport:nexthop مشخص کنید، که در آن transport نام ترابری تحویل ایمیل تعریفشده در master.cf است. مقصد :nexthop اختیاری است؛ نحو آن در صفحه راهنمای عامل تحویل متناظر مستند شده است.
همچنین رده آدرس دامنههای رله را در فایل ADDRESS_CLASS_README ببینید.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
relayhost (default: empty)
مقصد(های) گام بعدی برای ایمیلهای غیرمحلی؛ بر دامنههای غیرمحلی در آدرسهای گیرنده اولویت دارد. هنگامی که فرستنده با $sender_dependent_relayhost_maps مطابقت داشته باشد، از این اطلاعات استفاده نخواهد شد.
به ترتیب اولویت کاهشی:
- برای دامنههای گیرنده در رده آدرس دامنه رله (دامنههای منطبق بر $relay_domains)، مقصد گام بعدی برگرفته میشود از: 1) $transport_maps، 2) $relay_transport، 3) $sender_dependent_relayhost_maps یا $relayhost یا دامنه گیرنده.
- برای
دامنههای
گیرنده در
رده آدرس
دامنه
پیشفرض
(دامنههایی
که با $mydestination،
$inet_interfaces، $proxy_interfaces،
$virtual_alias_domains، $virtual_mailbox_domains یا
$relay_domains مطابقت
ندارند)،
مقصد گام
بعدی
برگرفته
میشود از: 1)
$transport_maps، 2) $sender_dependent_default_transport_maps
یا $default_transport، 3)
$sender_dependent_relayhost_maps یا $relayhost
یا دامنه
گیرنده.
در یک اینترانت، نام دامنه سازمانی را مشخص کنید. اگر DNS داخلی شما از رکوردهای MX استفاده نمیکند، به جای آن نام میزبان گیتوی اینترانت را مشخص کنید.
در صورت تحویل SMTP، یک یا چند مقصد را به شکل نام دامنه، نام میزبان، hostname:service، [hostname]:service، [hostaddress] یا [hostaddress]:service، جدا شده با کاما یا نویسه فاصله مشخص کنید. قالب [hostname] جستجوهای MX یا SRV را غیرفعال میکند. مقصدهای چندگانه در Postfix نسخه 3.5 و بالاتر پشتیبانی میشوند. هر مقصد به ترتیب مشخصشده آزمایش میشود.
اگر یک مقصد SMTP یک متعادلکننده بار است، و هیچ مقصد جایگزینی وجود ندارد، متعادلکننده بار را چندین بار مشخص کنید. بدون این اطلاعات تکراری، کارخواه SMTP در Postfix پس از خطای سرور SMTP دوردست، بلافاصله مجدداً به همان متعادلکننده بار متصل نمیشود.
اگر از طریق UUCP متصل هستید، برای اطلاعات مفید فایل UUCP_README را ببینید.
مثالها:
relayhost = $mydomain relayhost = [gateway.example.com] relayhost = mail1.example:587, mail2.example:587 relayhost = [an.ip.add.ress]
relocated_maps (default: empty)
جدولهای جستجوی اختیاری حاوی اطلاعات تماس جدید برای کاربران یا دامنههایی که دیگر وجود ندارند. قالب جدول و جستجوها در relocated(5) مستند شده است.
صفر یا چند جدول جستجوی «type:name» را مشخص کنید که با فاصله خالی یا کاما از هم جدا شدهاند. جدولها به ترتیب مشخصشده جستجو میشوند تا زمانی که یک تطابق پیدا شود.
مثالها:
relocated_maps = lmdb:/etc/postfix/relocated
به جای lmdb:، برخی سیستمها از cdb:، hash: یا dbm: استفاده میکنند.
پس از تغییر فایل relocated، دستور «postmap /etc/postfix/relocated» را اجرا کنید تا فایل ایندکسشده با نوع پیشفرض (باز)ساخته شود. برای تعیین صریح یک نوع، «postmap type:/etc/postfix/relocated» را اجرا کنید.
نوع فایل ایندکسشده پیشفرض با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن نوعهای صریح موجود، دستور «postconf -m» را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه قابل مشاهده خواهند بود. برای حذف این تأخیر از «postfix reload» استفاده کنید.
relocated_prefix_enable (default: yes)
پیشوند «5.1.6 User has moved to » را به ابتدای تمام نتایج جستجوی relocated_maps اضافه میکند. با «relocated_prefix_enable = no»، همه نتایج جستجو باید شامل یک کد وضعیت پیشرفته معتبر و منطبق بر RFC 3463 و متن باشند (قالب: «[45].number.number text...»).
مثال:
/etc/postfix/main.cf:
relocated_maps = lmdb:/etc/postfix/relocated
relocated_prefix_enable = no
/etc/postfix/relocated:
user@example.com 5.2.1 User account is disabled
به جای lmdb:، برخی سیستمها از cdb:، hash: یا dbm: استفاده میکنند.
پس از تغییر فایل relocated، دستور «postmap /etc/postfix/relocated» را اجرا کنید تا فایل ایندکسشده با نوع پیشفرض (باز)ساخته شود. برای تعیین صریح یک نوع، «postmap type:/etc/postfix/relocated» را اجرا کنید.
نوع فایل ایندکسشده پیشفرض با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن نوعهای صریح موجود، دستور «postconf -m» را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه قابل مشاهده خواهند بود. برای حذف این تأخیر از «postfix reload» استفاده کنید.
این قابلیت در Postfix نسخه 3.11 و بالاتر در دسترس است.
remote_header_rewrite_domain (default: empty)
بازنویسی یا افزودن سرآیندهای پیام در نامههای رسیده از کلاینتهای راه دور در صورتی که مقدار پارامتر remote_header_rewrite_domain خالی نباشد؛ بهروزرسانی نشانیهای ناقص با دامنهای که در پارامتر remote_header_rewrite_domain مشخص شده، و افزودن سرآیندهای ناموجود.
پارامتر local_header_rewrite_clients کنترل میکند که Postfix چه کلاینتهایی را محلی در نظر بگیرد.
مثالها:
تنظیم امن: الحاق «domain.invalid» به نشانیهای ناقص سرآیند از کلاینتهای SMTP راه دور، بهطوری که آن نشانیها نتوانند با نشانیهای محلی اشتباه گرفته شوند.
remote_header_rewrite_domain = domain.invalid
تنظیم پیشفرض و سنتی (purist): اصلاً سرآیندهای کلاینتهای راه دور را بازنویسی نکن.
remote_header_rewrite_domain =
require_home_directory (default: no)
الزام میکند که پیش از تلاش برای تحویل نامه، دایرکتوری خانگی گیرنده local(8) وجود داشته باشد. بهطور پیشفرض این آزمایش غیرفعال است. این تنظیم میتواند برای محیطهایی که دایرکتوریهای خانگی را به سرور ایمیل وارد میکنند مفید باشد (وارد کردن دایرکتوریهای خانگی توصیه نمیشود).
requiretls_enable (default: yes)
فعالسازی پشتیبانی از دستور ESMTP با نام «REQUIRETLS» در دستور «MAIL FROM». همانطور که در RFC 8689 تعریف شده است، زمانی که یک پیام REQUIRETLS را مشخص میکند:
- تحویلها با SMTP یا LMTP باید از یک اتصال TLS استفاده کنند،
- به یک سرور MX که بهصورت امن جستجو شده است (مانند DNSSEC یا MTA-STS)،
- با گواهی سرور تطبیقیافته (سطوح امنیت TLS کلاینت SMTP یا LMTP در Postfix شامل «secure»، «verify»، «fingerprint»، dane-only یا «dane» فرصتطلبانه)،
- و سرور باید
پس از
دستتکانی
STARTTLS پشتیبانی
از «REQUIRETLS» را
اعلام کند.
هنگام تحویل پیامی که REQUIRETLS را مشخص کرده است، کلاینت SMTP در Postfix یک یا چند سرور را، با محدودیت پارامترهای smtp_mx_address_limit و smtp_mx_session_limit، امتحان میکند تا زمانی که یک سرور MX پیدا کند که الزامات فوق را برآورده سازد. اگر چنین سروری یافت نشود، کلاینت SMTP یا LMTP در Postfix پیام را به عنوان تحویلناپذیر برمیگرداند.
نکات:
- در کلاینتهای SMTP یا LMTP در Postfix، اعمال REQUIRETLS با smtp_requiretls_policy یا lmtp_requiretls_policy کنترل میشود. این ویژگی در ابتدا برای تحویل به سرورهای محلی، از جمله مخازن پیام LMTP و فیلترهای محتوای محلی اعمال نمیشود.
- گزینه ESMTP REQUIRETLS
سرآیند
پیام «TLS-Required: no»
را نادیده
میگیرد و
بر آن
ارجحیت
دارد.
این قابلیت در Postfix نسخه 3.11 و بالاتر در دسترس است.
requiretls_esmtp_header (default: yes)
درخواست ESMTP REQUIRETLS را در یک سرآیند پیام «Require-TLS-ESMTP: yes» ثبت میکند. این کار برای انتشار درخواست REQUIRETLS از طریق یک فیلتر محتوای خارجی که با smtpd_proxy_filter، با content_filter، یا با یک اقدام FILTER در جدول access(5) در SMTPD، header_checks(5) یا body_checks(5) پیکربندی شده است، لازم است. این سرآیند برای فیلترهای محتوای مبتنی بر Milter مورد نیاز نیست.
این سرآیند برای گیرندگان راه دور و محلی قابل مشاهده خواهد بود. اگر در پیکربندی از هیچیک از فیلترهای محتوای فوق که به این سرآیند نیاز دارند استفاده نمیشود، میتوان با خیال راحت آن را غیرفعال کرد.
این قابلیت در Postfix نسخه 3.11 و بالاتر در دسترس است.
requiretls_redact_dsn (default: yes)
هنگام ارسال اعلان وضعیت تحویل برای پیام اصلی دریافت شده با گزینه REQUIRETLS، بدنه پیام اصلی را ارسال نکنید (مانند اینکه آن پیام با «RET=HDRS» دریافت شده باشد) و REQUIRETLS را اعمال نکنید (مانند اینکه آن پیام بدون REQUIRETLS دریافت شده باشد). برای بررسی دقیق به RFC 8689 بخش 5 مراجعه کنید.
نکته: مسیر «معکوس» برای ارسال اعلان وضعیت تحویل ممکن است با مسیر «مستقیم» دریافت پیام اصلی تفاوت داشته باشد. ممکن است هر گام در مسیر معکوس از REQUIRETLS پشتیبانی نکند، حتی اگر هر گام در مسیر مستقیم از آن پشتیبانی کرده باشد. بنابراین تنظیم «requiretls_redact_dsn = no» ممکن است منجر به از دست رفتن یک اعلان وضعیت تحویل شود.
reset_owner_alias (default: no)
هنگام تحویل نامه به یک نام مستعار فرزند که نام مستعار مالک اختصاصی خود را ندارد، درک عامل تحویل local(8) از صفت owner-alias را بازنشانی میکند.
این قابلیت در Postfix نسخه 2.8 و بالاتر در دسترس است. در نسخههای قدیمیتر Postfix، رفتار بهگونهای است که گویی این پارامتر روی «yes» تنظیم شده است.
همانطور که در aliases(5) مستند شده است، زمانی که نام مستعار name دارای یک نام مستعار همراه به نام owner-name باشد، این مقدار جایگزین نشانی فرستنده پاکت میشود، بهطوری که خطاهای تحویل به جای فرستنده به نام مستعار مالک گزارش خواهند شد. این پیکربندی برای فهرستهای پستی توصیه میشود.
یک ویژگی کمتر شناختهشده نام مستعار مالک این است که عامل تحویل local(8) را نیز وادار میکند تا نشانیهای محلی و راه دور حاصل از گسترش نام مستعار را به جای تلاش برای تحویل بلافاصله پس از گسترش، در یک فایل صف جدید بنویسد.
نوشتن نشانیهای محلی حاصل از گسترش نام مستعار در یک فایل صف جدید، امکان مدیریت پایدار خطاهای موقت تحویل را فراهم میکند: خطا در تحویل به یک عضو محلی، هیچ اثری بر تحویل به سایر اعضای فهرست نخواهد داشت. از سوی دیگر، تحویل به نشانیهای محلی بلافاصله پس از گسترش نام مستعار شکننده است: یک خطای موقت در یک نشانی محلی از گسترش نام مستعار، باعث میشود کل نام مستعار بارها و بارها گسترش یابد تا زمانی که خطا برطرف شود، یا پیام در صف منقضی گردد. در آن حالت، بروز مشکل برای یکی از اعضای فهرست منجر به چندین بار تحویل پیام به سایر اعضای فهرست میشود.
رفتار پیشفرض Postfix نسخه 2.8 و بالاتر این است که هنگام تحویل نامه به یک نام مستعار فرزند بدون نام مستعار مالک، صفت owner-alias مربوط به نام مستعار والد حفظ شود. در این صورت، نشانیهای محلی آن نام مستعار فرزند در یک فایل صف جدید نوشته میشوند و خطای موقت در یک نشانی محلی، بر تحویل به سایر اعضای فهرست پستی اثری نخواهد داشت.
متأسفانه، نسخههای قدیمیتر Postfix هنگام تحویل نامه به یک نام مستعار فرزند که نام مستعار مالک اختصاصی ندارد، صفت owner-alias را بازنشانی میکنند. بهطور دقیقتر، این کار فقط تصمیم مربوط به ایجاد یک فایل صف جدید را بازنشانی میکند، نه تصمیم بازنویسی نشانی فرستنده پاکت را. سپس عامل تحویل local(8) تلاش میکند نشانیهای محلی را بلافاصله پس از خروج از گسترش نام مستعار فرزند تحویل دهد. اگر تحویل به هر نشانی از گسترش نام مستعار فرزند با وضعیت خطای موقت مواجه شود، ممکن است کل فهرست پستی مکرراً گسترش یابد تا زمانی که نامه در صف منقضی شود، که در نتیجه پیام یکسان چندین بار برای اعضای فهرست پستی تحویل داده میشود.
resolve_dequoted_address (default: yes)
تحلیل و تفکیک یک نشانی گیرنده بهصورت امن به جای درست، با بررسی داخل نقلقولها.
بهطور پیشفرض، تحلیلگر نشانی Postfix بخش محلی نشانی را طبق RFC 822 نقلقول نمیکند، بهطوری که عملگرهای اضافی @ یا % یا ! قابل مشاهده باقی بمانند. این رفتار امن است اما از نظر فنی نادرست است.
اگر «resolve_dequoted_address = no» را مشخص کنید، تحلیلگر Postfix از عملگرهای اضافی @ و غیره در بخش محلی نشانی مطلع نخواهد شد. این امر فرصتهایی را برای حملات مبهم رله ایمیل با نشانیهای user@domain@domain در زمانی که Postfix سرویس MX پشتیبان را برای سیستمهای Sendmail ارائه میدهد، ایجاد میکند.
resolve_null_domain (default: no)
تحلیل و تفکیک نشانیهایی که به دامنه پوچ «@» ختم میشوند بهگونهای که گویی نام میزبان محلی مشخص شده است، به جای رد کردن نشانی به عنوان نامعتبر.
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است. نسخههای پیشین همیشه دامنه پوچ را به عنوان نام میزبان محلی تحلیل میکردند.
سرور SMTP در Postfix از این قابلیت برای رد کردن نامههای ارسالی از یا به نشانیهایی که به دامنه پوچ «@» ختم میشوند، و از نشانیهایی که به شکلی بازنویسی میشوند که به دامنه پوچ «@» ختم شوند، استفاده میکند.
resolve_numeric_domain (default: no)
تحلیل و تفکیک «user@ipaddress» بهصورت «user@[ipaddress]»، به جای رد کردن نشانی به عنوان نامعتبر.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
respectful_logging (default: see 'postconf -d' output)
اجتناب از ثبت وقایعی که برتری رنگ سفید نسبت به سیاه را القا میکنند. در عوض استفاده از «allowlist»، «denylist» و اشکال مختلف این کلمات.
این قابلیت در Postfix نسخه 3.6 و بالاتر در دسترس است.
rewrite_service_name (default: rewrite)
نام سرویس بازنویسی نشانی. این سرویس نشانیها را به شکل استاندارد بازنویسی کرده و آنها را به یک سهتایی (روش تحویل، میزبان گام بعدی، گیرنده) تحلیل میکند.
این قابلیت در Postfix نسخه 2.0 و بالاتر در دسترس است.
sample_directory (default: /etc/postfix)
نام دایرکتوری حاوی فایلهای نمونه پیکربندی Postfix. از Postfix نسخه 2.1 به بعد، این فایلها با صفحه راهنمای postconf(5) جایگزین شدهاند.
send_cyrus_sasl_authzid (default: no)
هنگام احراز هویت در یک سرور SMTP یا LMTP راه دور با تنظیم پیشفرض «no»، هیچ شناسه مجوز SASL (یا authzid) ارسال نمیشود؛ تنها شناسه احراز هویت SASL (یا authcid) همراه با گذرواژه authcid ارسال میگردد.
تنظیم غیرپیشفرض «yes» رفتار نسخههای قدیمیتر Postfix را فعال میکند. آنها همیشه یک SASL authzid ارسال میکنند که با SASL authcid برابر است، اما این کار باعث بروز مشکلات سازگاری با برخی سرورهای SMTP میشود.
این قابلیت در Postfix نسخه 2.4.4 و بالاتر در دسترس است.
sender_based_routing (default: no)
از این پارامتر نباید استفاده شود. این پارامتر در Postfix نسخه 2.3 با sender_dependent_relayhost_maps جایگزین شد.
sender_bcc_maps (default: empty)
جدولهای جستجوی اختیاری نشانی رونوشت پنهان (BCC)، ایندکسشده بر اساس نشانی فرستنده پاکت. نشانی BCC (چندین نتیجه پشتیبانی نمیشود) هنگام ورود نامه از خارج Postfix اضافه میشود.
صفر یا چند جدول جستجوی «type:name» را مشخص کنید که با فاصله خالی یا کاما از هم جدا شدهاند. جدولها به ترتیب مشخصشده جستجو میشوند تا زمانی که یک تطابق پیدا شود.
ترتیب جستجوی جدول به شرح زیر است:
- جستجوی نشانی «user+extension@domain.tld» شامل پسوند نشانی اختیاری.
- جستجوی نشانی «user@domain.tld» بدون پسوند نشانی اختیاری.
- جستجوی بخش محلی نشانی «user+extension» زمانی که دامنه فرستنده برابر با $myorigin، $mydestination، $inet_interfaces یا $proxy_interfaces باشد.
- جستجوی بخش محلی نشانی «user» زمانی که دامنه فرستنده برابر با $myorigin، $mydestination، $inet_interfaces یا $proxy_interfaces باشد.
- جستجوی بخش
«@domain.tld».
نکته: در Postfix نسخه 2.3 و بالاتر، نشانی BCC بهگونهای اضافه میشود که گویی با NOTIFY=NONE مشخص شده است. تا زمانی که تمام نرمافزارهای پاییندستی RFC 3461 را پیادهسازی کرده باشند، در صورت تحویلناپذیر بودن نشانی BCC، به فرستنده اطلاع داده نخواهد شد.
نکته: در Postfix نسخه 2.2 و قبل از آن، در صورت تحویلناپذیر بودن نشانی BCC به فرستنده اطلاع داده خواهد شد.
نکته: گیرندگان BCC خودکار فقط برای نامههای جدید تولید میشوند. برای جلوگیری از ایجاد حلقههای ایمیل، گیرندگان BCC خودکار پس از فوروارد داخلی نامه توسط Postfix یا پس از ایجاد نامه توسط خود Postfix تولید نمیشوند.
نکته: گیرندگان BCC خودکار مشمول استانداردسازی نشانی (افزودن دامنه ناموجود)، canonical_maps، masquerade_domains و virtual_alias_maps هستند.
مثال:
sender_bcc_maps = lmdb:/etc/postfix/sender_bcc
به جای lmdb:، برخی سیستمها از cdb:، hash: یا dbm: استفاده میکنند.
پس از تغییر فایل sender_bcc، دستور «postmap /etc/postfix/sender_bcc» را اجرا کنید تا فایل ایندکسشده با نوع پیشفرض (باز)ساخته شود. برای تعیین صریح یک نوع، «postmap type:/etc/postfix/sender_bcc» را اجرا کنید.
نوع فایل ایندکسشده پیشفرض با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن نوعهای صریح موجود، دستور «postconf -m» را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه قابل مشاهده خواهند بود. برای حذف این تأخیر از «postfix reload» استفاده کنید.
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است.
sender_canonical_classes (default: envelope_sender, header_sender)
چه نشانیهایی مشمول نگاشت نشانی sender_canonical_maps هستند. بهطور پیشفرض، نگاشت نشانی sender_canonical_maps روی نشانیهای فرستنده پاکت، و نشانیهای فرستنده سرآیند اعمال میشود.
یک یا چند مورد از این مقادیر را مشخص کنید: envelope_sender، header_sender
این قابلیت در Postfix نسخه 2.2 و بالاتر در دسترس است.
sender_canonical_maps (default: empty)
جدولهای جستجوی اختیاری نگاشت آدرس برای آدرسهای فرستنده در پاکتنامه (envelope) و سرآیند. قالب جدول و سازوکار جستجوها در canonical(5) مستند شده است.
مثال: میخواهید آدرس فرستنده (SENDER) را از "user@ugly.example" به "user@pretty.example" بازنویسی کنید، در حالی که همچنان بتوان به آدرس گیرنده (RECIPIENT) "user@ugly.example" ایمیل ارسال کرد.
نکته: $sender_canonical_maps پیش از $canonical_maps پردازش میشود.
مثال:
sender_canonical_maps = lmdb:/etc/postfix/sender_canonical
به جای lmdb:، برخی سیستمها از cdb:، hash: یا dbm: استفاده میکنند.
پس از تغییر فایل sender_canonical، دستور "postmap /etc/postfix/sender_canonical" را برای ساخت (مجدد) فایل پایگاهداده ایندکسشده با نوع پیشفرض اجرا کنید. برای مشخص کردن صریح نوع، دستور "postmap type:/etc/postfix/sender_canonical" را اجرا نمایید.
نوع پیشفرض فایل ایندکسشده با پارامتر default_database_type پیکربندی میشود. جهت مشاهده فهرست انواع صریح موجود، دستور "postconf -m" را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه اعمال خواهند شد. برای برطرف کردن این تأخیر از "postfix reload" استفاده کنید.
sender_dependent_default_transport_maps (default: empty)
یک بازنویسی وابسته به فرستنده برای مقدار پارامتر سراسری default_transport. جستجوی جدولها بر اساس آدرس فرستنده در پاکتنامه و domain@ انجام میشود. نتیجه جستجوی DUNNO، بدون بازنویسی مقدار سراسری default_transport به جستجو پایان میدهد. این اطلاعات توسط جدول transport(5) باطل میشود.
این تنظیم تنها بر کلاس آدرس دامنه پیشفرض تأثیر میگذارد (دامنههای گیرندهای که با $mydestination، $inet_interfaces، $proxy_interfaces، $virtual_alias_domains، $virtual_mailbox_domains یا $relay_domains مطابقت ندارند):
- به ترتیب اولویت نزولی، ترابری تحویل برگرفته میشود از: ۱) $transport_maps، ۲) $sender_dependent_default_transport_maps یا $default_transport.
- به ترتیب
اولویت
نزولی،
مقصد گام
بعدی (nexthop)
برگرفته
میشود از:
۱) $transport_maps، ۲)
$sender_dependent_default_transport_maps یا
$default_transport، ۳) $sender_dependent_relayhost_maps
یا $relayhost یا
دامنه
گیرنده.
نکته: این تنظیم default_transport را بازنویسی میکند نه transport_maps؛ بنابراین ساختار نحوی مورد انتظار، ساختار default_transport است نه ساختار transport_maps. بهویژه، این ویژگی از نحو transport_maps برای transport تهی، nexthop تهی، یا آدرسهای ایمیل تهی پشتیبانی نمیکند.
صفر یا چند جدول جستجو را به صورت "type:name" که با فاصله یا کاما از یکدیگر جدا شدهاند تعیین کنید. جدولها به ترتیب مشخصشده تا زمان یافتن یک تطابق جستجو خواهند شد.
به دلایل امنیتی، این قابلیت اجازه جایگزینیهای $number را در نگاشتهای عبارات باقاعده نمیدهد.
این قابلیت در Postfix 2.7 و نسخههای بعد از آن در دسترس است.
sender_dependent_relayhost_maps (default: empty)
یک بازنویسی وابسته به فرستنده برای مقدار پارامتر سراسری relayhost. جدولها بر اساس آدرس فرستنده در پاکتنامه و domain@ جستجو میشوند. نتیجه جستجوی DUNNO بدون بازنویسی مقدار پارامتر سراسری relayhost، جستجو را متوقف میکند (Postfix 2.6 و بالاتر).
به ترتیب اولویت نزولی:
- برای دامنههای گیرنده در کلاس آدرس دامنههای بازپخش (دامنههای منطبق با $relay_domains)، مقصد nexthop برگرفته میشود از: ۱) $transport_maps، ۲) $relay_transport، ۳) $sender_dependent_relayhost_maps یا $relayhost یا دامنه گیرنده.
- برای
دامنههای
گیرنده در
کلاس آدرس
دامنههای
پیشفرض
(دامنههایی
که با mydestination،
$inet_interfaces، $proxy_interfaces،
$virtual_alias_domains، $virtual_mailbox_domains یا
$relay_domains مطابقت
ندارند)،
مقصد nexthop
برگرفته
میشود از:
۱) $transport_maps، ۲)
$sender_dependent_default_transport_maps یا
$default_transport، ۳) $sender_dependent_relayhost_maps
یا $relayhost یا
دامنه
گیرنده.
صفر یا چند جدول جستجو را به صورت "type:name" که با فاصله یا کاما جدا شدهاند، مشخص کنید. جدولها به ترتیب تعیینشده تا یافتن تطابق جستجو خواهند شد.
به دلایل امنیتی، این قابلیت اجازه جایگزینیهای $number را در نگاشتهای عبارات باقاعده نمیدهد.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
sendmail_fix_line_endings (default: always)
نحوه تبدیل انتهای خطوط پیامهای ایمیل از <CR><LF> به قالب یونیکس (<LF>) را توسط دستور sendmail در Postfix کنترل میکند.
- always
- همیشه خطوط
پیامی را که
با <CR><LF>
پایان
مییابند
تبدیل کن.
این گزینه
در Postfix 2.9 و
نسخههای
پس از آن
پیشفرض
است.
- strict
- تنها زمانی
خطوط پیام
با انتهای
<CR><LF> را
تبدیل کن که
نخستین خط
ورودی به
<CR><LF> ختم شده
باشد. این
مقدار
سازگار با
نسخههای Postfix
2.8 و پیش از آن
است.
- never
- هرگز خطوط
پیامی را که
با <CR><LF>
خاتمه
مییابند
تبدیل نکن.
این تنظیم
صرفاً برای
کامل بودن
گزینهها
تعبیه شده
است.
این قابلیت در Postfix 2.9 و بالاتر موجود است.
sendmail_path (default: see postconf -d output)
یک قابلیت سازگاری با Sendmail که مسیر اجرای دستور sendmail(1) مربوط به Postfix را مشخص میکند. این دستور میتواند برای تزریق ایمیل به صف Postfix به کار رود.
service_name (read-only)
نام سرویس در master.cf برای یک فرایند دیمن Postfix. این مقدار میتواند برای متمایز ساختن لاگهای سرویسهای مختلف که از یک نام برنامه مشترک استفاده میکنند به کار رود.
نمونه ورودیهای master.cf:
# Distinguish inbound MTA logging from submission and submissions logging.
smtp inet n - n - - smtpd
submission inet n - n - - smtpd
-o syslog_name=postfix/$service_name
submissions inet n - n - - smtpd
-o syslog_name=postfix/$service_name
# Distinguish outbound MTA logging from inbound relay logging.
smtp unix - - n - - smtp
relay unix - - n - - smtp
-o syslog_name=postfix/$service_name
این قابلیت در Postfix 3.3 و بالاتر موجود است.
service_throttle_time (default: 60s)
مدت زمانی که master(8) در Postfix قبل از راهاندازی دوباره (fork) کارگزاری که دچار اختلال عملکرد شده است، درنگ میکند.
یک مقدار زمانی غیر صفر تعیین کنید (یک عدد صحیح به همراه یک پسوند تکحرفی اختیاری برای مشخص ساختن واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمان پیشفرض s (ثانیه) است.
setgid_group (default: postdrop)
مالکیت گروهی برای دستورهای set-gid در Postfix و دایرکتوریهای قابل نوشتن توسط گروه در Postfix. با تغییر مقدار این پارامتر، اجرای مجدد "postfix set-permissions" الزامی است (در نسخه Postfix 2.0 و پیشتر: "/etc/postfix/post-install set-permissions").
shlib_directory (default: see 'postconf -d' output)
محل قرارگیری کتابخانههای پیوندیافته پویا در Postfix (شامل libpostfix-*.so)، و مکان پیشفرض پلاگینهای دیتابیس Postfix (شامل postfix-*.so) که دارای مسیر نسبی در فایل dynamicmaps.cf هستند. مقدار shlib_directory در صورتی که کتابخانههای پویا و پلاگینهای دیتابیس در زمان کامپایل غیرفعال شده باشند به صورت پیشفرض "no" است؛ در غیر این صورت معمولاً به صورت پیشفرض /usr/lib/postfix یا /usr/local/lib/postfix تنظیم میشود.
نکات:
- دایرکتوری تعیینشده با shlib_directory تنها باید شامل فایلهای مرتبط با Postfix باشد. کتابخانههای پویا و پلاگینهای دیتابیس Postfix نباید در دایرکتوریهای عمومی سیستم مانند /usr/lib یا /usr/local/lib نصب شوند. پیوند دادن فایلهای کتابخانه پویا یا افزایههای دیتابیس به برنامههای غیر از Postfix پشتیبانی نمیشود. این کتابخانهها یک رابط برنامهنویسی (API) درونسازمانی Postfix را پیاده میکنند که بدون حفظ سازگاری تغییر مییابد.
- تغییر
مقدار shlib_directory پس
از بیلد Postfix
امکانپذیر
است. با این
حال، ممکن
است برای
جلوگیری از
خطای
برنامههای
Postfix به دلیل
نیافتن
فایلهای
libpostfix-*.so، نیاز به
اجرای ldconfig یا
دستورات
معادل باشد.
در صورت
نگهداری
فایلهای
libpostfix-*.so در مکان
پیشفرض
کامپایلشده
$shlib_directory، نیازی
به دستور ldconfig
نخواهد بود.
این قابلیت در Postfix 3.0 و بالاتر موجود است.
show_user_unknown_table_name (default: yes)
نمایش نام جدول گیرندگان در پاسخهای "User unknown". این جزئیات مازاد، عیبیابی را سادهتر میکند ولی اطلاعاتی را فاش میسازد که دیگران نباید به آن دسترسی داشته باشند.
این قابلیت در Postfix 2.0 و بالاتر موجود است.
showq_service_name (default: showq)
نام سرویس showq(8). این سرویس گزارشهای وضعیت صف ایمیل را تولید میکند.
این قابلیت در Postfix 2.0 و بالاتر موجود است.
smtp_address_preference (default: any)
نوع آدرسی ("ipv6" ،"ipv4" یا "any") که کلاینت SMTP در Postfix هنگام مواجهه با مقصدی با آدرسهای IPv6 و IPv4 با اولویت رکورد MX برابر، نخست امتحان خواهد کرد. این ویژگی تا زمانی که inet_protocols هر دو پروتکل IPv4 و IPv6 را فعال نکرده باشد، هیچ اثری ندارد.
ترجیح نوع آدرس کلاینت SMTP در Postfix دستخوش دگرگونی شده است. در Postfix 2.8 مقدار پیشفرض "ipv6" است؛ در پیادهسازیهای پیشین ترجیح IPv6 نسبت به IPv4 به صورت سراسری کدنویسی شده بود.
نکات مربوط به تحویل ایمیل میان پایگاههایی که به هر دو پروتکل IPv4 و IPv6 متصل هستند:
- تنظیم "smtp_address_preference = ipv6" ناامن است. در صورت بروز اختلال در بستر IPv6، تمامی ارسالها دچار وقفه خواهند شد، حتی اگر مقصد از طریق IPv4 قابل دسترسی باشد. در نسخههای کمتر از 3.3 پستفیکس که پارامتر "smtp_balance_inet_protocols" در آنها پیاده نشده است، ممکن است ایمیلها در صف تحویل متوقف شوند. به دلایلی یکسان، تنظیم "smtp_address_preference = ipv4" نیز ناامن قلمداد میشود.
- تنظیم "smtp_address_preference = any" امن است. با این تنظیم، در کنار "smtp_balance_inet_protocols = yes" (پیشفرض)، در صورت رخداد قطعی برای تنها یکی از پروتکلهای IPv6 یا IPv4، فقط نیمی از مراسلات دچار وقفه میشوند.
- تنظیم "smtp_address_preference =
ipv4" راهحل
مناسبی
برای
سرورهای
مقصدی که
ایمیلهای
دریافتی از
روی IPv6 را به
عنوان اسپم
تلقی
میکنند (به
دلیل وجود
مشکل یا نقص
در
رکوردهای PTR
یا AAAA،
همسایگی
نامناسب در
شبکه و
غیره) نیست.
در عوض، Postfix را
طوری تنظیم
کنید که
دریافت
ایمیل از
طریق هر دو
بستر IPv4 و IPv6
صورت
پذیرفته و
ارسال
ایمیل
منحصراً
روی IPv4 انجام
شود.
/etc/postfix/main.cf: inet_protocols = all
/etc/postfix/master.cf smtp ...other fields... smtp -o inet_protocols=ipv4
این قابلیت در Postfix 2.8 و بالاتر در دسترس است.
smtp_address_verify_target (default: rcpt)
در مبحث راستیآزمایی آدرس ایمیل، مرحلهای از پروتکل SMTP است که تحویلپذیر بودن یک آدرس ایمیل را معین میکند. یکی از مقادیر "rcpt" یا "data" را درج کنید. مقدار دوم برای سرورهای SMTP بیرونی که پس از فرمان DATA گیرندگان را رد میکنند، ضرورت دارد. برای اعمال گزینشی این قابلیت از transport_maps بهره بگیرید:
/etc/postfix/main.cf:
transport_maps = lmdb:/etc/postfix/transport
/etc/postfix/transport:
smtp-domain-that-verifies-after-data smtp-data-target:
lmtp-domain-that-verifies-after-data lmtp-data-target:
/etc/postfix/master.cf:
smtp-data-target unix - - n - - smtp
-o smtp_address_verify_target=data
lmtp-data-target unix - - n - - lmtp
-o lmtp_address_verify_target=data
به جای lmdb:، برخی سیستمها از cdb:، hash: یا dbm: استفاده میکنند.
بهکارگیری غیرگزینشی مقصد "data" آسیبی وارد نمیکند، اما منجر به ثبت وقایع زائد "lost connection after DATA" در سرورهای خارجی SMTP/LMTP خواهد شد.
پس از ویرایش فایل transport، دستور "postmap /etc/postfix/transport" را جهت ایجاد مجدد فایل دیتابیس نوع پیشفرض اجرا کنید. برای تعیین نوع مشخص، از "postmap type:/etc/postfix/transport" استفاده نمایید.
نوع فایل ایندکسشده پیشفرض به وسیله پارامتر default_database_type پیکربندی میشود. برای فهرست کردن انواع موجود، دستور "postconf -m" را اجرا کنید.
تغییرات پیکربندی ظرف یک دقیقه اعمال میگردند. اجرای "postfix reload" این وقفه را از بین میبرد.
این قابلیت در Postfix 3.0 و نسخههای بالاتر پیادهسازی شده است.
smtp_always_send_ehlo (default: yes)
ارسال همیشگی عبارت EHLO در ابتدای هر نشست SMTP.
با تنظیم "smtp_always_send_ehlo = no"، کلاینت SMTP در Postfix تنها زمانی EHLO را میفرستد که عبارت "ESMTP" در پیام آغازین (banner) سرور قید شده باشد (برای نمونه: 220 spike.porcupine.org ESMTP Postfix).
smtp_balance_inet_protocols (default: yes)
هنگامی که یک مقصد خارجی به ترکیبی از نشانیهای IPv4 و IPv6 حلوفصل میشود، این پارامتر تضمین میکند که کلاینت SMTP در Postfix قادر است هر دو نوع پروتکل را پیش از رسیدن به محدودیت smtp_mx_address_limit بیازماید.
این سازوکار از معضل ناسازگاری زمانی پیشگیری میکند که مقصد عمدتاً به آدرسهای IPv6 حل شود، قابلیت smtp_address_limit اغلب یا کل آدرسهای IPv4 را حذف نماید، و همزمان مقصد مورد نظر از بستر IPv6 غیرقابل دسترس باشد.
این قابلیت در Postfix 3.3 و بالاتر ارائه شده است.
smtp_bind_address (default: empty)
یک آدرس شبکه عددی اختیاری که کلاینت SMTP در Postfix هنگام برقراری اتصال تحت پروتکل IPv4 موظف به اتصال (bind) به آن است.
این پارامتر میتواند درون فایل main.cf برای تمام کلاینتهای SMTP یا داخل فایل master.cf برای کلاینتی معین تعریف شود، مانند:
/etc/postfix/master.cf:
smtp ... smtp -o smtp_bind_address=11.22.33.44
برای آگاهی از نحوه مواجهه Postfix با خطاها، به smtp_bind_address_enforce رجوع کنید (Postfix 3.7 و بالاتر).
نکته ۱: اگر در inet_interfaces بیش از یک آدرس IPv4 تعریف نشده باشد و آن نشانی از نوع غیر لوپبک باشد، به طور خودکار به عنوان smtp_bind_address گزینش میشود. این رویکرد از میزبانی IP مجازی پشتیبانی میکند، ولی روی فایروالهای دارای چند اینترفیس (multi-homed) چالشبرانگیز خواهد بود. به مستندات inet_interfaces مراجعه کنید.
نکته ۲: میتوان اطلاعات نشانی را درون [] درج کرد، ولی در این بخش الزامی به استفاده از این قالب نیست.
smtp_bind_address6 (default: empty)
نشانی شبکه عددی اختیاری که کلاینت SMTP در Postfix هنگام برقراری اتصال IPv6 باید به آن متصل (bind) شود.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
این مقدار میتواند در فایل main.cf برای همه کلاینتهای SMTP یا در فایل master.cf برای یک کلاینت خاص مشخص شود، به عنوان مثال:
/etc/postfix/master.cf:
smtp ... smtp -o smtp_bind_address6=1:2:3:4:5:6:7:8
برای نحوه مدیریت خطاها توسط Postfix، smtp_bind_address_enforce را ببینید (Postfix نسخه 3.7 و بالاتر).
نکته ۱: هنگامی که inet_interfaces حداکثر یک نشانی IPv6 مشخص کند و آن نشانی، یک نشانی غیرلوپبک (non-loopback) باشد، بهطور خودکار به عنوان smtp_bind_address6 استفاده میشود. این قابلیت از میزبانی IP مجازی پشتیبانی میکند، اما میتواند در فایروالهای چنداتصالی (multi-homed) مشکلساز شود. برای جزئیات بیشتر به مستندات inet_interfaces مراجعه کنید.
نکته ۲: اطلاعات نشانی ممکن است درون [] قرار گیرد، اما این قالب در اینجا توصیه نمیشود.
smtp_bind_address_enforce (default: no)
به تعویق انداختن تحویل هنگامی که کلاینت SMTP در Postfix نمیتواند تنظیم smtp_bind_address یا smtp_bind_address6 را اعمال کند. بهطور پیشفرض، کلاینت SMTP در Postfix پس از ثبت یک هشدار در لاگ به تحویل ادامه میدهد.
این ویژگی در Postfix نسخه 3.7 و بالاتر در دسترس است.
smtp_body_checks (default: empty)
جدولهای محدود شده body_checks(5) برای کلاینت SMTP در Postfix. این جدولها در حین تحویل ایمیل جستجو میشوند. اقداماتی که زمان تحویل یا مقصد را تغییر میدهند در دسترس نیستند.
این ویژگی در Postfix نسخه 2.5 و بالاتر در دسترس است.
smtp_cname_overrides_servername (default: version dependent)
هنگامی که servername دوردست SMTP یک رکورد CNAME در DNS است، جهت مقاصد لاگگیری، جستجوی گذرواژه SASL، تصمیمگیریهای خطمشی TLS، یا اعتبارسنجی گواهی TLS، نام سرور را با نتیجه حاصل از بسط CNAME جایگزین میکند. مقدار "no" خطمشیهای مبتنی بر نام میزبان smtp_tls_per_site در Postfix را در برابر اطلاعات نادرست نام میزبان در رکوردهای CNAME در DNS مقاوم میسازد و جستجوهای فایل گذرواژه SASL را قابل پیشبینیتر میکند. این تنظیم از Postfix نسخه 2.3 به عنوان مقدار پیشفرض تعیین شده است.
این ویژگی در Postfix نسخه 2.2.9 و بالاتر در دسترس است، و از Postfix نسخه 3.11 منسوخ شده است.
smtp_connect_timeout (default: 30s)
محدودیت زمانی کلاینت SMTP در Postfix برای تکمیل یک اتصال TCP، یا صفر (استفاده از محدودیت زمانی پیشساخته سیستمعامل).
هنگامی که هیچ اتصالی در این مهلت برقرار نشود، کلاینت SMTP در Postfix نشانی بعدی را در فهرست مبادلهکنندههای ایمیل (mail exchanger) امتحان میکند. برای غیرفعال کردن محدودیت زمانی، مقدار 0 را مشخص کنید (یعنی استفاده از هر وقفهای که توسط سیستمعامل پیادهسازی شده است).
یک مقدار زمانی غیرمنفی مشخص کنید (یک مقدار عدد صحیح به همراه یک پسوند اختیاری تکحرفی که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
smtp_connection_cache_destinations (default: empty)
فعالسازی دائمی حافظه موقت اتصال SMTP برای مقصدهای مشخص شده. با حافظه موقت اتصال SMTP، اتصال بلافاصله پس از تکمیل یک تراکنش ایمیل بسته نمیشود. در عوض، اتصال تا حداکثر $smtp_connection_cache_time_limit ثانیه باز نگه داشته میشود. این امکان استفاده مجدد از اتصالات را برای تحویلهای دیگر فراهم کرده و میتواند عملکرد تحویل ایمیل را بهبود بخشد.
فهرستی از مقصدها یا شبهمقصدها را که با کاما یا نویسه فاصله از هم جدا شدهاند مشخص کنید:
- اگر ایمیل بدون میزبان رله (relay host) ارسال میشود: یک نام دامنه (سمت راست نشانی ایمیل، بدون [] در اطراف نشانی IP عددی)،
- اگر ایمیل از طریق میزبان رله ارسال میشود: نام میزبان رله (بدون [] یا پورت غیرپیشفرض TCP)، همانطور که در main.cf یا در transport map مشخص شده است،
- اگر ایمیل از طریق سوکت دامنه یونیکس (UNIX-domain socket) ارسال میشود: یک مسیر (بدون پیشوند unix:)،
- یک /file/name حاوی نامهای دامنه و/یا نامهای میزبان رله همانطور که در بالا تعریف شد،
- یک "type:table" با
نامهای
دامنه و/یا
نامهای
میزبان رله
در سمت چپ.
نتیجه
جستجوهای
سمت راست در
"type:table" نادیده
گرفته
میشود.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtp_connection_cache_on_demand (default: yes)
فعالسازی موقت حافظه موقت اتصال SMTP زمانی که یک مقصد دارای حجم بالایی از ایمیل در صف فعال (active queue) است. با حافظه موقت اتصال SMTP، یک اتصال بلافاصله پس از تکمیل یک تراکنش ایمیل بسته نمیشود. در عوض، اتصال تا حداکثر $smtp_connection_cache_time_limit ثانیه باز نگه داشته میشود. این امکان استفاده مجدد از اتصالات را برای تحویلهای دیگر فراهم میکند و میتواند عملکرد تحویل ایمیل را بهبود بخشد.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtp_connection_cache_time_limit (default: 2s)
هنگامی که حافظه موقت اتصال SMTP فعال است، مدت زمانی که یک سوکت بدون استفاده کلاینت SMTP پیش از بسته شدن باز نگه داشته میشود. مقادیر بزرگتر را بدون اجازه از سایتهای دوردست مشخص نکنید.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtp_connection_reuse_count_limit (default: 0)
هنگامی که حافظه موقت اتصال SMTP فعال است، تعداد دفعاتی که یک نشست SMTP میتواند پیش از بسته شدن مجدداً استفاده شود، یا صفر (بدون محدودیت). با محدودیت تعداد استفاده مجدد N، یک اتصال حداکثر N+1 بار استفاده میشود.
توجه: این ویژگی ناامن است. هنگامی که یک مقصد پرحجم دارای چندین MTA ورودی باشد، کندترین MTA ورودی بیشترین اتصالات را به آن مقصد جذب خواهد کرد. این محدودیت با ویژگی smtp_connection_reuse_time_limit وجود ندارد.
این ویژگی در Postfix نسخه 2.11 در دسترس است.
smtp_connection_reuse_time_limit (default: 300s)
مدت زمانی که طی آن Postfix از یک اتصال SMTP به طور مکرر استفاده خواهد کرد. تایمر زمانی شروع میشود که اتصال برقرار شود (یعنی شامل تاخیرهای connect، greeting و helo، علاوه بر تاخیرهای تراکنشهای تحویل ایمیل بعدی است).
این ویژگی مشکل پایداری عملکرد را در سرورهای دوردست SMTP برطرف میکند. این مشکل مختص Postfix نیست: میتواند زمانی رخ دهد که هر MTA مقادیر زیادی ایمیل SMTP را به سایتی ارسال کند که دارای چندین میزبان MX است.
مشکل زمانی شروع میشود که یکی از اعضای مجموعهای از میزبانهای MX از بقیه کندتر شود. حتی اگر کلاینتهای SMTP با احتمال برابر به میزبانهای سریع و کند MX متصل شوند، میزبان کند MX با اتصالات ورودی همزمان بیشتری نسبت به میزبانهای سریعتر MX مواجه میشود، زیرا میزبان کند MX برای رسیدگی به هر درخواست کلاینت به زمان بیشتری نیاز دارد.
میزبان کند MX تبدیل به یک جاذب اتصال میشود. اگر یک میزبان MX به میزان N برابر کندتر از بقیه شود، بر تاخیر تحویل ایمیل مسلط میشود مگر اینکه بیش از N میزبان سریع MX برای مقابله با این اثر وجود داشته باشد. و اگر تعداد میزبانهای MX کمتر از N باشد، تاخیر تحویل ایمیل عملاً به تاخیر کندترین میزبان MX تقسیم بر تعداد کل میزبانهای MX تبدیل میشود.
راهکار، استفاده از حافظه موقت اتصال به روشی متفاوت از Postfix نسخه 2.2 است. با محدود کردن مدت زمانی که طی آن یک اتصال میتواند به طور مکرر استفاده شود (به جای محدود کردن تعداد تحویلها روی آن اتصال)، Postfix نه تنها انصاف را در توزیع اتصالات همزمان در میان مجموعهای از میزبانهای MX بازیابی میکند، بلکه تحویلها را روی اتصالاتی که عملکرد خوبی دارند ترجیح میدهد، که دقیقاً همان هدف مورد نظر است.
حد پیشفرض زمان استفاده مجدد، 300s، قابل مقایسه با وقفههای زمانی مختلف تراکنش smtp است که برآوردهای منصفانهای از حداکثر تاخیر اضافی برای یک تحویل کند هستند. توجه داشته باشید که میزبانها ممکن است هزاران پیام را از طریق یک اتصال منفرد در طول حد پیشفرض زمان استفاده مجدد اتصال بپذیرند. این تعداد بسیار بیشتر از حد پیشفرض Postfix نسخه 2.2 یعنی 10 پیام به ازای هر اتصال ذخیره شده در حافظه موقت است. ممکن است کاهش این حد برای جلوگیری از مشکلات تعاملپذیری با MTAهایی که هنگام تحویل پیامهای زیاد از طریق یک اتصال منفرد دچار باگ میشوند، ضروری باشد. محدودیت کمتر برای زمان استفاده مجدد این خطر را به همراه دارد که در صورت فراتر رفتن میانگین تاخیر اتصال و تحویل ایمیل از حد زمان استفاده مجدد، مزیت استفاده مجدد از اتصال از دست برود.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
smtp_data_done_timeout (default: 600s)
محدودیت زمانی کلاینت SMTP در Postfix برای ارسال "." در SMTP و دریافت پاسخ سرور دوردست SMTP.
هنگامی که هیچ پاسخی در مهلت مقرر دریافت نشود، هشداری در لاگ ثبت میشود مبنی بر اینکه ایمیل ممکن است چندین بار تحویل داده شود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
smtp_data_init_timeout (default: 120s)
محدودیت زمانی کلاینت SMTP در Postfix برای ارسال دستور DATA در SMTP و دریافت پاسخ سرور دوردست SMTP.
واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
smtp_data_xfer_timeout (default: 180s)
محدودیت زمانی کلاینت SMTP در Postfix برای ارسال محتوای پیام SMTP. هنگامی که اتصال برای بیش از $smtp_data_xfer_timeout ثانیه هیچ پیشرفتی نداشته باشد، کلاینت SMTP در Postfix انتقال را خاتمه میدهد.
واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
smtp_defer_if_no_mx_address_found (default: no)
به تعویق انداختن تحویل ایمیل هنگامی که هیچ رکورد MX به یک نشانی IP تفکیک نشود.
حالت پیشفرض (no) بازگرداندن ایمیل به عنوان غیرقابل تحویل است. در نسخههای قدیمیتر Postfix، رفتار پیشفرض این بود که تلاش برای تحویل ایمیل ادامه یابد تا زمانی که شخصی رکورد MX را اصلاح کند یا زمان انقضای ایمیل فرا برسد.
نکته: کلاینت SMTP در Postfix همیشه رکوردهای MX با اولویت برابر یا بدتر از خود MTA محلی را نادیده میگیرد.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtp_delivery_status_filter (default: $default_delivery_status_filter)
فیلتر اختیاری برای عامل تحویل smtp(8) جهت تغییر کد وضعیت تحویل یا متن توضیحی تحویلهای موفق یا ناموفق. برای جزئیات default_delivery_status_filter را ببینید.
توجه: این ویژگی پیامهای خطای یا غیرخطای کلاینت SMTP در Postfix را که ممکن است از پاسخهای سرور دوردست SMTP مشتق شده باشند یا نباشند، تغییر میدهد. در مقابل، ویژگی smtp_reply_filter فقط پاسخهای سرور دوردست SMTP را تغییر میدهد.
smtp_destination_concurrency_limit (default: $default_destination_concurrency_limit)
حداکثر تعداد تحویلهای موازی به یک مقصد یکسان از طریق ترابری تحویل پیام smtp. این محدودیت توسط مدیر صف (queue manager) اعمال میشود. نام ترابری تحویل پیام، فیلد اول در مدخل فایل master.cf است.
smtp_destination_recipient_limit (default: $default_destination_recipient_limit)
حداکثر تعداد گیرندگان به ازای هر پیام برای ترابری تحویل پیام smtp. این محدودیت توسط مدیر صف (queue manager) اعمال میشود. نام ترابری تحویل پیام، فیلد اول در مدخل فایل master.cf است.
تنظیم این پارامتر روی مقدار 1، معنای smtp_destination_concurrency_limit را از همروندی به ازای هر دامنه به همروندی به ازای هر گیرنده تغییر میدهد.
smtp_discard_ehlo_keyword_address_maps (default: empty)
جدولهای جستجو، ایندکسشده با نشانی سرور دوردست SMTP، شامل فهرستهای غیرحساس به حروف کوچک و بزرگ از کلیدواژههای EHLO (مانند pipelining، starttls، auth و غیره) که کلاینت SMTP در Postfix در پاسخ EHLO از یک سرور دوردست SMTP آنها را نادیده میگیرد. برای جزئیات به smtp_discard_ehlo_keywords مراجعه کنید. این جدول جهت سازگاری با smtpd_discard_ehlo_keyword_address_maps بر اساس نام میزبان ایندکس نشده است.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با نویسه فاصله یا کاما از هم جدا شدهاند. جدولها به ترتیب مشخص شده جستجو میشوند تا زمانی که یک تطابق پیدا شود.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtp_discard_ehlo_keywords (default: empty)
یک فهرست غیرحساس به حروف کوچک و بزرگ از کلیدواژههای EHLO (مانند pipelining، starttls، auth و غیره) که کلاینت SMTP در Postfix در پاسخ EHLO از یک سرور دوردست SMTP نادیده خواهد گرفت.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
نکات:
- کلیدواژه ساختگی silent-discard را برای جلوگیری از ثبت این اقدام در لاگ مشخص کنید.
- از ویژگی
smtp_discard_ehlo_keyword_address_maps برای
نادیده
گرفتن
انتخابی
کلیدواژههای
EHLO استفاده
کنید.
smtp_dns_reply_filter (default: empty)
فیلتر اختیاری برای نتایج جستجوی DNS کلاینت SMTP در Postfix. صفر یا چند جدول جستجو مشخص کنید. جدولهای جستجو به ترتیب داده شده برای یافتن تطابق با نتیجه جستجوی DNS که به شکل زیر تبدیل شده است، جستجو میشوند:
name ttl class type preference value
فیلد class همیشه "IN" است، فیلد preference تنها برای رکوردهای MX وجود دارد، نامهای میزبانها، دامنهها و غیره به "." ختم میشوند، و آن نامها در قالب ASCII هستند (قالب xn--mumble در مورد نامهای UTF8).
هنگامی که یک تطابق یافت شود، نتیجه جستجوی جدول یک اقدام (action) را مشخص میکند. بهطور پیشفرض، پرسمان جدول و نام اقدام به حروف کوچک و بزرگ حساس نیستند. در حال حاضر، تنها اقدام IGNORE پیادهسازی شده است.
نکات:
- فیلترهای پاسخ DNS در Postfix هیچ تاثیری بر جستجوهای ضمنی DNS از طریق nsswitch.conf یا سازوکارهای معادل آن ندارند.
- کلاینت SMTP/LMTP در Postfix از smtp_dns_reply_filter و lmtp_dns_reply_filter تنها برای یافتن یک سرویس دوردست SMTP یا LMTP (انواع رکوردهای MX، A، AAAA، و TLSA) استفاده میکند. این جستجوها همچنین برای پیادهسازی ویژگیهای reject_unverified_sender و reject_unverified_recipient انجام میشوند.
- کلاینت SMTP/LMTP در Postfix تحویل ایمیل را زمانی که یک فیلتر همه نتایج جستجو را از یک پرسمان موفقیتآمیز حذف میکند، به تعویق میاندازد.
- سرور SMTP در Postfix از smtpd_dns_reply_filter تنها برای جستجوی رکوردهای MX، A، AAAA، و TXT به منظور پیادهسازی ویژگیهای reject_unknown_helo_hostname، reject_unknown_sender_domain، reject_unknown_recipient_domain، reject_rbl_*، و reject_rhsbl_* استفاده میکند.
- سرور SMTP در Postfix
زمانی که یک
فیلتر همه
نتایج
جستجو را از
یک پرسمان
موفقیتآمیز
حذف کند، یک
هشدار در
لاگ ثبت
میکند یا
تحویل
ایمیل را به
تعویق
میاندازد.
مثال: نادیده گرفتن رکوردهای AAAA مربوط به Google در جستجوهای DNS کلاینت SMTP در Postfix، زیرا Google گاهی اوقات ایمیلهای کلاینتهای IPv6 با رکوردهای معتبر PTR و غیره را به طور قطعی رد (hard-reject) میکند.
/etc/postfix/main.cf:
smtp_dns_reply_filter = pcre:/etc/postfix/smtp_dns_reply_filter
/etc/postfix/smtp_dns_reply_filter:
# /domain ttl IN AAAA address/ action, all case-insensitive.
# Note: the domain name ends in ".".
/^\S+\.google\.com\.\s+\S+\s+\S+\s+AAAA\s+/ IGNORE
این ویژگی در Postfix نسخه 3.0 و بالاتر در دسترس است.
smtp_dns_resolver_options (default: empty)
گزینههای تحلیلگر DNS برای کلاینت SMTP در Postfix. صفر یا چند مورد از گزینههای زیر را که با کاما یا نویسه فاصله از هم جدا شدهاند، مشخص کنید. نام گزینهها به حروف کوچک و بزرگ حساس است. برخی گزینهها به نامهای دامنهای اشاره دارند که در فایل /etc/resolv.conf یا معادل آن مشخص شدهاند.
- res_defnames
- الحاق نام
دامنه فعلی
به نامهای
تکبخشی
(نامهایی
که فاقد
نویسه "."
هستند). این
مورد
میتواند
نتایج
نادرست
ایجاد کند،
و رفتار
پیشفرض
پیش از Postfix
نسخه 2.8 بوده
است.
- res_dnsrch
- جستجوی
نامهای
میزبان در
دامنه فعلی
و در
دامنههای
والد. این
کار
میتواند
نتایج
نادرست
تولید کند و
بنابراین
توصیه
نمیشود.
این ویژگی در Postfix نسخه 2.8 و بالاتر در دسترس است.
smtp_dns_support_level (default: empty)
سطح پشتیبانی DNS در کلاینت SMTP در Postfix. با رها کردن "smtp_dns_support_level" در مقدار پیشفرض خالی خود، پارامتر قدیمی "disable_dns_lookups" فعال بودن DNS را در کلاینت SMTP در Postfix کنترل میکند، در غیر این صورت پارامتر قدیمی نادیده گرفته میشود.
یکی از موارد زیر را مشخص کنید:
- disabled
- جستجوهای DNS
را غیرفعال
میکند. هیچ
جستجوی
رکورد MX
انجام
نمیشود و
تفکیک نام
میزبان به
آدرس بدون
قید و شرط
«native» است. این
تنظیم برای
میزبانهایی
که ایمیل را
به اینترنت
عمومی
تحویل
میدهند
مناسب نیست.
برخی اسناد
راهنمای
قدیمی،
غیرفعال
کردن
جستجوهای DNS
را در برخی
پیکربندیهای
دارای content_filters
توصیه
میکنند.
این کار
دیگر
الزامی
نیست و
اکیداً
توصیه
میشود از
آن خودداری
شود.
- enabled
- جستجوهای DNS
را فعال
میکند.
دامنههای
مقصد nexthop که
درون «[]»
محصور
نشدهاند،
مشمول
جستجوی MX
خواهند بود.
اگر «dns» و
«native» در
مقدار
پارامتر
«smtp_host_lookup»
گنجانده
شده باشند،
ابتدا برای
تفکیک
رکوردهای A
میزبان MX از DNS
پرسوجو
میشود، و
در صورتی که
پاسخی در DNS
یافت نشود،
جستجوهای
«native» دنبال
خواهند شد.
- dnssec
- جستجوهای DNSSEC را فعال میکند. تنظیم «dnssec» با تنظیم «enabled» در بالا در موارد زیر تفاوت دارد:
- هرگونه جستجوی MX پرچمهای RES_USE_DNSSEC و RES_USE_EDNS0 را برای درخواست پاسخهای اعتبارسنجیشده با DNSSEC تنظیم میکند. اگر پاسخ MX با DNSSEC اعتبارسنجی شده باشد، نامهای میزبان متناظر معتبر تلقی میشوند.
- جستجوهای آدرس مربوط به نامهای میزبان اعتبارسنجیشده نیز اعتبارسنجی میشوند (البته به شرطی که «smtp_host_lookup» شامل «dns» باشد، در زیر ببینید).
- خطاهای
موقت در
تفکیک نام
میزبان به
آدرسِ
دارای DNSSEC،
هرگونه
جستجوی «native»
را مسدود
میکنند.
جستجوهای
«native» اضافی
تنها زمانی
رخ میدهند
که
جستجوهای DNSSEC
با شکست
قطعی (NODATA یا NXDOMAIN)
مواجه شوند.
کلاینت SMTP در Postfix مقصدهای غیر MX مانند «[nexthop]» و «[nexthop]:port» را معادل رکوردهای MX اعتبارسنجیشده ایستا به فرم «nexthop. IN MX 0 nexthop.» در نظر میگیرد. بنابراین، با فعال بودن پشتیبانی از «dnssec»، جستجوهای اعتبارسنجیشده نام میزبان به آدرس بر دامنه nexthop هر مقصد «[nexthop]» یا «[nexthop]:port» اعمال میشود. این مورد برای مقصدهای LMTP به فرم «inet:host» و «inet:host:port» نیز صدق میکند، زیرا نامهای میزبان LMTP هرگز مشمول جستجوی MX نیستند.
تنظیم «dnssec» تنها در صورتی توصیه میشود که قصد استفاده از سطح امنیت TLS با مقادیر dane یا dane-only را داشته باشید، در غیر این صورت فعالسازی پشتیبانی از DNSSEC در Postfix امنیت بیشتری ایجاد نمیکند. پشتیبانی DNSSEC در Postfix به یک کارگزار نام بازگشتی بالادستی متکی است که امضاهای DNSSEC را اعتبارسنجی میکند. چنین کارگزار DNSای همواره پاسخهای جعلی DNS را فیلتر میکند، حتی زمانی که خود Postfix برای استفاده از DNSSEC پیکربندی نشده باشد.
هنگام استفاده از پشتیبانی DANE در Postfix، پارامتر «smtp_host_lookup» باید شامل «dns» باشد، زیرا DANE برای میزبانهایی که از طریق جستجوهای «native» تفکیک میشوند قابل اعمال نیست.
همانطور که در بالا ذکر شد، Postfix یک stub resolver اعتبارسنج نیست؛ برای انجام تمام اعتبارسنجیهای DNSSEC به کارگزار نام بازگشتی اعتبارسنج DNSSEC پیکربندیشده در سیستم متکی است. از آنجا که به پاسخهای اعتبارسنجیشده با DNSSEC این کارگزار نام کاملاً اعتماد میشود، اکیداً توصیه میشود که میزبان MTA دارای یک کارگزار نام کشکننده بازگشتی اعتبارسنج DNSSEC محلی باشد که روی آدرس loopback گوش میدهد، و به گونهای پیکربندی شود که فقط از این کارگزار نام برای تمام جستجوها استفاده کند. در غیر این صورت، Postfix ممکن است در معرض حملات مرد میانی (man-in-the-middle) قرار گیرد که پاسخها را از کارگزار نام بازگشتی جعل میکنند.
پشتیبانی از DNSSEC نیازمند نسخهای از Postfix است که با یک کتابخانه نسبتاً مدرن resolver(3) در DNS کامپایل شده باشد که گزینههای RES_USE_DNSSEC و RES_USE_EDNS0 ریزالور را پیادهسازی میکند.
این ویژگی در Postfix نسخه 2.11 و بالاتر در دسترس است.
smtp_enforce_tls (default: no)
حالت الزام: الزام میکند که سرورهای SMTP راه دور از رمزنگاری TLS استفاده کنند و هرگز ایمیل به صورت متن آشکار (cleartext) ارسال نشود. این مورد همچنین مستلزم آن است که نام میزبان سرور SMTP راه دور با اطلاعات گواهی سرور راه دور مطابقت داشته باشد و گواهی سرور SMTP راه دور توسط یک مرجع صدور گواهی (CA) صادر شده باشد که مورد اعتماد کلاینت SMTP در Postfix است. اگر گواهی تأیید نشود یا نام میزبان مطابقت نداشته باشد، تحویل به تعویق میافتد (deferred) و ایمیل در صف باقی میماند.
نام میزبان سرور با تمام نامهای ارائهشده به عنوان dNSNames در SubjectAlternativeName مطابقت داده میشود. اگر هیچ dNSNames مشخص نشده باشد، CommonName بررسی میشود. این رفتار را میتوان با گزینه smtp_tls_enforce_peername تغییر داد.
این گزینه فقط در صورتی مفید است که کاملاً مطمئن باشید فقط به سرورهایی متصل میشوید که از RFC 2487 پشتیبانی میکنند و گواهیهای سرور معتبری ارائه میدهند. کاربرد معمول آن برای کلاینتهایی است که تمام ایمیلهای خود را به یک mailhub اختصاصی ارسال میکنند.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است. در Postfix نسخه 2.3 و بالاتر، به جای آن از smtp_tls_security_level استفاده کنید.
smtp_fallback_relay (default: $fallback_relay)
فهرست اختیاری از مقصدهای رله (relay) که در صورت پیدا نشدن مقصد SMTP، یا در صورت شکست تحویل به دلیل خطای غیردائمی، استفاده خواهند شد. در Postfix نسخه 2.2 و قبل از آن، این پارامتر fallback_relay نامیده میشد.
بهطور پیشفرض، smtp_fallback_relay خالی است، هنگامی که مقصدی یافت نشود ایمیل به فرستنده بازگردانده میشود، و پس از شکست به دلیل یک خطای غیردائمی، تحویل به تعویق میافتد.
در تحویل انبوه ایمیل، اجرای MTA رله پشتیبان روی همان میزبان میتواند سودمند باشد تا بتواند از آدرس IP فرستنده مجدداً استفاده کند. این کار تحویلهایی را که توسط سیستمهای اعتبارسنجی مبتنی بر IP (مانند greylist و غیره) به تأخیر افتادهاند، سرعت میبخشد.
رلههای پشتیبان باید مقصدهای SMTP باشند. یک domain، host، host:port، [host]:port، [address] یا [address]:port را مشخص کنید؛ فرم [host] جستجوهای MX را غیرفعال میکند. اگر چندین مقصد SMTP را مشخص کنید، Postfix آنها را به ترتیب مشخصشده امتحان خواهد کرد.
برای جلوگیری از ایجاد حلقه ایمیل بین میزبانهای MX و میزبانهای fallback، نسخه 2.2 و بالاتر Postfix از رلههای پشتیبان برای مقصدهایی که خود میزبان MX آنهاست استفاده نخواهد کرد (با فرض اینکه جستجوی DNS فعال باشد).
smtp_generic_maps (default: empty)
جدولهای اختیاری جستجو که بازنویسی آدرس را در کلاینت SMTP در Postfix انجام میدهند؛ معمولاً برای تبدیل یک آدرس معتبر محلی به یک آدرس معتبر سراسری هنگام ارسال ایمیل در بستر اینترنت به کار میروند. این قابلیت زمانی نیاز است که ماشین محلی دامنه اینترنتی متعلق به خود را ندارد، اما در عوض از مواردی مانند localdomain.local استفاده میکند.
صفر یا چند جدول جستجوی «type:name» را که با فاصله خالی یا کاما از هم جدا شدهاند مشخص کنید. جدولها به ترتیب مشخصشده جستجو میشوند تا زمانی که تطابقی پیدا شود.
قالب جدول و جستجوها در generic(5) مستند شده است؛ مثالها در اسناد ADDRESS_REWRITING_README و STANDARD_CONFIGURATION_README نشان داده شدهاند.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtp_header_checks (default: empty)
جدولهای محدود شده header_checks(5) برای کلاینت SMTP در Postfix. این جدولها در حین تحویل ایمیل جستجو میشوند. اقداماتی که زمان تحویل یا مقصد را تغییر میدهند در دسترس نیستند.
این ویژگی در Postfix نسخه 2.5 و بالاتر در دسترس است.
smtp_helo_name (default: $myhostname)
نام میزبانی که در دستور HELO یا EHLO در SMTP ارسال میشود.
مقدار پیشفرض، نام میزبان ماشین است. یک نام میزبان یا [ip.add.re.ss] را مشخص کنید.
این اطلاعات میتواند در فایل main.cf برای همه کلاینتهای SMTP مشخص شود، یا میتواند در فایل master.cf برای یک کلاینت خاص مشخص شود، به عنوان مثال:
/etc/postfix/master.cf:
mysmtp ... smtp -o smtp_helo_name=foo.bar.com
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
smtp_helo_timeout (default: 300s)
محدودیت زمانی کلاینت SMTP در Postfix برای ارسال دستور HELO یا EHLO، و دریافت پاسخ اولیه سرور SMTP راه دور.
یک مقدار زمانی غیر صفر را مشخص کنید (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
smtp_host_lookup (default: dns)
سازوکارهایی که کلاینت SMTP در Postfix برای جستجوی آدرس IP یک میزبان استفاده میکند. هنگامی که جستجوهای DNS غیرفعال باشند (ببینید: disable_dns_lookups و smtp_dns_support_level)، این پارامتر نادیده گرفته میشود. اگر هر دو فهرست شده باشند، سازوکار «dns» همیشه قبل از «native» امتحان میشود.
یکی از موارد زیر را مشخص کنید:
- dns
- میزبانها
در DNS پیدا
شوند (ترجیح
داده شده).
- native
- فقط از
سرویس
نامگذاری
محلی
استفاده
شود (nsswitch.conf یا
سازوکار
معادل).
- dns, native
- برای
میزبانهایی
که در DNS یافت
نمیشوند
از سرویس
محلی
استفاده
شود.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtp_line_length_limit (default: 998)
حداکثر طول خطوط سرایند و بدنه پیام که Postfix از طریق SMTP ارسال خواهد کرد. این محدودیت شامل <CR><LF> در انتهای هر خط نمیشود. خطوط طولانیتر با درج «<CR><LF><SPACE>» شکسته میشوند تا آسیب به ایمیلهای دارای قالببندی MIME به حداقل برسد. برای غیرفعال کردن این محدودیت، صفر را مشخص کنید.
محدودیت ۹۹۸ نویسهای Postfix بدون احتساب <CR><LF>، با محدودیت ۱۰۰۰ نویسهای SMTP با احتساب <CR><LF> مطابقت دارد. محدودیت Postfix در نسخه 2.8 و نسخههای پیش از آن ۹۹۰ نویسه بود.
smtp_log_tls_feature_status (default: yes)
فعال کردن ثبت لاگ اطلاعات ویژگیهای TLS در ثبت وضعیت تحویل. این مورد نحوه استفاده از ویژگیهایی مانند TLS و REQUIRETLS را خلاصه میکند. فهرستی از مثالها در انتهای این متن آمده است.
- ثبت لاگ بین اطلاعات «delays=a/b/c/d» و «dsn=x.y.z, status=...» درج میشود.
- قالب کلی به صورت «tls=feature/feature/...» است. برای مثالها به زیر مراجعه کنید.
- اولین نام ویژگی، سطح امنیت TLS است: 'none'، 'may'، 'encrypt' و غیره. سایر ویژگیها تنها در صورت فعال بودن نشان داده میشوند. نام ویژگی الحاقیه REQUIRETLS برابر با 'requiretls' است.
- هنگامی که یک ':downgrade-level' به نام یک ویژگی اضافه میشود، آن ویژگی به سطح نشان داده شده تقلیل (downgrade) یافته است. یک downgrade-level به مقدار none نشان میدهد که آن ویژگی در دسترس نبوده است. نتیجه یک تقلیل سطح ممکن است یک خطمشی سختگیرانه (strict) را نقض کند، اما همچنان ممکن است با یک خطمشی آسانگیر (permissive) سازگار باشد.
- هنگامی که «!» قبل از یک ویژگی قرار میگیرد، خطمشی مربوط به آن ویژگی نقض شده و ارتباط استفاده نشده است.
- هنگامی که
«?» به
انتهای یک
ویژگی
اضافه
میشود،
وضعیت
خطمشی
برای آن
ویژگی
نامشخص
بوده است.
این حالت
معمولاً
ناشی از قطع
ارتباط یا
پیکربندی
نادرست است.
مثالها برای سطوح امنیت TLS:
- tls=none
- اتصالی با TLS
غیرفعال.
- tls=may
- حالت Opportunistic TLS.
اتصال پس از
یک
دستتکانی
(handshake) موفق TLS
استفاده شد.
- tls=may?
- حالت Opportunistic TLS.
وضعیت
نامشخص بود
زیرا
اتصالی
برقرار
نشد، یا هیچ
سروری در
دسترس نبود.
- tls=may:none
- حالت Opportunistic TLS.
کلاینت
مایل به
استفاده از
TLS بود، اما
سرور راه
دور از STARTTLS
پشتیبانی
نمیکرد، و
اتصال
همانطور
که توسط
خطمشی opportunistic TLS
مجاز بود،
به صورت متن
آشکار (plaintext)
استفاده شد.
- tls=dane
- سازگار با
خطمشی DANE،
بدون تقلیل
سطح.
- tls=dane:halfdane
- حالت Opportunistic DANE.
امنیت
اتصال به 'halfdane'
تقلیل یافت
تا نشان دهد
رکوردهای
سرور ایمیل
دارای
امضای DNSSEC
نبودند.
- tls=dane:encrypt
- حالت Opportunistic DANE.
امنیت
اتصال به 'encrypt'
تقلیل یافت
زیرا
هیچیک از
رکوردهای TLSA
قابل
استفاده
نبودند.
- tls=dane?
- وضعیت
خطمشی DANE
نامشخص
بود، زیرا
اتصال پیش
از
دستتکانی
TLS یا در حین
آن با شکست
مواجه شد.
مثالها برای خطمشیهای REQUIRETLS (تنظیمشده با smtp_requiretls_policy)، که در آنها «xxx» یک سطح امنیت TLS است:
- tls=xxx/requiretls
- سازگار با خطمشی 'Enforce'. پس از یک دستتکانی موفق TLS که نیازمند تطابق گواهی بود، سرور راه دور پشتیبانی از REQUIRETLS را اعلام کرد و کلاینت REQUIRETLS را ارسال کرد.
- tls=xxx/!requiretls:nocertmatch
- نقض خطمشی
'Enforce'. اتصال
استفاده
نشد زیرا
گواهی سرور
راه دور طبق
الزام
خطمشی
امنیت TLS
مطابقت
نداشت، یا
اتصالی
برقرار نشد
زیرا
خطمشی
امنیت TLS
بررسی
تطابق
گواهی سرور
را غیرفعال
کرده بود.
- tls=xxx/requiretls:nocertmatch
- سازگار با
خطمشی 'Opportunistic+starttls'
یا 'opportunistic'. پس از
یک
دستتکانی
موفق TLS که
نیازی به
تطابق
گواهی سرور
نداشت،
سرور راه
دور
پشتیبانی
از REQUIRETLS را
اعلام کرد و
کلاینت REQUIRETLS
را فرستاد.
- tls=xxx/!requiretls:nostarttls
- نقض خطمشی
'Enforce' یا 'opportunistic+starttls'.
اتصال
استفاده
نشد زیرا
سرور راه
دور از STARTTLS
پشتیبانی
نمیکرد.
- tls=xxx/!requiretls:noencryption
- نقض خطمشی
'Enforce' یا 'opportunistic+starttls'.
هیچ اتصالی
برقرار نشد
زیرا
خطمشی
امنیت TLS
رمزنگاری
را غیرفعال
کرده بود.
- tls=xxx/!requiretls:none
- نقض خطمشی
'Enforce'. پس از یک
دستتکانی
موفق TLS،
اتصال
استفاده
نشد زیرا
سرور راه
دور از REQUIRETLS
پشتیبانی
نمیکرد.
- tls=xxx/requiretls:none
- سازگار با
خطمشی 'Opportunistic+starttls'.
پس از یک
دستتکانی
موفق TLS،
سرور راه
دور
پشتیبانی
از REQUIRETLS را
اعلام نکرد
و اتصال
بدون ارسال
REQUIRETLS استفاده
شد.
- tls=xxx/requiretls:none
- سازگار با
خطمشی 'Opportunistic'.
سرور راه
دور
پشتیبانی
از STARTTLS یا REQUIRETLS را
اعلام
نکرد، و
اتصال بدون
ارسال REQUIRETLS
استفاده شد.
- tls=xxx/requiretls?
- وضعیت
خطمشی
نامشخص
بود، زیرا
اتصال پیش
از
دستتکانی
TLS یا در حین
آن با شکست
مواجه شد،
یا به دلیل
خطای
پیکربندی
خطمشی هیچ
اتصالی
برقرار نشد.
این ویژگی در Postfix نسخه 3.11 و بالاتر در دسترس است.
smtp_mail_timeout (default: 300s)
محدودیت زمانی کلاینت SMTP در Postfix برای ارسال دستور MAIL FROM و دریافت پاسخ از سرور SMTP راه دور.
یک مقدار زمانی غیر صفر را مشخص کنید (یک مقدار عدد صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
smtp_mime_header_checks (default: empty)
جدولهای محدود شده mime_header_checks(5) برای کلاینت SMTP در Postfix. این جدولها در حین تحویل ایمیل جستجو میشوند. اقداماتی که زمان تحویل یا مقصد را تغییر میدهند در دسترس نیستند.
این ویژگی در Postfix نسخه 2.5 و بالاتر در دسترس است.
smtp_min_data_rate (default: 500)
حداقل نرخ انتقال داده متن آشکار بر حسب بایت/ثانیه برای درخواستهای DATA، زمانی که مهلتهای زمانی با smtp_per_request_deadline فعال شده باشند. پس از اینکه یک عملیات نوشتن، N بایت از پیام متن آشکار را (احتمالاً پس از رمزنگاری TLS) انتقال داد، و پس از اینکه مهلت درخواست DATA به میزان زمان سپریشده آن عملیات نوشتن کاهش یافت، مهلت درخواست DATA به میزان N/smtp_min_data_rate ثانیه افزایش مییابد. با این حال، مهلت زمانی هرگز فراتر از محدودیت زمانی مشخصشده با smtp_data_xfer_timeout افزایش نخواهد یافت.
این ویژگی در Postfix نسخه 3.7 و بالاتر در دسترس است.
smtp_mx_address_limit (default: 5)
حداکثر تعداد آدرسهای IP مربوط به MX (مبادلهکننده ایمیل) که میتواند حاصل جستجوهای مبادلهکننده ایمیل توسط کلاینت SMTP در Postfix باشد، یا صفر (بدون محدودیت). قبل از Postfix نسخه 2.3، این محدودیت بهطور پیشفرض غیرفعال بود.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtp_mx_session_limit (default: 2)
حداکثر تعداد نشستهای SMTP در هر درخواست تحویل، پیش از آنکه کلاینت SMTP پُستفیکس تسلیم شود یا پیام را به میزبان بازپخش پشتیبان (fall-back relay host) تحویل دهد، یا صفر (بدون محدودیت). این محدودیت، نشستهایی را که موفق به تکمیل دستتکانی اولیه SMTP نمیشوند (Postfix نسخه ۲.۲ و پیش از آن) یا موفق به تکمیل دستتکانی EHLO و TLS نمیشوند (Postfix نسخه ۲.۳ و پس از آن) نادیده میگیرد.
این قابلیت در Postfix نسخه ۲.۱ و بالاتر در دسترس است.
smtp_nested_header_checks (default: empty)
جدولهای محدود شدهی nested_header_checks(5) برای کلاینت SMTP پُستفیکس. این جدولها هنگام تحویل نامه جستجو میشوند. اقداماتی که زمان تحویل یا مقصد را تغییر میدهند در دسترس نیستند.
این قابلیت در Postfix نسخه ۲.۵ و بالاتر در دسترس است.
smtp_never_send_ehlo (default: no)
هرگز در آغاز نشست SMTP دستور EHLO ارسال نشود. همچنین پارامتر smtp_always_send_ehlo را ببینید.
smtp_per_record_deadline (default: no)
تغییر رفتار محدودیتهای زمانی smtp_*_timeout، از یک مهلت زمانی به ازای هر فراخوانی سیستمی خواندن یا نوشتن، به مهلت زمانی برای ارسال یا دریافت یک رکورد کامل (یک خط فرمان SMTP، خط پاسخ SMTP، خط محتوای پیام SMTP، یا پیام پروتکل TLS). این کار اثر همتایان متخاصمی را که دادهها را بایت به بایت و قطرهچکانی ارسال میکنند محدود میسازد.
نکته: هنگامی که مهلتهای per-record فعال باشند، یک مهلت زمانی کوتاه ممکن است باعث بروز مشکلاتی در TLS روی اتصالات شبکه بسیار کُند شود. دلیل آن این است که طول یک پیام پروتکل TLS میتواند تا ۱۶ کیلوبایت باشد (در TLSv1)، و کل پیام پروتکل TLS باید در طول مهلت per-record ارسال یا دریافت گردد.
این قابلیت در Postfix نسخههای ۲.۹ تا ۳.۶ در دسترس است. در نگارشهای قدیمیتر Postfix، رفتار بهگونهای است که گویی این پارامتر روی "no" تنظیم شده است. Postfix نسخه ۳.۷ و بالاتر از smtp_per_request_deadline استفاده میکنند.
smtp_per_request_deadline (default: no)
تغییر رفتار محدودیتهای زمانی smtp_*_timeout، از مهلت زمانی به ازای هر فراخوانی خواندن یا نوشتن متنساده یا TLS، به یک مهلت زمانی ترکیبی برای ارسال یک درخواست کامل SMTP و دریافت یک پاسخ کامل SMTP. این مهلت تنها زمان صرفشده در انتظار فراخوانیهای خواندن یا نوشتن متنساده یا TLS را محدود میکند، نه زمان صرفشده در بخشهای دیگر را. مهلت per-request تأثیر همتایان متخاصمی را که دادهها را بایت به بایت ارسال میکنند محدود میسازد.
برای چگونگی مدیریت مهلت per-request در طول فاز DATA، پارامتر smtp_min_data_rate را ببینید.
نکته: هنگامی که مهلتهای per-request فعال باشند، یک محدودیت زمانی کوتاه ممکن است باعث بروز مشکلاتی در TLS روی اتصالات شبکه بسیار کُند شود. دلیل آن این است که طول یک پیام پروتکل TLS میتواند تا ۱۶ کیلوبایت باشد (در TLSv1)، و کل پیام پروتکل TLS باید در طول مهلت per-request منتقل گردد.
این قابلیت در Postfix نسخه ۳.۷ و بالاتر در دسترس است. قابلیتی ضعیفتر به نام smtp_per_record_deadline در Postfix نسخههای ۲.۹ تا ۳.۶ موجود است.
این قابلیت در Postfix نسخه ۳.۷ و بالاتر در دسترس است.
smtp_pix_workaround_delay_time (default: 10s)
مدت زمانی که کلاینت SMTP پُستفیکس پیش از ارسال ".<CR><LF>" مکث میکند تا باگ "<CR><LF>.<CR><LF>" در فایروال PIX را دور بزند.
انتخاب زمانی بیش از حد کوتاه، این راهکار جبرانی را هنگام ارسال پیامهای بزرگ روی اتصالات شبکه کُند بیاثر میسازد.
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
smtp_pix_workaround_maps (default: empty)
جدولهای جستجو، ایندکسشده بر پایه نشانی سرور SMTP راه دور، با راهکارهای جبرانی به ازای هر مقصد برای باگهای فایروال CISCO PIX. این جدول برای حفظ هماهنگی با smtp_discard_ehlo_keyword_address_maps، بر پایه نام میزبان ایندکس نشده است.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله سفید یا کاما جدا شدهاند. جدولها به ترتیب تعیینشده تا زمان یافتن یک تطابق جستجو خواهند شد.
این قابلیت در Postfix نسخه ۲.۴ و بالاتر در دسترس است.
smtp_pix_workaround_threshold_time (default: 500s)
مدت زمانی که یک پیام باید در صف بماند تا کلاینت SMTP پُستفیکس، راهکار جبرانی باگ "<CR><LF>.<CR><LF>" فایروال PIX را برای تحویل از میان فایروالهای دارای حالت فعال "smtp fixup" روشن کند.
یک مقدار زمانی غیرمنفی تعیین کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
بهطور پیشفرض، این راهکار جبرانی برای نامههایی که کمتر از ۵۰۰ ثانیه در صف ماندهاند خاموش است. به بیان دیگر، این راهکار بهطور معمول برای اولین تلاش تحویل غیرفعال است.
مقدار 0 را برای فعالسازی راهکار جبرانی باگ "<CR><LF>.<CR><LF>" فایروال PIX در نخستین تلاش تحویل تعیین کنید.
smtp_pix_workarounds (default: disable_esmtp, delay_dotcrlf)
فهرستی که صفر یا چند راهکار جبرانی برای باگهای فایروال CISCO PIX را مشخص میکند. این راهکارها توسط کلاینت SMTP پُستفیکس پیادهسازی شدهاند. نامهای راهکارها با کاما یا فاصله جدا میشوند و به بزرگی و کوچکی حروف حساس نیستند. این تنظیمات را میتوان با تنظیمات به ازای هر مقصد در smtp_pix_workaround_maps نادیده گرفت.
- delay_dotcrlf
- درج یک
تأخیر پیش
از ارسال
".<CR><LF>" پس از
پایان
محتوای
پیام. این
تأخیر تابع
تنظیمات
پارامترهای
smtp_pix_workaround_delay_time و smtp_pix_workaround_threshold_time
است.
- disable_esmtp
- غیرفعال
کردن تمام
فرمانهای
ESMTP
(فرمانهای
گسترشیافته):
ارسال HELO به
جای EHLO.
این قابلیت در Postfix نسخه ۲.۴ و بالاتر در دسترس است. تنظیمات پیشفرض با نگارشهای پیشین Postfix سازگار رو به عقب هستند.
smtp_quit_timeout (default: 300s)
محدودیت زمانی کلاینت SMTP پُستفیکس برای ارسال فرمان QUIT و برای دریافت پاسخ سرور SMTP راه دور.
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
smtp_quote_rfc821_envelope (default: yes)
نقلقولگذاری (کوتیشن) نشانیها در فرمانهای MAIL FROM و RCPT TO کلاینت SMTP پُستفیکس، مطابق با الزامات RFC 5321. این شامل قرار دادن نقلقول در اطراف بخش محلی (localpart) نشانی است که به "." ختم میشود.
رفتار پیشفرض، انطباق با RFC 5321 است. در صورت نیاز به ارسال نامه به یک سرور SMTP معیوب، یک کلاینت SMTP ویژه در master.cf پیکربندی کنید:
/etc/postfix/master.cf:
broken-smtp . . . smtp -o smtp_quote_rfc821_envelope=no
و نامههای مقصد مربوطه را با یک جدول transport(5) به سمت تحویل پیام "broken-smtp" هدایت کنید.
این قابلیت در Postfix نسخه ۲.۱ و بالاتر در دسترس است.
smtp_randomize_addresses (default: yes)
تصادفیسازی ترتیب نشانیهای میزبان MX با اولویت برابر. این یک ویژگی کارایی کلاینت SMTP پُستفیکس است.
smtp_rcpt_timeout (default: 300s)
محدودیت زمانی کلاینت SMTP پُستفیکس برای ارسال فرمان SMTP RCPT TO و دریافت پاسخ سرور SMTP راه دور.
یک مقدار زمانی غیرصفر تعیین کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
smtp_reply_filter (default: empty)
سازوکاری برای دگرگونسازی خط به خط پاسخهای سرورهای SMTP راه دور. این ابزار واپسین چاره برای دور زدن پاسخهای سروری است که سازگاری تعاملی با کلاینت SMTP پُستفیکس را دچار اختلال میکنند. کاربردهای دیگر شامل تزریق خطا (fault injection) برای آزمایش نحوه مدیریت پاسخهای نامعتبر توسط Postfix است.
نکات:
- در پاسخهای چندخطی، کلاینت SMTP پُستفیکس از کد عددی پاسخ SMTP و کد وضعیت پیشرفته خط پایانی استفاده میکند.
- کد عددی
پاسخ SMTP (به
شکل XYZ) بر کد
وضعیت
پیشرفته (X.Y.Z)
تقدم دارد.
هرگاه رقم
ابتدایی کد
وضعیت
پیشرفته با
رقم
ابتدایی کد
پاسخ SMTP
متفاوت
باشد، یا
زمانی که
هیچ کد
وضعیت
پیشرفتهای
ارائه نشده
باشد،
کلاینت SMTP
پُستفیکس
در عوض از
یک کد وضعیت
پیشرفته
عمومی (X.0.0)
استفاده
میکند.
نام یک جدول جستجوی "type:table" را تعیین کنید. رشته جستجو، یک خط پاسخ SMTP دریافتی از سرور SMTP راه دور است، با این تفاوت که <CR><LF> انتهایی آن حذف شده است. با موفقیتآمیز بودن جستجو، نتیجه جایگزین آن تکخط پاسخ SMTP میشود.
مثالها:
/etc/postfix/main.cf:
smtp_reply_filter = pcre:/etc/postfix/reply_filter
/etc/postfix/reply_filter:
# Some Microsoft servers violate RFC 2554 section 4, causing Postfix
# to complain with "non-empty initial GSSAPI challenge from server"
/^334\s+GSSAPI\s+supported/ 334
# Transform garbage into "250-filler..." so that it looks like # one line from a multi-line reply. It does not matter what we # substitute here as long it has the right syntax. The Postfix # SMTP client will use the final line's numerical SMTP reply # code and enhanced status code. !/^([2-5][0-9][0-9]($|[- ]))/ 250-filler for garbage
این قابلیت در Postfix نسخه ۲.۷ در دسترس است.
smtp_requiretls_policy (default: see 'postconf -d smtp_requiretls_policy' output)
نحوه اِعمال REQUIRETLS توسط کلاینت SMTP و LMTP پُستفیکس برای پیامهای دریافتی با گزینه REQUIRETLS. مثالهای سیاست برای SMTP و LMTP در انتها آمده است.
- فهرستی از موارد جدا شده با فاصله سفید یا کاما را تعیین کنید؛ برای ادامه یک خط طولانی، خط پسین را با فاصله سفید آغاز کنید.
- هر مورد باید یک کنش (action - در زیر ببینید)، یا یک جدول جستجوی type:table باشد که یک کنش بازمیگرداند (نباید یک type:table بازگرداند).
- در ادامه، مقصد گام بعدی (next-hop) TLS برای اتصالات TCP بهطور پیشفرض دامنه گیرنده است، اما میتوان آن را با مقصدهای تعیینشده در transport_maps، relayhost، content_filter یا سایر قابلیتهای مسیریابی بازنویسی کرد. مقصد گام بعدی برای LMTP روی اتصالات UNIX-domain همواره مقدار myhostname است.
- یک جدول جستجوی type:table با مقصد next-hop مربوط به TLS (بدون هیچ [ ]، :service، یا :port) جستجو میشود. مقاصد next-hop غیر-ASCII پیش از استعلام سیاست، به قالب ASCII (کدپونی یا Punycode) تبدیل میشوند؛ جدولهای جستجو باید به پرسوجوهای قالب ASCII پاسخ دهند.
- یک جدول
رشته ثابت
(مانند lmdb:، cdb:،
یا hash:) همچنین
با
دامنههای
والد ".parent"
مربوط به next-hop
جستجو
میشود (در
کلید جدول،
یک '.' به
ابتدای نام
دامنه والد
اضافه
کنید). این
پرسوجوهای
دامنه والد
".parent" روی
جدولهای
جستجوی
مبتنی بر
الگو مانند
regexp: یا pcre: یا
جدولهای
socketmap: یا tcp: انجام
نمیشود.
کنشهای پشتیبانیشده، با فرض فعال بودن ثبت وضعیت قابلیت TLS با "smtp_log_tls_feature_status = yes" (پیشفرض):
- enforce
- صرفنظر از
سرورهایی
که از STARTTLS
پشتیبانی
نمیکنند،
صرفنظر از
اتصالات
فاقد تطابق
گواهی
سرور، و
صرفنظر از
سرورهایی
که پس از STARTTLS
از REQUIRETLS
پشتیبانی
نمیکنند.
در صورت یافتن سرور مناسب، درخواست REQUIRETLS ارسال میشود، پیام تحویل میگردد، و عبارت "tls=level/requiretls" در لاگ وضعیت تحویل ثبت میشود، که در آن level سطح امنیت فعال TLS کلاینت SMTP را نشان میدهد.
اگر سرور مناسبی یافت نشود، پیام بهعنوان غیرقابلتحویل برگشت داده شده و نقض سیاست بهصورت "tls=level/!requiretls:nocertmatch"، "tls=level/!requiretls:noencryption"، یا "tls=level/!requiretls:nostarttls" مطابق توضیحات بخش smtp_log_tls_feature_status در لاگ ثبت میشود.
نکته: این کنش همچنین در مواردی که هیچ تطابق سیاستی برای REQUIRETLS یافت نشود، بهطور ضمنی به کار میرود.
- opportunistic+starttls
- صرفنظر از
سرورهایی
که
پشتیبانی
از STARTTLS را
اعلام
نمیکنند،
اما نیازی
به تطابق
گواهی سرور
یا
پشتیبانی
REQUIRETLS راه دور
وجود ندارد.
در صورت یافتن سرور مناسب، اگر سرور از REQUIRETLS پشتیبانی کند، REQUIRETLS ارسال شده و عبارت "tls=level/requiretls" یا "tls=level/requiretls:nomatch" در لاگ وضعیت تحویل ثبت میشود؛ در غیر این صورت، پیام بهگونهای تحویل داده میشود که گویی فرستنده REQUIRETLS را درخواست نکرده است و "tls=level/requiretls:none" ثبت میشود، که در آن level سطح امنیت فعال TLS کلاینت SMTP را نشان میدهد.
در صورت نیافتن سرور مناسب، پیام بهعنوان غیرقابلتحویل برگشت داده شده و نقض سیاست بهصورت "tls=level/!requiretls:noencryption" یا "tls=level/!requiretls:nostarttls" مطابق توضیحات smtp_log_tls_feature_status ثبت میشود.
این سیاست ملایم برای MTAهای پیرامونی خروجی، هنگام ارسال پیامها از سیستمهای داخلی به اینترنت، در دورانی که بسیاری از دامنهها از TLS پشتیبانی کرده اما فاقد سیاستهای DANE یا MTA-STS هستند، مناسب است.
- opportunistic
- عدم الزام
به STARTTLS، تطابق
گواهی
سرور، یا
پشتیبانی
REQUIRETLS راه دور.
درخواست REQUIRETLS در صورتی که سرور از هر دو قابلیت STARTTLS و REQUIRETLS پشتیبانی کند، و ثبت "tls=level/requiretls" یا "tls=level/requiretls:nomatch" در لاگ وضعیت تحویل؛ در غیر این صورت پیام بدون در نظر گرفتن درخواست REQUIRETLS تحویل داده شده و عبارت "tls=level/requiretls:none" ثبت میشود، که در آن level سطح امنیت فعال TLS کلاینت SMTP را نشان میدهد.
این سیاست REQUIRETLS بدون مزاحمت است، چرا که هیچ نقض سیاستی در آن رخ نخواهد داد.
این سیاست ضعیف برای یک MTA پیرامونی ورودی، هنگام بازارسال پیامها از اینترنت به سرورهای داخلی یا پالایهگرهای محتوا که ممکن است از STARTTLS یا REQUIRETLS پشتیبانی نکنند، با استفاده از اتصالات داخلی به جای اینترنت عمومی کاربرد دارد. همچنین برای یک MTA خروجی جهت کشف مقصدهایی که از شکلی از REQUIRETLS پشتیبانی میکنند بدون ریسک اختلال در تحویل ایمیل، مناسب است.
- disable
- غیرفعالسازی
پشتیبانی
REQUIRETLS. تحویل
تمام
پیامها
بهگونهای
که گویی
فرستنده
درخواستی
برای REQUIRETLS
نداده است.
از این
گزینه
میتوان
بهعنوان
راهکار
واپسین
چاره در
زمانی که
سرور
پشتیبانی
از REQUIRETLS را
اعلام
میکند اما
عملکرد آن
مختل است،
استفاده
کرد.
نکات:
- جهت تطابق با هر نامی زیر دامنه "example.com"، یک مدخل جدول با کلید ذخیرهسازی ".example.com" در جدولهای جستجوی type:table که به تطابق دقیق نیاز دارند، تعیین کنید. این پیکربندی مثلاً با lmdb:، cdb: یا hash: مناسب است.
- الگوی
تطابقی
برای ".domain" با
regexp:، pcre:، socketmap: یا tcp:
مشخص
نکنید، چرا
که smtp_requiretls_policy چنین
جدولهایی
را با این
ساختار
استعلام
نخواهد کرد.
مثالهای کلاینت SMTP. جهت بررسی بیشتر REQUIRETLS_README را ببینید.
- سادهترین
سیاست:
هنگامی که
فرستنده
درخواست REQUIRETLS
میکند،
تنها در
صورت
پشتیبانی
سرور خارجی
یا داخلی از
هر دو
قابلیت STARTTLS و
REQUIRETLS،
درخواست REQUIRETLS
صادر شود
(خطهای ۴،
۵)، و الزام
به تطابق
گواهی TLS
تنها زمانی
اعمال شود
که مقصد یک
سیاست DANE یا STS
منتشر کرده
باشد (خط ۳).
چنانچه
فرستنده
درخواست REQUIRETLS
کند، اما
سرور خارجی
یا داخلی از
هر دو
پشتیبانی
ننماید،
پیام
بهسادگی
تحویل داده
شود گویی
فرستنده
درخواستی
برای REQUIRETLS
نداشته است
(خطهای ۴،
۵).
1 /etc/postfix/main.cf: 2 smtp_tls_security_level = may 3 smtp_tls_policy_maps = ...dane/sts plugin... 4 smtp_requiretls_policy = opportunistic 5 lmtp_requiretls_policy = opportunistic
- سیاست
پیشفرض REQUIRETLS
کلاینت SMTP
(خطوط ۴-۱۲):
هنگامی که
فرستنده REQUIRETLS
را درخواست
میکند،
سرور خارجی
ملزم به
پشتیبانی
از STARTTLS و REQUIRETLS
است، و
گواهی سرور
آن باید با
سیاست DANE یا STS
مطابقت
داشته باشد
(خطوط ۳،
۱۲)؛
پشتیبانی
از REQUIRETLS برای
تحویل به
مقاصد
داخلی یا
پالایههای
محتوا که با
نام نمادین
(خطوط ۵-۸) یا
نشانی عددی
(خطوط ۹-۱۱)
مشخص
شدهاند،
اختیاری در
نظر گرفته
شود. نام
دامنه
بینالمللیشده
باید در
قالب ASCII مشخص
شود (خطوط
۶-۷)؛ سیاست
پیشفرض
زیر از ${domain_to_ascii{$mydomain}}
استفاده
میکند که
در صورت
وجود
نویسههای
صرفاً ASCII در
نام دامنه
مقدار $mydomain را
برمیگرداند،
و در صورت
وجود
نویسههای
غیر ASCII مقدار
Punycode (بهصورت
xn--mumble)
بازمیگرداند.
نکته: اگر
فهرست
دامنهها
خارج از main.cf
مشخص شود،
گسترش
خودکار $name و
تبدیلهای
Punycode انجام
نخواهند
شد، و باید
نامهای
دامنه
صریحاً
بهصورت ASCII
وارد شوند.
1 /etc/postfix/main.cf: 2 smtp_tls_security_level = may 3 smtp_tls_policy_maps = ...dane/sts plugin... 4 smtp_requiretls_policy = 5 inline:{ 6 { ${domain_to_ascii{$mydomain}} = opportunistic } 7 { .${domain_to_ascii{$mydomain}} = opportunistic } 8 { localhost = opportunistic } } 9 cidr:{ 10 { 0.0.0.0/0 opportunistic }, 11 { ::/0 opportunistic } }, 12 enforce - سیاست
انعطافپذیرتر
REQUIRETLS کلاینت SMTP
برای مقاصد
خارجی (خط
۱۲): هنگامی
که فرستنده
REQUIRETLS را
درخواست
میکند،
سرور خارجی
ملزم به
پشتیبانی
از STARTTLS است
اما تطابق
گواهی TLS
تنها زمانی
اجباری
میشود که
گیرنده یک
سیاست DANE یا STS
منتشر کرده
باشد (خط ۳)،
و سرور
خارجی
نیازی به
پشتیبانی
از REQUIRETLS ندارد.
سیاست فوق
را برای
مقاصد
داخلی یا
پالایههای
محتوا کپی
کنید (خطوط
۵-۱۱).
مجدداً،
نام دامنه
بینالمللیشده
باید در
قالب ASCII مشخص
شود (خطوط
۶-۷)؛ سیاست
از ${domain_to_ascii{$mydomain}}
استفاده
میکند که
در صورت
وجود
نویسههای
صرفاً ASCII
مقدار $mydomain و
در صورت
نویسههای
غیر ASCII مقدار
Punycode (بهصورت
xn--mumble)
بازمیگرداند.
نکته: اگر
فهرست
دامنهها
خارج از main.cf
مشخص شود،
گسترش
خودکار $name و
تبدیل به Punycode
رخ نخواهد
داد، و وارد
کردن
نامهای
دامنه صریح
ASCII الزامی
است.
1 /etc/postfix/main.cf: 2 smtp_tls_security_level = may 3 smtp_tls_policy_maps = ...dane/sts plugin... 4 smtp_requiretls_policy = 5 inline:{ 6 { ${domain_to_ascii{$mydomain}} = opportunistic } 7 { .${domain_to_ascii{$mydomain}} = opportunistic } 8 { localhost = opportunistic } } 9 cidr:{ 10 { 0.0.0.0/0 opportunistic }, 11 { ::/0 opportunistic } }, 12 opportunistic+starttls - مشابه
بالا،
همراه با
درج مقاصد
خارجی در یک
فایل
جداگانه
جهت
نگهداری
سادهتر.
/etc/postfix/main.cf: smtp_tls_security_level = may smtp_tls_policy_maps = ...dane/sts plugin... smtp_requiretls_policy = inline:{ { ${domain_to_ascii{$mydomain}} = opportunistic } { .${domain_to_ascii{$mydomain}} = opportunistic } { localhost = opportunistic } } cidr:{ { 0.0.0.0/0 opportunistic }, { ::/0 opportunistic } }, lmdb:/etc/postfix/requiretls-per-site opportunistic+starttls /etc/postfix/requiretls-per-site: one.example enforce two.example enforce three.example opportunistic ...بهجای lmdb:، برخی سیستمها از cdb:، hash: یا dbm: استفاده میکنند.
پس از ویرایش فایل requiretls-per-site، دستور "postmap /etc/postfix/requiretls-per-site" را جهت ایجاد (مجدد) فایل نمایه از نوع پیشفرض اجرا کنید. برای تعیین یک نوع صریح، دستور "postmap type:/etc/postfix/requiretls-per-site" را اجرا کنید.
نوع فایل نمایهشده پیشفرض با پارامتر default_database_type پیکربندی میشود. جهت مشاهده فهرست انواع صریح موجود، دستور "postconf -m" را اجرا کنید.
تغییرات
پیکربندی
ظرف مدت
حدود یک
دقیقه
اعمال
خواهند شد.
برای رفع
این تأخیر
از "postfix reload"
استفاده
کنید.
مثالهای کلاینت LMTP. برای توضیحات تکمیلی به REQUIRETLS_README مراجعه کنید.
- •
- سیاست
پیشفرض REQUIRETLS
کلاینت LMTP:
زمانی که
فرستنده
درخواست REQUIRETLS
میدهد، در
صورت
پشتیبانی
سرور از REQUIRETLS،
این قابلیت
درخواست
میشود؛ در
غیر این
صورت پیام
به گونهای
تحویل داده
میشود که
گویی
فرستنده REQUIRETLS
را درخواست
نکرده است.
نکته: در
تحویل از
طریق سوکت
دامنه
یونیکس (UNIX-domain
socket)، مقصد گام
بعدی (next-hop)
برای
جستجوهای
lmtp_requiretls_policy، مقدار
پارامتر myhostname
خواهد بود.
/etc/postfix/main.cf: lmtp_requiretls_policy = opportunistic
این قابلیت در Postfix نسخه ۳.۱۱ و بالاتر موجود است.
smtp_rset_timeout (default: 20s)
مهلت زمانی کلاینت SMTP پستفیکس برای ارسال دستور RSET و دریافت پاسخ از سرور SMTP راه دور. کلاینت SMTP دستور RSET را برای اتمام بررسی آزمایشی نشانی گیرنده، یا تأیید فعال بودن نشست ذخیرهشده ارسال میکند.
یک مقدار زمانی غیر صفر تعیین کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای مشخص کردن واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix نسخه ۲.۱ و بالاتر در دسترس است.
smtp_sasl_auth_cache_name (default: empty)
جدول اختیاری جهت جلوگیری از تکرار خطاهای احراز هویت SASL با نام میزبان سرور SMTP راه دور، نام کاربری و گذرواژه یکسان. هر جفت (کلید، مقدار) جدول شامل یک نام سرور، نام کاربری، گذرواژه و پاسخ کامل سرور است. این اطلاعات زمانی ذخیره میشود که سرور SMTP راه دور تلاش برای احراز هویت را با کد پاسخ ۵۳۵ رد کند. تا زمانی که اطلاعات smtp_sasl_password_maps تغییر نکند و اطلاعات smtp_sasl_auth_cache_name منقضی نشود (به smtp_sasl_auth_cache_time رجوع کنید)، کلاینت SMTP پستفیکس از تلاش مجدد برای احراز هویت SASL با همان سرور، نام کاربری و گذرواژه خودداری کرده و در عوض ایمیل را طبق پارامتر smtp_sasl_auth_soft_bounce برگشت (bounce) داده یا به تعویق میاندازد (defer).
همزمانی تحویل به ازای هر مقصد را روی ۱ تنظیم کنید (برای مثال، "smtp_destination_concurrency_limit = 1"، "relay_destination_concurrency_limit = 1" و غیره)، در غیر این صورت ممکن است چندین عامل تحویل بهطور همزمان دچار خطای ورود شوند.
دسترسی به جدول باید از طریق سرویس proxywrite انجام گیرد، یعنی نام مپ باید با "proxy:" شروع شود. جدول باید در دایرکتوری مشخصشده با پارامتر data_directory قرار داشته باشد.
این قابلیت از درهمسازی رمزنگاری برای محافظت از گذرواژههای متنی استفاده میکند و نیازمند کامپایل Postfix با پشتیبانی از TLS است.
مثالها:
smtp_sasl_auth_cache_name = proxy:lmdb:/var/lib/postfix/sasl_auth_cache smtp_sasl_auth_cache_name = proxy:btree:/var/lib/postfix/sasl_auth_cache
این قابلیت در Postfix نسخه ۲.۵ و بالاتر در دسترس است.
smtp_sasl_auth_cache_time (default: 90d)
حداکثر طول عمر یک ورودی در smtp_sasl_auth_cache_name پیش از حذف شدن.
یک مقدار زمانی غیرمنفی تعیین کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری برای مشخص کردن واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض d (روز) است.
این قابلیت در Postfix نسخه ۲.۵ و بالاتر در دسترس است.
smtp_sasl_auth_enable (default: no)
فعالسازی احراز هویت SASL در کلاینت SMTP پستفیکس. بهطور پیشفرض، کلاینت SMTP پستفیکس از هیچ احراز هویتی استفاده نمیکند.
مثال:
smtp_sasl_auth_enable = yes
smtp_sasl_auth_soft_bounce (default: yes)
هنگام رد درخواست احراز هویت SASL توسط سرور SMTP راه دور با کد پاسخ ۵۳۵، تحویل ایمیل را به جای بازگرداندن به عنوان غیرقابل تحویل، به تعویق بیندازید. این رفتار پیش از نسخه ۲.۵ پستفیکس به صورت درونکد (hard-coded) پیادهسازی شده بود.
نکته: مقدار "yes" اولویت بالاتری نسبت به پارامتر سراسری soft_bounce دارد، اما مقدار "no" اینگونه نیست.
مثال:
# Default as of Postfix 2.5 smtp_sasl_auth_soft_bounce = yes # The old hard-coded default smtp_sasl_auth_soft_bounce = no
این قابلیت در Postfix نسخه ۲.۵ و بالاتر در دسترس است.
smtp_sasl_mechanism_filter (default: empty)
در صورت خالی نبودن، پالایهای در کلاینت SMTP پستفیکس برای فهرست سازوکارهای SASL ارائهشده توسط سرور SMTP راه دور است. پیادهسازیهای مختلف کلاینت و سرور ممکن است از فهرستهای سازوکار متفاوتی پشتیبانی کنند؛ بهطور پیشفرض کلاینت SMTP پستفیکس از اشتراک این دو استفاده میکند. پارامتر smtp_sasl_mechanism_filter فهرست سومی از سازوکارها را برای اشتراکگیری تعیین میکند.
نام سازوکارها، الگوهای "/file/name" یا جداول جستجوی "type:table" را تعیین کنید. مقدار سمت راست حاصل از جستجوهای "type:table" نادیده گرفته میشود. از الگوی "!pattern" برای حذف یک نام سازوکار از فهرست استفاده کنید. ساختار "!/file/name" تنها در Postfix نسخه ۲.۴ و بالاتر پشتیبانی میشود.
این قابلیت در Postfix نسخه ۲.۲ و بالاتر در دسترس است.
مثالها:
smtp_sasl_mechanism_filter = plain, login smtp_sasl_mechanism_filter = /etc/postfix/smtp_mechs smtp_sasl_mechanism_filter = !gssapi, !login, static:rest
smtp_sasl_password_maps (default: empty)
جداول جستجوی اختیاری کلاینت SMTP پستفیکس شامل یک ورودی username:password به ازای هر فرستنده، نام میزبان راه دور یا دامنه گام بعدی (next-hop). جستجو بر اساس فرستنده تنها در صورت فعال بودن sender-dependent authentication انجام میشود. چنانچه هیچ ورودی username:password یافت نشود، کلاینت SMTP پستفیکس تلاشی برای احراز هویت با هاست راه دور نخواهد کرد.
از smtp_sasl_password_result_delimiter برای تعیین جداکننده جایگزین بین نام کاربری و گذرواژه استفاده کنید.
کلاینت SMTP پستفیکس جداول جستجو را پیش از ورود به محیط chroot باز میکند، بنابراین فایل گذرواژه میتواند در /etc/postfix باقی بماند.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله سفید یا کاما جدا شده باشند. جداول به ترتیب تعیینشده تا زمان یافتن یک تطابق جستجو خواهند شد.
smtp_sasl_password_result_delimiter (default: :)
جداکننده بین نام کاربری و گذرواژه در نتایج جستجوی sasl_passwd_maps. یک نویسه غیرفاصله تعیین کنید که در نام کاربری وجود نداشته باشد.
این قابلیت در Postfix >= 3.9 در دسترس است.
smtp_sasl_path (default: empty)
اطلاعات مختص پیادهسازی که کلاینت SMTP پستفیکس به افزونه SASL انتخابشده با smtp_sasl_type ارسال میکند. معمولاً نام یک فایل پیکربندی یا نقطه اتصال (rendezvous point) را مشخص میکند.
این قابلیت در Postfix نسخه ۲.۳ و بالاتر در دسترس است.
smtp_sasl_security_options (default: noplaintext, noanonymous)
گزینههای امنیتی SASL کلاینت SMTP پستفیکس؛ از نسخه ۲.۳ پستفیکس، فهرست امکانات موجود به پیادهسازی کلاینت SASL انتخابشده با smtp_sasl_type بستگی دارد.
ویژگیهای امنیتی زیر برای پیادهسازی کلاینت SASL نوع cyrus تعریف شده است:
صفر یا چند مورد از گزینههای زیر را تعیین کنید:
- noplaintext
- غیرمجاز
کردن
روشهایی
که از
گذرواژههای
متنی ساده
استفاده
میکنند.
- noactive
- غیرمجاز
کردن
روشهای
آسیبپذیر
در برابر
حمله فعال
(غیرفرهنگلغتی).
- nodictionary
- غیرمجاز
کردن
روشهای
آسیبپذیر
در برابر
حمله
غیرفعال
(فرهنگلغتی).
- noanonymous
- غیرمجاز
کردن
روشهایی
که احراز
هویت
ناشناس را
مجاز
میدانند.
- mutual_auth
- تنها مجاز
دانستن
روشهایی
که احراز
هویت
دوطرفه
ارائه
میدهند (در
نسخه ۱ SASL
پشتیبانی
نمیشود).
مثال:
smtp_sasl_security_options = noplaintext
smtp_sasl_tls_security_options (default: $smtp_sasl_security_options)
گزینههای امنیتی احراز هویت SASL که کلاینت SMTP پستفیکس برای نشستهای رمزگذاریشده با TLS استفاده میکند.
این قابلیت در Postfix نسخه ۲.۲ و بالاتر در دسترس است.
smtp_sasl_tls_verified_security_options (default: $smtp_sasl_tls_security_options)
گزینههای امنیتی احراز هویت SASL که کلاینت SMTP پستفیکس برای نشستهای SMTP رمزگذاریشده با TLS با گواهی سرور تأییدشده استفاده میکند.
هنگام ارسال ایمیل به هاست MX عمومی دامنه گیرنده، بررسی گواهیهای سرور بهطور پیشفرض اختیاری بوده و فرایند تحویل حتی با شکست اعتبارسنجی گواهی ادامه مییابد. برای تحویل از طریق سرویس ارسال (submission) که نیازمند احراز هویت SASL است، ارسال گذرواژههای متنی تنها در صورتی منطقی است که اتصال به سرور دارای رمزگذاری قوی بوده و هویت سرور تأیید شده باشد.
پارامتر smtp_sasl_tls_verified_security_options امکان فعالسازی سازوکارهای متنی را تنها در شرایط برقراری یک اتصال امن به سرور فراهم میسازد. سرورهای submission مشمول این سیاست باید گواهیهای معتبر داشته باشند یا سازوکارهای SASL غیرمتنی مناسبی را ارائه دهند.
این قابلیت در Postfix نسخه ۲.۶ و بالاتر در دسترس است.
smtp_sasl_type (default: cyrus)
نوع افزونه SASL که کلاینت SMTP پستفیکس باید برای احراز هویت استفاده کند. انواع موجود با دستور "postconf -A" فهرست میشوند.
این قابلیت در Postfix نسخه ۲.۳ و بالاتر در دسترس است.
smtp_send_dummy_mail_auth (default: no)
مشخص میکند که آیا گزینه "AUTH=<>" به دستور MAIL FROM در نشستهای احراز هویتشده با SASL افزوده شود یا خیر. حالت پیشفرض جهت اجتناب از بروز خطا با سرورهای SMTP راه دور ناسازگار، عدم ارسال آن است. پیش از Postfix نسخه ۲.۹ این رفتار مشابه تنظیم "smtp_send_dummy_mail_auth = yes" بود.
این قابلیت در Postfix نسخه ۲.۹ و بالاتر در دسترس است.
smtp_send_xforward_command (default: no)
ارسال دستور غیراستاندارد XFORWARD در صورتی که پاسخ EHLO از جانب سرور SMTP راه دور پشتیبانی از XFORWARD را اعلام کند.
این قابلیت به عامل تحویل SMTP پستفیکس (که جهت ارسال ایمیل به پالایه محتوا به کار میرود) اجازه میدهد نام، نشانی، پروتکل و نام HELO مربوط به کلاینت اصلی را به پالایه محتوا و سرور SMTP در انتهای صف تحویل ارسال نماید. این اقدام باعث ثبت لاگهای کاربردیتر نسبت به مقادیری چون localhost[127.0.0.1] میشود.
این قابلیت در Postfix نسخه ۲.۱ و بالاتر در دسترس است.
smtp_sender_dependent_authentication (default: no)
فعالسازی احراز هویت وابسته به فرستنده (sender-dependent authentication) در کلاینت SMTP پستفیکس؛ این ویژگی فقط با احراز هویت SASL در دسترس است و کش کردن اتصال SMTP را غیرفعال میکند تا اطمینان حاصل شود نامههای فرستندگان مختلف از اطلاعات هویتی مناسب استفاده خواهند کرد.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
smtp_skip_4xx_greeting (default: yes)
نادیده گرفتن سرورهای SMTP که با کد وضعیت 4XX خوشآمدگویی میکنند (رد اتصال، تلاش مجدد در آینده).
بهطور پیشفرض، کلاینت SMTP در Postfix به سراغ مبادلهکننده نامه بعدی میرود. اگر Postfix باید تحویل را بلافاصله به تعویق بیندازد، مقدار "smtp_skip_4xx_greeting = no" را مشخص کنید.
این ویژگی در Postfix 2.0 و پیش از آن در دسترس است. نسخههای جدیدتر Postfix همیشه سرورهای SMTP ریموت را که با کد وضعیت 4XX پاسخ میدهند نادیده میگیرند.
smtp_skip_5xx_greeting (default: yes)
نادیده گرفتن سرورهای SMTP ریموت که با کد وضعیت 5XX پاسخ خوشآمدگویی میدهند.
بهطور پیشفرض، کلاینت SMTP در Postfix به سراغ مبادلهکننده نامه بعدی میرود. اگر Postfix باید نامه را بلافاصله برگشت بزند (bounce)، مقدار "smtp_skip_5xx_greeting = no" را مشخص کنید. هشدار: رفتار دوم با RFC 2821 در تناقض به نظر میرسد.
smtp_skip_quit_response (default: yes)
عدم انتظار برای دریافت پاسخ دستور SMTP QUIT.
smtp_starttls_timeout (default: 300s)
محدودیت زمانی برای عملیات خواندن و نوشتن کلاینت SMTP پستفیکس در طول مراحل دستتکانی راهاندازی و خاتمه TLS.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار عدد صحیح به همراه پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtp_tcp_port (default: smtp)
پورت پیشفرض TCP که کلاینت SMTP پستفیکس به آن متصل میشود. یک نام نمادین (ببینید services(5)) یا یک پورت عددی را مشخص کنید.
smtp_tls_CAfile (default: empty)
فایلی شامل گواهیهای CA مربوط به مراجع صدور گواهی ریشه معتمد برای امضای گواهیهای سرور ریموت SMTP یا گواهیهای CA میانی. این گواهیها پیش از ورود کلاینت smtp(8) به محیط chroot در حافظه بارگذاری میشوند. اگر تعداد ریشههای مورد اعتماد زیاد است، استفاده از smtp_tls_CApath را در نظر بگیرید، اما توجه داشته باشید در صورت اجرای کلاینت smtp(8) در chroot، دایرکتوری مذکور باید در محیط chroot وجود داشته باشد. این فایل همچنین میتواند برای گسترش زنجیره اعتماد گواهی کلاینت به کار رود، اما بهترین روش گنجاندن مستقیم تمام گواهیهای مورد نیاز در $smtp_tls_cert_file (یا در Postfix >= 3.4 در $smtp_tls_chain_files) است.
برای استفاده تنها از گواهیهای مرجع صدور گواهی پیشفرض سیستم، مقدار "smtp_tls_CAfile = /path/to/system_CA_file" را مشخص کنید.
برای جلوگیری از الحاق مراجع صدور گواهی پیشفرض سیستم و اعتماد به گواهیهای شخص ثالث توسط Postfix، مقدار "tls_append_default_CA = no" را مشخص کنید.
مثال:
smtp_tls_CAfile = /etc/postfix/CAcert.pem
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtp_tls_CApath (default: empty)
دایرکتوری حاوی گواهیهای مرجع صدور گواهی با فرمت PEM که کلاینت SMTP در Postfix برای اعتبارسنجی گواهی سرور SMTP ریموت استفاده میکند. ایجاد پیوندهای "hash" لازم را، برای مثال با "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs"، فراموش نکنید.
جهت استفاده از این گزینه در حالت chroot، این دایرکتوری (یا یک رونوشت از آن) باید درون محیط chroot قرار گیرد.
برای استفاده تنها از گواهیهای مرجع صدور گواهی پیشفرض سیستم، مقدار "smtp_tls_CApath = /path/to/system_CA_directory" را مشخص کنید.
برای جلوگیری از الحاق مراجع صدور گواهی پیشفرض سیستم و اعتماد به گواهیهای شخص ثالث توسط Postfix، مقدار "tls_append_default_CA = no" را مشخص کنید.
مثال:
smtp_tls_CApath = /etc/postfix/certs
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtp_tls_block_early_mail_reply (default: no)
تلاش برای شناسایی حمله ربایش ایمیل مبتنی بر آسیبپذیری پروتکل TLS (شناسه CVE-2009-3555)، که در آن مهاجم دستورات مخرب HELO، MAIL، RCPT، DATA را پیش از نشست TLS کلاینت SMTP در Postfix تزریق میکند. این حمله در سرورهای SMTP غیر پستفیکس که پس از مذاکره نشست TLS کلاینت SMTP پستفیکس به دستورات مخرب HELO، MAIL، RCPT، DATA پاسخ میدهند، موفقیتآمیز خواهد بود.
این ویژگی در Postfix 2.7 در دسترس است.
smtp_tls_cert_file (default: empty)
فایل حاوی گواهی RSA کلاینت SMTP در Postfix با فرمت PEM. این فایل ممکن است کلید خصوصی RSA کلاینت SMTP را نیز شامل شود، و این موارد میتوانند با فایل کلید و گواهی RSA سرور SMTP پستفیکس یکسان باشند. در Postfix >= 3.4 روش ارجح برای پیکربندی کلیدها و گواهیهای کلاینت از طریق پارامتر "smtp_tls_chain_files" است.
گواهیهای کلاینت را پیکربندی نکنید مگر اینکه مجبور باشید گواهیهای TLS کلاینت را به یک یا چند سرور ارائه دهید. گواهیهای کلاینت معمولاً مورد نیاز نیستند و میتوانند در پیکربندیهایی که بدون آنها به درستی کار میکنند اختلال ایجاد کنند. تنظیم توصیهشده، باقی گذاشتن مقادیر پیشفرض است:
smtp_tls_cert_file = smtp_tls_key_file = smtp_tls_eccert_file = smtp_tls_eckey_file = # Obsolete DSA parameters smtp_tls_dcert_file = smtp_tls_dkey_file = # Postfix >= 3.4 interface smtp_tls_chain_files =
بهترین روش برای استفاده از تنظیمات پیشفرض، کامنت کردن پارامترهای فوق در main.cf (در صورت وجود) است.
برای اینکه سرورهای SMTP ریموت بتوانند گواهی کلاینت SMTP پستفیکس را اعتبارسنجی کنند، گواهیهای CA صادرکننده باید در دسترس سرور قرار داده شوند. باید گواهیهای لازم را در فایل گواهی کلاینت قرار دهید؛ ابتدا گواهی کلاینت، سپس مراجع صدور گواهی صادرکننده (ترتیب از پایین به بالا).
مثال: گواهی مربوط به "client.example.com" توسط "intermediate CA" صادر شده که خود دارای گواهی صادرشده توسط "root CA" است. با دسترسی کاربر ارشد "root" فایل chain.pem را ایجاد کنید:
# umask 077 # cat client_key.pem client_cert.pem intermediate_CA.pem > chain.pem
اگر میخواهید گواهیهای سرور ریموت SMTP صادرشده توسط این CAها را نیز تأیید کنید، میتوانید گواهیهای CA را به smtp_tls_CAfile اضافه کنید؛ در این حالت نیازی به وجود آنها در smtp_tls_cert_file، smtp_tls_dcert_file (منسوخ) یا smtp_tls_eccert_file نیست.
گواهی ارائهشده در اینجا باید به عنوان گواهی کلاینت SSL قابل استفاده بوده و در نتیجه در آزمون "openssl verify -purpose sslclient ..." تأیید شود.
مثال:
smtp_tls_cert_file = /etc/postfix/chain.pem
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtp_tls_chain_files (default: empty)
فهرستی از یک یا چند فایل PEM، که هر یک شامل یک یا چند کلید خصوصی است و بلافاصله زنجیره گواهی متناظر پس از آن قرار دارد. نام فایلها با کاما و/یا نویسه فاصله از هم جدا میشوند. این پارامتر جایگزین تنظیمات قدیمی فایلهای کلید و گواهی اختصاصی الگوریتمها میشود. با خالی نبودن این پارامتر، پارامترهای قدیمی نادیده گرفته میشوند و در صورت خالی نبودن آنها، هشداری ثبت خواهد شد.
با افزایش الگوریتمهای متعدد کلید خصوصی—که از OpenSSL 1.1.1 شامل DSA (منسوخ)، RSA، ECDSA، Ed25519 و Ed448 میشوند—استفاده از پارامترهای مجزا برای پیکربندی کلید و زنجیره گواهی برای هر الگوریتم از نظر عملی نامناسب است. بنابراین، Postfix اکنون از ذخیرهسازی چندین کلید و زنجیرههای گواهی متناظر در یک فایل واحد یا در مجموعهای از فایلها پشتیبانی میکند.
هر کلید باید بلافاصله قبل از گواهی متناظر خود قرار گیرد، که در صورت تمایل گواهیهای صادرکننده تکمیلی برای تکمیل زنجیره گواهی آن کلید به دنبال آن میآیند. در صورت تعیین چندین فایل، عملکرد معادل یک فایل واحد خواهد بود که از اتصال آن فایلها به ترتیب ارائهشده به وجود آمده است. بنابراین، با وجود اینکه کلید همیشه باید مقدم بر گواهی و زنجیره صادرکننده باشد، میتواند در فایلی مجزا قرار گیرد مشروط بر آنکه آن فایل بلافاصله قبل از فایل حاوی زنجیره گواهی مربوطه فهرست شده باشد. پس از اتصال فایلها، توالی اشیاء PEM باید به صورت زیر باشد: key1, cert1, [chain1], key2, cert2, [chain2], ..., keyN, certN, [chainN].
ذخیره کلید خصوصی در همان فایل حاوی گواهی متناظر مطمئنتر است. در صورت جدا بودن فایلهای کلید و گواهی، این احتمال وجود دارد که حین جایگزینی دورهای کلید (rollover)، یک فرآیند Postfix کلید خصوصی و گواهی ناسازگاری را از فایلهای جداگانه بارگذاری کند. خطاهای عملیاتی گوناگون حتی ممکن است به یک پیکربندی معیوب پایدار منجر شوند که در آن گواهی با کلید خصوصی مطابقت ندارد.
فایل یا فایلها باید حداکثر حاوی یک کلید از هر نوع باشند. برای مثال، در صورت درج دو یا چند کلید RSA و زنجیرههای متناظر، بسته به نسخه OpenSSL ممکن است فقط آخرین مورد اعمال شده یا خطای پیکربندی صادر شود. توجه داشته باشید در حالی که "Ed25519" و "Ed448" الگوریتمهایی مجزا محسوب میشوند، منحنیهای مختلف ECDSA (معمولاً یکی از موارد prime256v1، secp384r1 یا secp521r1) به عنوان پارامترهای متفاوتی از یک الگوریتم واحد "ECDSA" شناخته میشوند؛ بنابراین در حال حاضر امکان پیکربندی کلید برای بیش از یک منحنی ECDSA وجود ندارد.
مثال (فایلهای جداگانه برای هر کلید و زنجیره گواهی متناظر):
/etc/postfix/main.cf:
smtp_tls_chain_files =
${config_directory}/ed25519.pem,
${config_directory}/ed448.pem,
${config_directory}/rsa.pem
/etc/postfix/ed25519.pem:
-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
...
nC0egv51YPDWxEHom4QA
-----END CERTIFICATE-----
/etc/postfix/ed448.pem:
-----BEGIN PRIVATE KEY-----
MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
...
pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
-----END CERTIFICATE-----
/etc/postfix/rsa.pem:
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
...
ahQkZ3+krcaJvDSMgvu0tDc=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
...
Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
-----END CERTIFICATE-----
مثال (همه کلیدها و گواهیها در یک فایل واحد):
/etc/postfix/main.cf:
smtp_tls_chain_files = ${config_directory}/chains.pem
/etc/postfix/chains.pem:
-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
...
nC0egv51YPDWxEHom4QA
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
...
pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
...
ahQkZ3+krcaJvDSMgvu0tDc=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
...
Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
-----END CERTIFICATE-----
این ویژگی در Postfix 3.4 و بالاتر در دسترس است.
smtp_tls_cipherlist (default: empty)
کنترل منسوخشده در Postfix < 2.3 برای فهرست سایفرهای TLS کلاینت SMTP در Postfix. از آنجا که این ویژگی برای تمام سطوح امنیتی TLS اعمال میشود، انتخاب یک فهرست سایفر غیرپیشفرض به سادگی میتواند ناسازگاری ایجاد کند. روی میزبانهایی که ایمیل را به اینترنت عمومی ارسال میکنند از فهرست سایفر غیرپیشفرض استفاده نکنید: ارسال ایمیل به سرورهایی که فقط از سایفرهای مستثنیشده توسط شما پشتیبانی میکنند ناممکن خواهد شد. استفاده از فهرست سایفر محدود برای یک MTA داخلی مناسبتر است، جایی که اعمال کنترل روی نرمافزار TLS و تنظیمات سرورهای طرف مقابل امکانپذیر است.
نکته: در اطراف مقدار پارامتر از علامت نقلقول "" استفاده نکنید.
این ویژگی در نسخه 2.2 پستفیکس ارائه شده است. در Postfix 2.3 و بالاتر کاربرد ندارد؛ در عوض از smtp_tls_mandatory_ciphers استفاده کنید.
smtp_tls_ciphers (default: medium)
حداقل رتبه سایفر TLS که کلاینت SMTP در Postfix با رمزنگاری فرصتطلبانه TLS استفاده خواهد کرد. انواع سایفرهای درجشده در smtp_tls_exclude_ciphers از تعریف پایه رتبه سایفر انتخابی حذف میشوند. مقدار پیشفرض برای انتشارهای Postfix بعد از اواسط سال ۲۰۱۵ برابر با "medium" و برای نسخههای پیشین "export" است.
در زمان اجباری بودن TLS، رتبه سایفر از طریق پارامتر پیکربندی smtp_tls_mandatory_ciphers تعیین میشود؛ برای ساختار دقیق به آن رجوع کنید. برای اطلاعات بیشتر در مورد تنظیم سایفرها بر اساس هر مقصد به smtp_tls_policy_maps مراجعه کنید.
این ویژگی در Postfix 2.6 و بالاتر در دسترس است. در نسخههای قبلی Postfix فقط پارامتر smtp_tls_mandatory_ciphers پیادهسازی شده است و TLS فرصتطلبانه همواره از سایفرهای "export" یا بالاتر (یعنی تمام سایفرها) استفاده میکند.
smtp_tls_connection_reuse (default: no)
تلاش برای انجام چندین تحویل در هر اتصال رمزگذاریشده با TLS. این قابلیت از سرویس tlsproxy(8) برای رمزگذاری اتصال SMTP استفاده میکند، از سرویس scache(8) برای ذخیره آن اتصال بهره میبرد، و به راهنماییهای دیمن qmgr(8) متکی است.
برای جزئیات پیشزمینه به «Client-side TLS connection reuse» مراجعه کنید.
این ویژگی در Postfix نسخه 3.4 و بالاتر در دسترس است.
smtp_tls_dane_insecure_mx_policy (default: dane)
سیاست TLS برای میزبانهای MX دارای رکوردهای TLSA «امن» (secure) هنگامی که سطح امنیت مقصد nexthop برابر با dane است، اما رکورد MX از طریق یک جستجوی MX «ناامن» (insecure) یافت شده است. گزینهها عبارتند از:
- may
- رکوردهای TLSA
نادیده
گرفته
خواهند شد و
TLS اختیاری
خواهد بود.
اگر به نظر
برسد
میزبان MX از
STARTTLS پشتیبانی
نمیکند،
یا مصافحه STARTTLS
با شکست
مواجه شود،
ایمیل ممکن
است
بهصورت
رمزنشده
ارسال شود.
- encrypt
- رکوردهای TLSA
الزامی
بودن
استفاده از
TLS را نشان
خواهند داد.
در حالی که
رمزگذاری TLS
الزامی
خواهد بود،
احراز هویت
انجام
نخواهد شد.
- dane
- رکوردهای TLSA
دقیقاً
همانند
رکوردهای MX
«امن»
استفاده
خواهند شد.
رمزگذاری TLS
الزامی
خواهد بود و
اگر حداقل
یکی از
رکوردهای TLSA
«قابل
استفاده»
باشد،
احراز هویت
نیز الزامی
خواهد بود.
پس از
موفقیت
احراز
هویت، تنها
به عنوان
«Trusted» لاگ
میشود و نه
«Verified»، زیرا
نام میزبان
MX ممکن است
جعل شده
باشد.
مقدار پیشفرض از نسخههای 3.6.17، 3.7.13، 3.8.8، 3.9.2 و 3.10.0 پُستفیکس برابر با «dane» است. در نسخههای قبلی، مقدار پیشفرض به اشتباه وابسته به تنظیم smtp_tls_security_level بود.
اگرچه با رکوردهای MX «ناامن» یک مهاجم فعال میتواند با بازگرداندن رکوردهای MX جعلی امنیت انتقال SMTP را به خطر بیندازد، چنین حملاتی «آشکارساز دستکاری» (tamper-evident) هستند زیرا هر نام میزبان MX جعلی در لاگهای ایمیل ثبت خواهد شد. مهاجمانی که پنهان ماندن برایشان اهمیت بالایی دارد ممکن است از جعل رکوردهای MX منصرف شوند.
این ویژگی در Postfix نسخه 3.1 و بالاتر در دسترس است. سیاست may با نسخههای قبلی Postfix سازگار به عقب است.
smtp_tls_dcert_file (default: empty)
فایل حاوی گواهی DSA کلاینت SMTP پُستفیکس در قالب PEM. این فایل همچنین ممکن است حاوی کلید خصوصی DSA کلاینت SMTP پُستفیکس باشد. الگوریتم DSA منسوخ شده است و نباید استفاده شود.
برای جزئیات بیشتر به توضیحات ذیل smtp_tls_cert_file مراجعه کنید.
مثال:
smtp_tls_dcert_file = /etc/postfix/client-dsa.pem
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtp_tls_dkey_file (default: $smtp_tls_dcert_file)
فایل حاوی کلید خصوصی DSA کلاینت SMTP پُستفیکس در قالب PEM. این فایل میتواند با فایل گواهی DSA کلاینت SMTP پُستفیکس مشخصشده با $smtp_tls_dcert_file ترکیب شود. الگوریتم DSA منسوخ شده است و نباید استفاده شود.
کلید خصوصی باید بدون عبارت عبور (pass-phrase) قابل دسترسی باشد، یعنی نباید رمزگذاری شده باشد. مجوزهای فایل باید دسترسی فقطخواندنی به حساب مدیر سیستم («root») و عدم دسترسی به دیگران را اعطا کند.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtp_tls_eccert_file (default: empty)
فایل حاوی گواهی ECDSA کلاینت SMTP پُستفیکس در قالب PEM. این فایل همچنین ممکن است حاوی کلید خصوصی ECDSA کلاینت SMTP پُستفیکس باشد. در Postfix >= 3.4 روش ارجح برای پیکربندی کلیدها و گواهیهای کلاینت از طریق پارامتر «smtp_tls_chain_files» است.
برای جزئیات بیشتر به توضیحات ذیل smtp_tls_cert_file مراجعه کنید.
مثال:
smtp_tls_eccert_file = /etc/postfix/ecdsa-ccert.pem
این ویژگی در Postfix نسخه 2.6 و بالاتر، در صورتی که Postfix با OpenSSL نسخه 1.0.0 یا بالاتر کامپایل و پیوند شده باشد، در دسترس است.
smtp_tls_eckey_file (default: $smtp_tls_eccert_file)
فایل حاوی کلید خصوصی ECDSA کلاینت SMTP پُستفیکس در قالب PEM. این فایل میتواند با فایل گواهی ECDSA کلاینت SMTP پُستفیکس مشخصشده با $smtp_tls_eccert_file ترکیب شود. در Postfix >= 3.4 روش ارجح برای پیکربندی کلیدها و گواهیهای کلاینت از طریق پارامتر «smtp_tls_chain_files» است.
کلید خصوصی باید بدون عبارت عبور قابل دسترسی باشد، یعنی نباید رمزگذاری شده باشد. مجوزهای فایل باید دسترسی فقطخواندنی به حساب مدیر سیستم («root») و عدم دسترسی به دیگران را اعطا کند.
این ویژگی در Postfix نسخه 2.6 و بالاتر، در صورتی که Postfix با OpenSSL نسخه 1.0.0 یا بالاتر کامپایل و پیوند شده باشد، در دسترس است.
smtp_tls_enable_rpk (default: no)
درخواست از سرورهای SMTP دوردست برای ارسال کلید عمومی خام مطابق RFC7250 به جای گواهی X.509. این ویژگی و مشخصه خطمشی enable_rpk در صورت عدم پشتیبانی از کلید عمومی خام در پیادهسازی محلی TLS نادیده گرفته میشوند.
- در سطوح امنیتی «may»، «encrypt» و «fingerprint»، با تنظیم پارامتر «smtp_tls_enable_rpk = yes» یا با «enable_rpk = yes» در یک مدخل خطمشی، کلاینت SMTP پُستفیکس در مصافحه TLS نشان خواهد داد که دریافت کلید عمومی خام سرور را ترجیح میدهد، اما همچنان گواهی کلید عمومی سرور را خواهد پذیرفت.
- در سطح امنیتی «fingerprint»، با تنظیم پارامتر «smtp_tls_enable_rpk = yes» یا با «enable_rpk = yes» در یک مدخل خطمشی، احراز هویت سرور بر اساس اثر انگشت گواهی شکنندهتر میشود. حتی اگر کلید خصوصی و گواهی سرور بدون تغییر باقی بمانند، سرور SMTP دوردست پس از بهروزرسانی پیادهسازی TLS خود با پشتیبانی از کلید عمومی خام، به محض شروع به ارسال کلید عمومی خام به جای گواهی، در احراز هویت اثر انگشت شکست خواهد خورد (با فهرست اثر انگشتهای پیکربندیشده مطابقت نخواهد داشت). بنابراین، کلیدهای عمومی خام را برای مقاصد دوردستی که با اثر انگشت گواهی سرور احراز هویت میشوند فعال نکنید. کلیدهای عمومی خام را تنها باید برای سرورهایی فعال کنید که از طریق اثر انگشت کلید عمومیشان تطبیق داده میشوند.
- در سطوح امنیتی «verify» و «secure»، کلاینت SMTP پُستفیکس همواره تنظیم پارامتر smtp_tls_enable_rpk یا مشخصه خطمشی enable_rpk را نادیده میگیرد.
- در سطح امنیتی فرصتطلبانه «dane»، کلاینت SMTP پُستفیکس تنظیم پارامتر smtp_tls_enable_rpk یا مشخصه خطمشی enable_rpk را نادیده میگیرد (اما هنگام تنزل به سطح «may» یا «encrypt» آنها را رعایت خواهد کرد). هنگامی که تمام رکوردهای معتبر TLSA تنها کلیدهای عمومی سرور را مشخص کنند (بدون گواهی) و پیادهسازی محلی TLS از کلیدهای عمومی خام پشتیبانی کند، کلاینت در مصافحه TLS نشان میدهد که دریافت کلید عمومی خام را ترجیح میدهد، اما همچنان گواهی کلید عمومی را خواهد پذیرفت.
- در سطح
امنیتی
اجباری
«dane-only»،
کلاینت SMTP
پُستفیکس
همواره
تنظیم
پارامتر
smtp_tls_enable_rpk یا
مشخصه
خطمشی enable_rpk
را نادیده
میگیرد.
هنگامی که
تمام
رکوردهای
معتبر TLSA
تنها
کلیدهای
عمومی سرور
را مشخص
کنند (بدون
گواهی) و
پیادهسازی
محلی TLS از
کلیدهای
عمومی خام
پشتیبانی
کند،
کلاینت در
مصافحه TLS
نشان
میدهد که
دریافت
کلید عمومی
خام را
ترجیح
میدهد،
اما همچنان
گواهی کلید
عمومی را
خواهد
پذیرفت.
کلاینت SMTP پُستفیکس همیشه مایل است در صورت پیکربندی گواهی کلاینت و پشتیبانی پیادهسازی محلی TLS از کلیدهای عمومی خام، کلیدهای عمومی خام را به سرورهایی که آنها را درخواست میکنند ارسال نماید.
دستورات نمونه برای محاسبه چکیدههای SHA256 گواهی و کلید عمومی:
# SHA256 digest of the first certificate in "cert.pem" $ openssl x509 -in cert.pem -outform DER | openssl dgst -sha256 -c
# SHA256 digest of the SPKI of the first certificate in "cert.pem"
$ openssl x509 -in cert.pem -pubkey -noout |
openssl pkey -pubin -outform DER | openssl dgst -sha256 -c
# SHA256 digest of the SPKI of the first private key in "pkey.pem"
$ openssl pkey -in pkey.pem -pubout -outform DER |
openssl dgst -sha256 -c
این ویژگی در Postfix نسخه 3.9 و بالاتر در دسترس است.
smtp_tls_enforce_peername (default: yes)
در رمزگذاری اجباری TLS، ایجاب میکند که نام میزبان سرور SMTP دوردست با اطلاعات موجود در گواهی سرور SMTP دوردست مطابقت داشته باشد. طبق RFC 2487 نیازمندیهای بررسی نام میزبان برای کلاینتهای MTA مشخص نشده است.
این گزینه میتواند برای غیرفعال کردن بررسی دقیق نام طرف مقابل روی «no» تنظیم شود. این تنظیم بر نشستهایی که از طریق جدول smtp_tls_per_site کنترل میشوند تأثیری ندارد.
غیرفعال کردن اعتبارسنجی نام میزبان میتواند در یک محیط بسته که مراجع صدور گواهی ویژهای در آن ایجاد شدهاند منطقی باشد. در صورت عدم استفاده محتاطانه، این گزینه خطر حمله «مرد میانی» (man-in-the-middle) را ایجاد میکند (CommonName این مهاجم لاگ خواهد شد).
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است. در Postfix نسخه 2.3 و بالاتر به جای آن از smtp_tls_security_level استفاده کنید.
smtp_tls_enforce_sts_mx_patterns (default: yes)
تبدیل خطمشی TLS برگرفته از یک افزونه خطمشی STS: اتصال به یک میزبان MX تنها در صورتی که نام آن با هر یک از الگوهای میزبان MX خطمشی STS مطابقت داشته باشد، و تطبیق گواهی سرور با نام میزبان MX. این تنظیم تنها زمانی اعمال میشود که پشتیبانی TLSRPT در یک افزونه خطمشی STS فعال باشد، به طوری که مشخصههای خطمشی STS را به Postfix فوروارد کند. این قابلیت حتی اگر پشتیبانی TLSRPT در Postfix در زمان ساخت یا در زمان اجرا غیرفعال باشد نیز کار میکند.
بدون تنظیمات پیکربندی فوق برای Postfix و افزونههای STS، رفتار قدیمی پابرجا میماند: اتصال به هر میزبان MX فهرستشده در DNS، و تطبیق گواهی سرور با هر یک از الگوهای میزبان MX خطمشی STS.
این ویژگی در Postfix >= 3.10.5 در دسترس است.
smtp_tls_exclude_ciphers (default: empty)
فهرست رمزها یا انواع رمزهایی که باید از فهرست رمزهای کلاینت SMTP پُستفیکس در تمامی سطوح امنیتی TLS مستثنی شوند. این یک فهرست رمز OpenSSL نیست، بلکه فهرستی ساده است که با فاصلههای سفید و/یا کاما از هم جدا شدهاند. عناصر آن یک رمز منفرد یا یک یا چند ویژگی رمز جداشده با «+» هستند، که در این حالت تنها رمزهایی که با تمامی ویژگیها مطابقت داشته باشند مستثنی میشوند.
مثالها (برخی از این موارد باعث بروز مشکل خواهند شد):
smtp_tls_exclude_ciphers = aNULL smtp_tls_exclude_ciphers = MD5, DES smtp_tls_exclude_ciphers = DES+MD5 smtp_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5 smtp_tls_exclude_ciphers = kEDH+aRSA
تنظیم اول رمزهای ناشناس (anonymous) را غیرفعال میکند. تنظیم بعدی رمزهایی را که از الگوریتم چکیده MD5 یا الگوریتم رمزگذاری (تکی) DES استفاده میکنند غیرفعال میسازد. تنظیم بعدی رمزهایی را که از MD5 و DES با هم استفاده میکنند غیرفعال میکند. تنظیم بعدی دو رمز «AES256-SHA» و «DES-CBC3-MD5» را غیرفعال میکند. تنظیم آخر رمزهایی را که از تبادل کلید «EDH» همراه با احراز هویت RSA استفاده میکنند غیرفعال میسازد.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
smtp_tls_fingerprint_cert_match (default: empty)
فهرست اثر انگشتهای قابل قبول گواهی سرور SMTP دوردست برای سطح امنیت TLS «fingerprint» (smtp_tls_security_level = fingerprint). در این سطح امنیت، مراجع صدور گواهی (CA) استفاده نمیشوند و زمانهای انقضای گواهی نادیده گرفته میشوند. در عوض، گواهیهای سرور مستقیماً از طریق اثر انگشت گواهی یا اثر انگشت کلید عمومی آنها (Postfix نسخه 2.9 و بالاتر) تأیید اعتبار میشوند. اثر انگشت، یک چکیده پیام از گواهی سرور (یا کلید عمومی) است. الگوریتم چکیده از طریق پارامتر smtp_tls_fingerprint_digest انتخاب میشود.
دونقطههای بین هر جفت نیمبایت در مقدار اثر انگشت اختیاری هستند (Postfix >= 3.6). اینها در نسخههای پیشین Postfix الزامی بودند.
هنگامی که یک مدخل جدول smtp_tls_policy_maps سطح امنیت «fingerprint» را تعیین میکند، هر مشخصه «match» در آن مدخل فهرست اثر انگشتهای معتبر را برای مقصد مربوطه مشخص میسازد. چندین اثر انگشت را میتوان با جداکننده «|» در یک مشخصه match ترکیب کرد، یا اینکه از چندین مشخصه match بهره برد.
مثال: اعتبارسنجی اثر انگشت گواهی با mailhub داخلی. دو اثر انگشت منطبق فهرست شدهاند. relayhost ممکن است چندین میزبان فیزیکی پشت یک توزیعکننده بار (load-balancer) باشد که هر کدام کلید خصوصی/عمومی و گواهی خودامضاشده خود را دارند. متناوباً، یک relayhost واحد ممکن است در فرآیند جابهجایی از یک مجموعه کلید خصوصی/عمومی به مجموعهای دیگر باشد، و درست پیش از انتقال، به هر دو کلید اعتماد میشود.
relayhost = [mailhub.example.com]
smtp_tls_security_level = fingerprint
smtp_tls_fingerprint_digest = sha256
smtp_tls_fingerprint_cert_match =
cd:fc:d8:db:f8:c4:82:96:6c:...:28:71:e8:f5:8d:a5:0d:9b:d4:a6
dd:5c:ef:f5:c3:bc:64:25:36:...:99:36:06:ce:40:ef:de:2e:ad:a4
مثال: اعتبارسنجی اثر انگشت گواهی با مقاصد انتخابی. همانند مثال بالا، دو اثر انگشت منطبق را نشان میدهیم:
/etc/postfix/main.cf:
smtp_tls_policy_maps = lmdb:/etc/postfix/tls_policy
smtp_tls_fingerprint_digest = sha256
/etc/postfix/tls_policy:
example.com fingerprint
match=51:e9:af:2e:1e:40:1f:...:64:0a:30:35:2d:09:16:31:5a:eb:82:76
match=b6:b4:72:34:e2:59:cd:...:c2:ca:63:0d:4d:cc:2c:7d:84:de:e6:2f
برخی سیستمها به جای lmdb: از cdb:، hash:، یا dbm: استفاده میکنند.
پس از تغییر فایل tls_policy، دستور «postmap /etc/postfix/tls_policy» را اجرا کنید تا فایل نمایهشده از نوع پیشفرض (مجدداً) ساخته شود. برای تعیین صریح نوع، دستور «postmap type:/etc/postfix/tls_policy» را اجرا نمایید.
نوع فایل نمایهشده پیشفرض با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن انواع صریح در دسترس، دستور «postconf -m» را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه قابل مشاهده خواهند بود. از «postfix reload» برای رفع تأخیر استفاده کنید.
این ویژگی در Postfix نسخه 2.5 و بالاتر در دسترس است.
smtp_tls_fingerprint_digest (default: see postconf -d output)
الگوریتم چکیده پیام مورد استفاده برای ساخت اثر انگشتهای گواهی سرور SMTP دوردست. در سطح امنیت TLS «fingerprint» (smtp_tls_security_level = fingerprint)، گواهی سرور با تطبیق مستقیم اثر انگشت گواهی آن یا اثر انگشت کلید عمومی آن (Postfix نسخه 2.9 و بالاتر) تأیید اعتبار میشود. اثر انگشت، چکیده پیام گواهی سرور (یا کلید عمومی آن) با استفاده از الگوریتم انتخابشده است. با الگوریتم چکیدهای که در برابر حملات «پیشتصویر دوم» (second pre-image) مقاوم باشد، ساخت کلید عمومی جدید و گواهی منطبق (یا جفت کلید خصوصی/عمومی) که همان اثر انگشت را داشته باشد، امکانپذیر نیست.
الگوریتم پیشفرض در Postfix >= 3.6 همراه با تنظیم compatibility_level روی 3.6 یا بالاتر، sha256 است. در Postfix <= 3.5، الگوریتم پیشفرض md5 است.
الگوریتم منطبق بر بهترین شیوهها (best-practice) در حال حاضر sha256 است. پیشرفتهای اخیر در تحلیل رمز توابع درهمسازی منجر به منسوخ شدن md5 و sha1 به نفع sha256 شده است. با این حال، مادامی که حمله شناختهشدهای از نوع «پیشتصویر دوم» علیه الگوریتمهای قدیمیتر وجود نداشته باشد، استفاده از آنها در این زمینه، هرچند توصیه نمیشود، همچنان احتمالاً امن است.
در حالی که الگوریتمهای چکیده اضافی اغلب در libcrypto متعلق به OpenSSL در دسترس هستند، تنها آنهایی که توسط libssl در مجموعههای رمزی SSL استفاده میشوند در Postfix در دسترس قرار دارند. احتمالاً پشتیبانی از md5، sha1، sha256 و sha512 را خواهید یافت.
برای یافتن اثر انگشت یک فایل گواهی خاص، با یک الگوریتم چکیده مشخص، دستور زیر را اجرا کنید:
$ openssl x509 -noout -fingerprint -digest -in certfile.pem
متن سمت راست علامت «=» اثر انگشت مورد نظر است. برای مثال:
$ openssl x509 -noout -fingerprint -sha256 -in cert.pem SHA256 Fingerprint=D4:6A:AB:19:24:...:BB:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
برای استخراج اثر انگشت کلید عمومی از یک گواهی X.509، باید کلید عمومی را از گواهی استخراج کرده و چکیده مناسب از کدگذاری DER (ASN.1) آن را محاسبه کنید. با OpenSSL گزینه «-pubkey» از دستور «x509» کلید عمومی را همیشه در قالب «PEM» استخراج میکند. ما خروجی را به دستور دیگری از OpenSSL که کلید را به DER تبدیل میکند و سپس به دستور «dgst» پایپ میکنیم تا اثر انگشت محاسبه شود.
دستور واقعی برای تبدیل کلید به قالب DER به نسخه OpenSSL مورد استفاده بستگی دارد. از OpenSSL 1.0.0 به بعد، دستور «pkey» از تمامی انواع کلید پشتیبانی میکند.
# OpenSSL >= 1.0 with SHA-256 fingerprints.
$ openssl x509 -in cert.pem -noout -pubkey |
openssl pkey -pubin -outform DER |
openssl dgst -sha256 -c
(stdin)= 64:3f:1f:f6:e5:1e:d4:2a:56:...:fc:09:1a:61:98:b5:bc:7c:60:58
سرور و کلاینت SMTP پُستفیکس هنگام تنظیم لاگ TLS روی سطح 2 یا بالاتر، اثر انگشت گواهی طرف مقابل (برگ یا leaf) و اثر انگشت کلید عمومی را ثبت میکنند.
این ویژگی در Postfix نسخه 2.5 و بالاتر در دسترس است.
smtp_tls_force_insecure_host_tlsa_lookup (default: no)
جستجوی RRset مربوط به DANE TLSA حتی زمانی که نام میزبان یک نام مستعار (alias) نیست و رکوردهای آدرس آن در یک منطقه (zone) امضانشده قرار دارند. بعید است که این کار هرگز نتایج اعتبارسنجیشده با DNSSEC به همراه داشته باشد، زیرا در نبود DLV یا trust-anchorهای محلی غیرریشه، مناطق فرزندِ مناطق امضانشده نیز بدون امضا خواهند بود. انتظار میرود چنین سازوکارهایی صرفاً برای زیردامنه «_tcp» یک میزبان استفاده نشوند. متوقف کردن جستجوی TLSA RRset موجب کاهش تاخیر شده و از مشکلات احتمالی سازگاری با کارگزارهای نام (nameservers) در مناطق امضانشدهای که برای مدیریت TLSA RRset جدید آماده نیستند جلوگیری میکند.
این ویژگی در Postfix نسخه 2.11 در دسترس است.
smtp_tls_key_file (default: $smtp_tls_cert_file)
فایل حاوی کلید خصوصی RSA کلاینت SMTP در Postfix با قالب PEM. این فایل میتواند با فایل گواهی RSA کلاینت SMTP در Postfix که با $smtp_tls_cert_file مشخص شده، ادغام شود. در Postfix نسخه 3.4 و بالاتر، روش ارجح برای پیکربندی کلیدها و گواهیهای کلاینت، استفاده از پارامتر "smtp_tls_chain_files" است.
کلید خصوصی باید بدون عبارت عبور (passphrase) در دسترس باشد، یعنی نباید رمزگذاری شده باشد. مجوزهای فایل باید دسترسی فقطخواندنی به حساب کاربر ارشد سیستم ("root") بدهند و هیچ دسترسی به دیگران ندهند.
مثال:
smtp_tls_key_file = $smtp_tls_cert_file
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtp_tls_loglevel (default: 0)
فعال کردن گزارشگیری (logging) اضافی فعالیتهای TLS کلاینت SMTP در Postfix. هر سطح گزارشگیری، اطلاعات ثبتشده در سطوح پایینتر را نیز شامل میشود.
- 0 غیرفعال
کردن
گزارشگیری
فعالیتهای
TLS.
- 1 تنها ثبت
پیام خلاصه
پس از اتمام
دستتکانی
TLS - ثبت نشدن
خطاهای
اعتبارسنجی
زنجیره
اعتماد (trust-chain)
گواهی
کارگزار SMTP
دوردست، در
صورتی که
اعتبارسنجی
گواهی
کارگزار
الزامی
نباشد. در Postfix
نسخه 2.8 و
پیشتر،
ثبت پیام
خلاصه و ثبت
بدون قید و
شرط خطاهای
اعتبارسنجی
زنجیره
اعتماد.
- 2 فعال کردن
گزارشگیری
پرجزئیات
در
کتابخانه TLS
در Postfix، ثبت
عملیات
حافظه موقت
نشست (session cache) و
فعالسازی
گزارشگیری
OpenSSL از روند
دستتکانی
SSL.
- 3 همچنین
ثبت خروجی
هگزادسیمال
و اسکی (dump) از
فرایند
مذاکره TLS.
- 4 همچنین
ثبت خروجی
هگزادسیمال
و اسکی از
انتقال
کامل پس از
STARTTLS.
از "smtp_tls_loglevel = 2" یا بالاتر جز در موارد بروز مشکل استفاده نکنید. استفاده از سطح گزارشگیری 4 بههیچوجه توصیه نمیشود.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtp_tls_mandatory_ciphers (default: medium)
حداقل درجه رمزگذاری TLS (cipher grade) که کلاینت SMTP در Postfix برای رمزگذاری اجباری TLS استفاده میکند. مقدار پیشفرض "medium" برای بیشتر مقاصدی که میخواهید TLS را برای آنها اجباری کنید مناسب است و فراتر از توان روشهای تحلیل رمز کنونی است. برای اطلاعات درباره نحوه پیکربندی رمزها به ازای هر مقصد، smtp_tls_policy_maps را ببینید.
درجههای رمزگذاری زیر پشتیبانی میشوند:
- high
- تنها فعال
کردن
رمزهای OpenSSL
درجه "HIGH".
این تنظیم
ممکن است
زمانی
مناسب باشد
که تمام
مقاصد
اجباری TLS
(بهعنوان
مثال،
زمانی که
تمام
نامهها به
یک relayhost با
قابلیتهای
مناسب
هدایت
میشوند)
حداقل از یک
رمز درجه "HIGH"
پشتیبانی
کنند. فهرست
رمزهای
زیربنایی
از طریق
پارامتر
پیکربندی
tls_high_cipherlist مشخص
میشود که
اکیداً
توصیه
میگردد آن
را تغییر
ندهید.
- medium
- فعال کردن
رمزهای OpenSSL
درجه "MEDIUM" یا
بهتر. فهرست
رمزهای
زیربنایی
از طریق
پارامتر
پیکربندی
tls_medium_cipherlist مشخص
میشود که
اکیداً
توصیه
میگردد آن
را تغییر
ندهید.
- null
- تنها فعال
کردن
رمزهای OpenSSL از
نوع "NULL"؛ این
رمزها
احراز هویت
بدون
رمزگذاری
را فراهم
میکنند.
این تنظیم
تنها در
موارد
نادری
مناسب است
که همه
کارگزارها
برای
استفاده از
رمزهای NULL
آماده
باشند (به
طور معمول
در
کارگزارهای
TLS فعال نیست).
یک کاربرد
معقول،
کارگزار LMTP
است که روی
یک سوکت UNIX-domain
گوش میدهد
و برای
پشتیبانی
از رمزهای
"NULL"
پیکربندی
شده است.
فهرست
رمزهای
زیربنایی
از طریق
پارامتر
پیکربندی
tls_null_cipherlist مشخص
میشود که
اکیداً
توصیه
میگردد آن
را تغییر
ندهید.
- low
- فعال کردن
رمزهای OpenSSL
درجه "LOW" یا
قویتر. در Postfix
نسخه 3.8 و
بالاتر،
این درجه
رمزگذاری
همیشه با
"medium" یکسان
است.
نسخههای
اخیر OpenSSL از
هیچ رمز
درجه "LOW"
پشتیبانی
نمیکنند.
در
نسخههای
قبلی Postfix،
فهرست
رمزهای
زیربنایی
از طریق
پارامتر
پیکربندی
tls_low_cipherlist مشخص
میشد که
اکیداً
توصیه
میگردد آن
را تغییر
ندهید. این
درجه رمز
منسوخ
نباید (SHOULD NOT)
استفاده
شود.
- export
- فعال کردن
رمزهای OpenSSL
درجه "EXPORT" یا
قویتر. در Postfix
نسخه 3.8 و
بالاتر،
این درجه
رمزگذاری
همیشه با
"medium" یکسان
است.
نسخههای
اخیر OpenSSL از
هیچ رمز
درجه "EXPORT"
پشتیبانی
نمیکنند.
در
نسخههای
قبلی Postfix،
فهرست
رمزهای
زیربنایی
از طریق
پارامتر
پیکربندی
tls_export_cipherlist مشخص
میشد که
اکیداً
توصیه
میگردد آن
را تغییر
ندهید. این
درجه رمز
منسوخ
نباید (SHOULD NOT)
استفاده
شود.
فهرستهای رمز زیربنایی برای درجاتی غیر از "null" شامل رمزهای ناشناس (anonymous) نیز هستند، اما اگر کلاینت SMTP در Postfix برای اعتبارسنجی گواهیهای کارگزار پیکربندی شده باشد، این رمزها بهطور خودکار فیلتر میشوند. بسیار بعید است که نیازی به اقدام برای مستثنی کردن رمزهای ناشناس داشته باشید، زیرا در صورت لزوم بهطور خودکار مستثنی میشوند. اگر ناچارید رمزهای ناشناس را در سطوح امنیتی "may" یا "encrypt" (زمانی که کلاینت SMTP در Postfix به گواهیهای همتا نیاز ندارد یا از آنها استفاده نمیکند) مستثنی کنید، مقدار "smtp_tls_exclude_ciphers = aNULL" را تعیین کنید. برای مستثنی کردن رمزهای ناشناس صرفاً در هنگام اجباری بودن TLS، مقدار "smtp_tls_mandatory_exclude_ciphers = aNULL" را قرار دهید.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
smtp_tls_mandatory_exclude_ciphers (default: empty)
فهرست اضافی از رمزها یا انواع رمز برای مستثنی کردن از فهرست رمزهای کلاینت SMTP در Postfix در سطوح امنیتی اجباری TLS. این فهرست علاوه بر استثنائات فهرستشده با smtp_tls_exclude_ciphers عمل میکند (برای جزئیات نحو به آن مراجعه کنید).
از Postfix نسخه 2.6 به بعد، استثنائات اجباری رمزها میتواند از طریق ویژگی "exclude" در خطمشی TLS به ازای هر مقصد مشخص شود. برای نکات و مثالها به smtp_tls_policy_maps مراجعه کنید.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
smtp_tls_mandatory_protocols (default: see postconf -d output)
پروتکلهای TLS که کلاینت SMTP در Postfix با رمزگذاری اجباری TLS از آنها استفاده خواهد کرد. در main.cf مقادیر با فاصله، ویرگول یا دونقطه از هم جدا میشوند. در ویژگی "protocols" در جدول خطمشی (به smtp_tls_policy_maps مراجعه کنید)، تنها جداکننده معتبر دونقطه (:) است. مقدار خالی به معنای مجاز بودن تمام پروتکلها است.
نامهای پروتکل معتبر (به SSL_get_version(3) مراجعه کنید) عبارتند از "SSLv2"، "SSLv3"، "TLSv1"، "TLSv1.1"، "TLSv1.2" و "TLSv1.3". از Postfix نسخه 3.6، مقدار پیشفرض ">=TLSv1" است که TLS 1.0 را به عنوان پایینترین نسخه پروتکل TLS پشتیبانیشده تنظیم میکند (پایینتر را ببینید). نسخههای قدیمیتر از نحو استثنای "!" استفاده میکنند که در ادامه توضیح داده شده است.
از Postfix نسخه 3.6، روش ارجح برای محدود کردن دامنه پروتکلهای قابل قبول، تعیین پایینترین نسخه و/یا بالاترین نسخه قابل قبول پروتکل TLS است. برای تعیین حد پایین، عنصری به شکل ">=version" درج کنید که در آن version یکی از نامهای پروتکل TLS ذکر شده در بالا، یا یک عدد هگزادسیمال متناظر با نسخه پروتکل TLS مورد نظر است (0301 برای TLS 1.0، 0302 برای TLS 1.1، و غیره). برای حد بالا، از "<=version" استفاده کنید. نباید هیچ فاصلهای بین نمادهای ">=" یا "<=" و نام یا شماره پروتکل وجود داشته باشد.
شمارههای هگزادسیمال پروتکل امکان مشخص کردن حدود پروتکل برای نسخههای TLS شناختهشده توسط OpenSSL که ممکن است برای Postfix ناشناخته باشند را فراهم میکنند. آنها نمیتوانند با نحو قدیمی استثنا استفاده شوند. پیشوندهای "0" یا "0x" در ابتدا پشتیبانی میشوند، اما الزامی نیستند. بنابراین، "301"، "0301"، "0x301" و "0x0301" همگی معادل "TLSv1" هستند. نسخههای هگزادسیمال ناشناخته برای OpenSSL قادر به تنظیم حد بالا یا پایین نخواهند بود و یک هشدار ثبت خواهد شد. نسخههای هگزادسیمال فقط باید زمانی استفاده شوند که Postfix با نسخه آیندهای از OpenSSL پیوند خورده باشد که از TLS 1.4 یا بالاتر پشتیبانی میکند، اما Postfix هنوز از یک نام نمادین برای آن نسخه پروتکل پشتیبانی نمیکند.
مثال هگزادسیمال (Postfix >= 3.6):
# Allow only TLS 1.2 through (hypothetical) TLS 1.4, once supported # in some future version of OpenSSL (presently a warning is logged). smtp_tls_mandatory_protocols = >=TLSv1.2, <=0305 # Allow only TLS 1.2 and up: smtp_tls_mandatory_protocols = >=0x0303
در Postfix نسخه پایینتر از 3.6، هیچ پشتیبانی از حداقل یا حداکثر نسخه وجود ندارد و دامنه پروتکل از طریق استثنائات پروتکل پیکربندی میشود. برای الزام حداقل TLS 1.0، مقدار "smtp_tls_mandatory_protocols = !SSLv2, !SSLv3" را تنظیم کنید. فهرست کردن پروتکلها برای گنجاندن، به جای پروتکلهایی برای مستثنی کردن، پشتیبانی میشود اما توصیه نمیشود. نحو استثنا با رابط OpenSSL زیربنایی تطابق دقیقتری دارد.
هنگام استفاده از نحو استثنا، دقت کنید که دامنه پروتکلهای پشتیبانیشده توسط کلاینت SMTP در Postfix پیوسته باشد. هنگامی که یک نسخه پروتکل فعال است، غیرفعال کردن هر نسخه بالاتر بهطور ضمنی تمام نسخههای بالاتر از آن نسخه را غیرفعال میکند. بنابراین، به عنوان مثال:
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1.1
همچنین هر نسخه پروتکل بالاتر از TLSv1.1 را غیرفعال کرده و تنها "TLSv1" را فعال باقی میگذارد.
پشتیبانی از "TLSv1.3" در OpenSSL 1.1.1 معرفی شد. غیرفعال کردن این پروتکل از طریق "!TLSv1.3" از نسخه Postfix 3.4 (یا نسخههای وصلهشده >= 3.0.14، 3.1.10، 3.2.7 و 3.3.2) پشتیبانی میشود.
اگرچه اکثریت قریب به اتفاق کارگزارهای SMTP با رکوردهای DANE TLSA اکنون حداقل از TLS 1.2 پشتیبانی میکنند، شمار اندکی هنوز تنها از TLS 1.0 پشتیبانی مینمایند. اگر از "dane" یا "dane-only" استفاده میکنید، بهتر است TLSv1 را غیرفعال نکنید، مگر احتمالاً از طریق جدول خطمشی برای مقاصدی که مطمئن هستید از "TLSv1.2" پشتیبانی خواهند کرد.
برای اطلاعات بیشتر درباره سطوح امنیتی، مستندات پارامتر smtp_tls_policy_maps و TLS_README را ببینید.
مثال:
# Preferred syntax with Postfix >= 3.6: smtp_tls_mandatory_protocols = >=TLSv1.2, <=TLSv1.3 # Legacy syntax: smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
smtp_tls_note_starttls_offer (default: no)
ثبت نام میزبان (hostname) یک کارگزار SMTP دوردست که STARTTLS را ارائه میدهد در فایل گزارش، زمانی که TLS از قبل برای آن کارگزار فعال نشده است.
رکورد فایل گزارش بدین شکل است:
postfix/smtp[pid]: Host offered STARTTLS: [name.of.host]
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtp_tls_per_site (default: empty)
جدولهای جستجوی اختیاری حاوی خطمشی استفاده از TLS کلاینت SMTP در Postfix بر اساس مقصد گام بعدی (next-hop) و نام میزبان کارگزار SMTP دوردست. زمانی که هر دو جستجو موفقیتآمیز باشند، خطمشی اختصاصیتر per-site (مانند NONE، MUST و غیره) بر خطمشی عمومیتر (MAY) برتری یافته و خطمشی امنتر per-site (مانند MUST و غیره) بر خطمشی با امنیت کمتر (NONE) اولویت خواهد داشت. در Postfix نسخه 2.3 و بالاتر، استفاده از smtp_tls_per_site اکیداً نهی شده است: به جای آن از smtp_tls_policy_maps استفاده کنید.
استفاده از نام میزبان تنها (bare hostname) به عنوان کلید جستجوی جدول per-site توصیه نمیشود. همواره از مقصد کامل next-hop (محصور در [] همراه با پسوند احتمالی ":port") استفاده کنید. دامنه گیرنده یا next-hop ترابری با قابلیت MX بدون پسوند پورت ممکن است شبیه یک نام میزبان ساده به نظر برسد، اما همچنان یک destination مناسب است.
یک مقصد next-hop یا نام میزبان کارگزار را در سمت چپ مشخص کنید؛ استفاده از نویسههای عمومی (wildcard) مجاز نیست. مقصد next-hop یا دامنه گیرنده است، یا مقصدی که با جدول transport(5)، پارامتر relayhost یا پارامتر relay_transport مشخص شده است. در سمت راست، یکی از کلیدواژههای زیر را مشخص کنید:
- NONE
- به هیچ وجه
از TLS
استفاده
نشود. این
گزینه
نتیجه
جستجوی
کماهمیتتر
MAY را از
کلید
جستجوی
میزبان
جایگزین یا
next-hop لغو
میکند، و
بر تنظیمات
سراسری
smtp_use_tls، smtp_enforce_tls و
smtp_tls_enforce_peername تقدم
دارد.
- MAY
- اگر
کارگزار
پشتیبانی
خود را
اعلان کند،
تلاش برای
استفاده از
TLS، در غیر
این صورت
استفاده از
اتصال
رمزگذارینشده؛
پس از یک
دستتکانی
ناموفق TLS یا
نشست TLS، در
صورتی که
پیام به مدت
minimal_backoff_time در صف
ایمیل
مانده
باشد،
بازگشت به
متن آشکار
(plaintext). این سطح
اولویت
کمتری نسبت
به نتیجه
اختصاصیتر
(از جمله NONE)
از کلید
جستجوی
میزبان
جایگزین یا
next-hop دارد، و
اولویت
کمتری نسبت
به تنظیمات
سراسری
خاصتر "smtp_enforce_tls =
yes" یا "smtp_tls_enforce_peername = yes"
دارد.
- MUST_NOPEERMATCH
- الزام به
رمزگذاری
TLS، اما بدون
نیاز به
اینکه نام
میزبان
کارگزار SMTP
دوردست با
اطلاعات
موجود در
گواهی
کارگزار SMTP
دوردست
تطابق
داشته
باشد، یا
اینکه
گواهی
کارگزار
توسط یک
مرجع صدور
گواهی (CA)
معتبر صادر
شده باشد.
این گزینه
بر نتیجه با
امنیت کمتر
NONE یا نتیجه
با
اختصاصیت
کمتر MAY از
کلید
جستجوی
میزبان
جایگزین یا
next-hop برتری
دارد، و بر
تنظیمات
سراسری
smtp_use_tls، smtp_enforce_tls و
smtp_tls_enforce_peername اولویت
دارد.
- MUST
- الزام به
رمزگذاری
TLS، الزام به
تطابق نام
میزبان
کارگزار SMTP
دوردست با
اطلاعات
موجود در
گواهی
کارگزار SMTP
دوردست، و
الزام به
اینکه
گواهی
کارگزار SMTP
دوردست
توسط یک CA
معتبر صادر
شده باشد.
این گزینه
بر نتیجه با
امنیت کمتر
NONE یا MUST_NOPEERMATCH یا
نتیجه با
اختصاصیت
کمتر MAY از
کلید
جستجوی
میزبان
جایگزین یا
next-hop برتری
دارد، و
تنظیمات
سراسری
smtp_use_tls، smtp_enforce_tls و
smtp_tls_enforce_peername را
بازنویسی
میکند.
کلیدواژههای فوق متناظر با سطوح امنیتی "none"، "may"، "encrypt" و "verify" برای پارامتر جدید smtp_tls_security_level هستند که در Postfix 2.3 معرفی شد. از Postfix 2.3 به بعد، و مستقل از نحوه تعیین خطمشی، پارامترهای smtp_tls_mandatory_ciphers و smtp_tls_mandatory_protocols در زمان اجباری بودن رمزگذاری TLS اعمال میشوند. اتصالات با رمزگذاری اختیاری معمولاً تمام رمزهای درجه "export" و بهتر را فعال میکنند (به smtp_tls_ciphers و smtp_tls_protocols مراجعه کنید).
تا زمانی که سازوکار جستجوی امن DNS در دسترس نباشد، نامهای میزبان نادرست در پاسخهای MX یا CNAME میتوانند نام میزبان کارگزاری را که Postfix برای جستجوی خطمشی TLS و اعتبارسنجی گواهی کارگزار استفاده میکند تغییر دهند. حتی با تطابق کامل بین نام میزبان کارگزار و گواهی کارگزار، هیچ تضمینی وجود ندارد که Postfix به کارگزار صحیح متصل شده باشد. برای یک راهکار احتمالی، TLS_README (بخش Closing a DNS loophole with obsolete per-site TLS policies) را ببینید.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است. در Postfix نسخه 2.3 و بالاتر به جای آن از smtp_tls_policy_maps استفاده کنید.
smtp_tls_policy_maps (default: empty)
جدولهای جستجوی اختیاری حاوی خطمشی امنیتی TLS کلاینت SMTP در Postfix بر اساس مقصد گام بعدی (next-hop)؛ هنگامی که مقداری غیرخالی تعیین شود، پارامتر منسوخ smtp_tls_per_site را لغو میکند. برای بحث دقیقتر در مورد سطوح امنیتی TLS به TLS_README و برای پیکربندی تکمیلی مورد نیاز برای افزونههای MTA-STS به TLSRPT_README مراجعه کنید.
صفر یا چند جدول جستجو به صورت "type:name" را مشخص کنید که با فاصله یا ویرگول جدا شده باشند. جدولها به ترتیب مشخصشده جستجو میشوند تا زمانی که تطابقی یافت شود.
جدول خطمشی TLS بر اساس مقصد کامل next-hop نمایهگذاری میشود، که یا دامنه گیرنده است، یا عیناً next-hop مشخصشده در جدول transport، $local_transport، $virtual_transport، $relay_transport یا $default_transport. این مقدار شامل هرگونه کروشه محصورکننده و هر پسوند پورت غیرپیشفرض کارگزار مقصد میشود. پیشوند نوع سوکت LMTP (مثل inet: یا unix:) در کلید جستجو گنجانده نمیشود.
تنها دامنه next-hop، یا $myhostname با LMTP روی سوکتهای UNIX-domain، به عنوان نام next-hop برای اعتبارسنجی گواهی استفاده میشود. پورت و هر کروشه محصورکننده در کلید جستجوی جدول استفاده میشوند، اما برای اعتبارسنجی نام کارگزار استفاده نخواهند شد.
هنگامی که کلید جستجو یک نام دامنه بدون کروشههای محصورکننده یا هر پسوند :port باشد (معمولاً دامنه گیرنده)، و دامنه کامل در جدول یافت نشود، درست همانند جدول transport(5)، دامنه والد که با یک "." در ابتدا شروع میشود بهصورت بازگشتی تطبیق داده میشود. این ویژگی امکان تعیین یک خطمشی امنیتی را برای یک دامنه گیرنده و تمام زیردامنههای آن فراهم میکند.
نتیجه جستجو یک سطح امنیتی است، به دنبال آن فهرستی اختیاری از مشخصههای name=value جدا شده با فاصله و/یا ویرگول که تنظیمات مرتبط در main.cf را لغو میکنند. سطوح امنیتی TLS به ترتیب افزایش امنیت عبارتند از:
- none
- بدون TLS. هیچ
مشخصه
اضافی در
این سطح
پشتیبانی
نمیشود.
- may
- TLS
فرصتطلبانه
(Opportunistic TLS). از آنجا
که ارسال
بهصورت
متن آشکار
قابل قبول
است،
درخواست
امنیت TLS
بالاتر از
حد پیشفرض
صرفاً
سازگاری
متقابل را
کاهش
میدهد.
مشخصههای
اختیاری
«ciphers»، «exclude» و
«protocols» (موجود
برای TLS
فرصتطلبانه
در Postfix >= 2.6) و
مشخصه
«connection_reuse» (Postfix >= 3.4)
پارامترهای
پیکربندی
«smtp_tls_ciphers»،
«smtp_tls_exclude_ciphers»،
«smtp_tls_protocols» و
«smtp_tls_connection_reuse» را
بازنویسی
میکنند. در
جدول
شیوهنامه
(policy table)، چند
رمز،
پروتکل یا
رمز
مستثنیشده
باید با
دونقطه (colon) از
یکدیگر جدا
شوند، زیرا
مقادیر
مشخصهها
نباید حاوی
فاصله خالی
یا کاما
باشند. در
این سطح و
بالاتر،
مشخصه
اختیاری
«servername» (موجود
در Postfix >= 3.4)
پارامتر
سراسری
«smtp_tls_servername» را
بازنویسی
کرده و
امکان
پیکربندی
افزونه SNI
ارسالی به
کارگزار SMTP
دوردست را
بهازای هر
مقصد فراهم
میسازد.
مشخصه
اختیاری
«enable_rpk» (Postfix >= 3.9)
پارامتر
smtp_tls_enable_rpk در main.cf را
بازنویسی
میکند.
هنگام شکست
دستتکانی
TLS
فرصتطلبانه،
Postfix اتصال را
با غیرفعال
کردن TLS
مجدداً
تکرار
میکند. این
امر امکان
تحویل
ایمیل به
مقصدهایی
با
پیادهسازیهای
ناسازگار TLS
را فراهم
میآورد.
- encrypt
- رمزنگاری
اجباری TLS.
ایمیل تنها
در صورتی
تحویل داده
میشود که
کارگزار SMTP
دوردست
قابلیت STARTTLS را
ارائه دهد و
دستتکانی
TLS با موفقیت
انجام شود.
در این سطح
و بالاتر،
مشخصه
اختیاری
«protocols»
پارامتر
smtp_tls_mandatory_protocols در main.cf،
مشخصه
اختیاری
«ciphers»
پارامتر
smtp_tls_mandatory_ciphers در main.cf،
مشخصه
اختیاری
«exclude» (Postfix >= 2.6)
پارامتر
smtp_tls_mandatory_exclude_ciphers در main.cf و
مشخصه
اختیاری
«connection_reuse» (Postfix >= 3.4)
پارامتر
smtp_tls_connection_reuse در main.cf را
بازنویسی
میکند. در
جدول
شیوهنامه،
چند رمز،
پروتکل یا
رمز
مستثنیشده
باید با
دونقطه جدا
شوند، زیرا
مقادیر
مشخصهها
نباید حاوی
فاصله خالی
یا کاما
باشند.
مشخصه
اختیاری
«enable_rpk» (Postfix >= 3.9)
پارامتر
smtp_tls_enable_rpk در main.cf را
بازنویسی
میکند.
- dane
- TLS
فرصتطلبانه
بر پایه DANE.
شیوهنامه
TLS برای مقصد
از طریق
رکوردهای TLSA
در DNSSEC به دست
میآید. اگر
هیچ رکورد TLSA
یافت نشود،
سطح امنیتی
مؤثر مورد
استفاده may
خواهد بود.
اگر
رکوردهای TLSA
یافت شوند
اما هیچیک
قابل
استفاده
نباشند،
سطح امنیتی
مؤثر encrypt است.
هنگامی که
رکوردهای TLSA
قابل
استفاده
برای
کارگزار SMTP
دوردست به
دست آیند،
گواهی
کارگزار
باید با
رکوردهای TLSA
مطابقت
داشته باشد.
پشتیبانی
از احراز
هویت TLS با RFC 7672 (DANE)
و DNSSEC در Postfix 2.11 و
بالاتر در
دسترس است.
مشخصه
اختیاری
«connection_reuse» (Postfix >= 3.4)
پارامتر
smtp_tls_connection_reuse در main.cf را
بازنویسی
میکند.
هنگامی که
سطح امنیتی
مؤثر may
باشد،
مشخصههای
اختیاری
«ciphers»، «exclude» و
«protocols» (Postfix >= 2.6)
پارامترهای
پیکربندی
«smtp_tls_ciphers»،
«smtp_tls_exclude_ciphers» و
«smtp_tls_protocols» را
بازنویسی
میکنند.
هنگامی که
سطح امنیتی
مؤثر encrypt
باشد،
مشخصههای
اختیاری
«ciphers»، «exclude» و
«protocols» (Postfix >= 2.6)
پارامترهای
پیکربندی
«smtp_tls_mandatory_ciphers»،
«smtp_tls_mandatory_exclude_ciphers» و
«smtp_tls_mandatory_protocols» را
بازنویسی
میکنند.
- dane-only
- DANE TLS اجباری.
شیوهنامه
TLS برای مقصد
از طریق
رکوردهای TLSA
در DNSSEC به دست
میآید. اگر
رکورد TLSA
یافت نشود،
یا هیچیک
قابل
استفاده
نباشند،
اتصالی به
کارگزار
برقرار
نمیشود.
هنگامی که
رکوردهای TLSA
قابل
استفاده
برای
کارگزار SMTP
دوردست به
دست آیند،
گواهی
کارگزار
باید با
رکوردهای TLSA
مطابقت
داشته باشد.
پشتیبانی
از احراز
هویت TLS با RFC 7672 (DANE)
و DNSSEC در Postfix 2.11 و
بالاتر در
دسترس است.
مشخصههای
اختیاری
«ciphers»، «exclude» و
«protocols» (Postfix >= 2.6)
پارامترهای
پیکربندی
«smtp_tls_mandatory_ciphers»،
«smtp_tls_mandatory_exclude_ciphers» و
«smtp_tls_mandatory_protocols» را
بازنویسی
میکنند.
مشخصه
اختیاری
«connection_reuse» (Postfix >= 3.4)
پارامتر
smtp_tls_connection_reuse در main.cf را
بازنویسی
میکند.
- fingerprint
- اعتبارسنجی
اثرانگشت
(fingerprint) گواهی. در
دسترس در Postfix 2.5
و بالاتر.
در این سطح
امنیتی،
هیچ مرجع
صدور گواهی
(CA)
قابلاعتمادی
وجود ندارد.
زنجیره
اعتماد
گواهی،
تاریخ
انقضا و ...
بررسی
نمیشوند.
در عوض،
مشخصه
اختیاری
«match» در جدول
شیوهنامه
یا پارامتر
smtp_tls_fingerprint_cert_match در main.cf،
فهرستی از
اثرانگشتهای
گواهی یا
اثرانگشتهای
کلید عمومی
(Postfix 2.9 و بالاتر)
مربوط به
گواهیهای
قابلقبول
کارگزار را
مشخص
میکند.
الگوریتم
چکیدهسازی
(digest) مورد
استفاده
برای
محاسبه
اثرانگشت
توسط
پارامتر
smtp_tls_fingerprint_digest
تعیین
میشود. چند
اثرانگشت
را میتوان
با
جداکننده
«|» در یک
مشخصه match
ترکیب کرد،
یا از چند
مشخصه match
بهره برد.
نویسه «:»
بهعنوان
جداکننده
استفاده
نمیشود
زیرا بین هر
جفت رقم
(هگزادسیمال)
اثرانگشت
قرار
میگیرد.
مشخصههای
اختیاری
«ciphers»، «exclude» و
«protocols» (Postfix >= 2.6)
پارامترهای
پیکربندی
«smtp_tls_mandatory_ciphers»،
«smtp_tls_mandatory_exclude_ciphers» و
«smtp_tls_mandatory_protocols» را
بازنویسی
میکنند.
مشخصه
اختیاری
«connection_reuse» (Postfix >= 3.4)
پارامتر
smtp_tls_connection_reuse در main.cf را
بازنویسی
میکند.
مشخصه
اختیاری
«enable_rpk» (Postfix >= 3.9)
پارامتر
smtp_tls_enable_rpk در main.cf را
بازنویسی
میکند.
- verify
- اعتبارسنجی
اجباری TLS.
ایمیل تنها
در صورتی
تحویل
میشود که
دستتکانی
TLS موفق
باشد،
زنجیره
گواهی
کارگزار SMTP
دوردست
قابل
اعتبارسنجی
باشد و نام DNS
موجود در
گواهی با
معیارهای
تطابق
مشخصشده
همخوانی
داشته باشد.
در این سطح
امنیتی،
جستجوهای DNS MX
بهاندازه
کافی امن
فرض
میشوند و
نام
اعتبارسنجیشده
در گواهی
کارگزار
احتمالاً
از طریق
جستجوهای DNS MX
بدون احراز
هویت به دست
آمده است.
مشخصه
اختیاری
«match»
پارامتر
smtp_tls_verify_cert_match در main.cf را
بازنویسی
میکند. در
جدول
شیوهنامه،
چند الگو و
راهبرد
تطابق باید
با دونقطه
از یکدیگر
جدا شوند.
در عمل،
کنترل صریح
بر تطابق
بیشتر با
شیوهنامه
«secure» (توضیح
داده شده در
زیر) متداول
است.
مشخصههای
اختیاری
«ciphers»، «exclude» و
«protocols» (Postfix >= 2.6)
پارامترهای
پیکربندی
«smtp_tls_mandatory_ciphers»،
«smtp_tls_mandatory_exclude_ciphers» و
«smtp_tls_mandatory_protocols» را
بازنویسی
میکنند. در
Postfix >= 2.11 مشخصه
اختیاری
«tafile» در جدول
شیوهنامه،
اعتبارسنجی
زنجیره
اعتماد را
همانند
پارامتر
«smtp_tls_trust_anchor_file»
تغییر
میدهد.
مشخصه «tafile»
میتواند
چندین بار
برای
بارگذاری
چندین فایل
لنگر
اعتماد (trust-anchor)
قید شود.
مشخصه
اختیاری
«connection_reuse» (Postfix >= 3.4)
پارامتر
smtp_tls_connection_reuse در main.cf را
بازنویسی
میکند.
- secure
- اعتبارسنجی
امن گواهی.
ایمیل تنها
در صورتی
تحویل
میشود که
دستتکانی
TLS
موفقیتآمیز
باشد،
زنجیره
گواهی
کارگزار SMTP
دوردست
قابل تأیید
باشد و یک
نام DNS در
گواهی با
معیار
تطابق
مشخصشده
مطابقت کند.
در این سطح
امنیتی،
جستجوهای DNS MX
هرچند
احتمالاً
برای تعیین
آدرسهای IP
درگاه گام
بعدی (next-hop)
کاندید
استفاده
میشوند،
اما برای
اعتبارسنجی
peername در TLS
بهاندازه
کافی امن
فرض
نمیشوند.
در عوض، نام
پیشفرضی
که در گواهی
کارگزار
بررسی
میشود
مستقیماً
از next-hop گرفته
شده، یا
صریحاً از
طریق مشخصه
اختیاری
«match» که
پارامتر
smtp_tls_secure_cert_match در main.cf را
بازنویسی
میکند،
تعیین
میشود. در
جدول
شیوهنامه،
چند الگو و
راهبرد
تطابق باید
با دونقطه
از هم جدا
شوند. مشخصه
match بیش از همه
زمانی
سودمند است
که چندین
دامنه توسط
یک کارگزار
مشترک
پشتیبانی
شوند:
مدخلهای
شیوهنامه
برای
دامنههای
اضافی،
قواعد
تطابق با
گواهی
دامنه اصلی
را تعیین
میکنند.
هرچند
بازنویسیهای
جدول transport که
دامنههای
ثانویه را
به nexthop اصلی
هدایت
میکنند
نیز
اعتبارسنجی
امن را
مقدور
میسازند،
اما هنگام
تغییر
مالکیت
دامنهها
یا انتصاب
مجدد به
درگاههای
جدید، خطر
تحویل به
مقصد
اشتباه را
به همراه
دارند. با
روش مشخصه
«match»،
مسیریابی
مختل
نمیشود و
در صورت
شکست
اعتبارسنجی
میزبان MX
جدید،
تحویل
ایمیل به
تعویق
میافتد (deferred).
مشخصههای
اختیاری
«ciphers»، «exclude» و
«protocols» (Postfix >= 2.6)
پارامترهای
پیکربندی
«smtp_tls_mandatory_ciphers»،
«smtp_tls_mandatory_exclude_ciphers» و
«smtp_tls_mandatory_protocols» را
بازنویسی
میکنند. در
Postfix >= 2.11 مشخصه
«tafile»
بهصورت
اختیاری
اعتبارسنجی
زنجیره
اعتماد را
همانند
پارامتر
«smtp_tls_trust_anchor_file»
تغییر
میدهد.
مشخصه «tafile»
میتواند
چند بار
برای
بارگذاری
چند فایل trust-anchor
قید شود.
مشخصه
اختیاری
«connection_reuse» (Postfix >= 3.4)
پارامتر
smtp_tls_connection_reuse در main.cf را
بازنویسی
میکند.
مثال:
/etc/postfix/main.cf:
smtp_tls_policy_maps = lmdb:/etc/postfix/tls_policy
# Postfix 2.5 and later.
#
# The default digest is sha256 with Postfix >= 3.6 and
# compatibility level >= 3.
#
smtp_tls_fingerprint_digest = sha256
/etc/postfix/tls_policy:
example.edu none
example.mil may
example.gov encrypt protocols=TLSv1
example.com verify ciphers=high
example.net secure
.example.net secure match=.example.net:example.net
[mail.example.org]:587 secure match=nexthop
# Postfix 2.5 and later
[thumb.example.org] fingerprint
match=b6:b4:72:34:e2:59:cd:...:c2:ca:63:0d:4d:cc:2c:7d:84:de:e6:2f
match=51:e9:af:2e:1e:40:1f:...:64:0a:30:35:2d:09:16:31:5a:eb:82:76
بهجای :lmdb برخی سیستمها از :cdb، :hash یا :dbm استفاده میکنند.
نکته: راهبرد «hostname» اگر در تنظیمی غیرپیشفرض از smtp_tls_secure_cert_match یا در مشخصه «match» در جدول شیوهنامه قید شود، میتواند سطح «secure» را در برابر جعل DNS (DNS forgery) آسیبپذیر سازد. در محیطهایی که امنیت DNS تضمین نشده است، از راهبرد «hostname» برای پیکربندیهای کانال امن استفاده نکنید.
پس از تغییر فایل tls_policy، دستور «postmap /etc/postfix/tls_policy» را جهت ساخت (یا بازسازی) فایل نمایهسازیشده از نوع پیشفرض اجرا کنید. برای تعیین یک نوع صریح، دستور «postmap type:/etc/postfix/tls_policy» را اجرا نمایید.
نوع فایل نمایهسازیشده پیشفرض با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن انواع صریح موجود، دستور «postconf -m» را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه اعمال خواهند شد. برای رفع این تأخیر از «postfix reload» استفاده کنید.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
smtp_tls_protocols (default: see 'postconf -d' output)
پروتکلهای TLS که کلاینت SMTP در Postfix هنگام رمزنگاری TLS فرصتطلبانه استفاده خواهد کرد. در main.cf مقادیر با فاصله، کاما یا دونقطه از هم جدا میشوند. در مشخصه «protocols» در جدول شیوهنامه (به smtp_tls_policy_maps مراجعه کنید) تنها جداکننده معتبر دونقطه است. مقدار خالی به معنای مجاز بودن تمام پروتکلها است.
نامهای معتبر پروتکل (به SSL_get_version(3) مراجعه کنید) شامل «SSLv2»، «SSLv3»، «TLSv1»، «TLSv1.1»، «TLSv1.2» و «TLSv1.3» هستند. از Postfix 3.6 به بعد، مقدار پیشفرض «>=TLSv1» است که TLS 1.0 را بهعنوان پایینترین نسخه پروتکل TLS پشتیبانیشده تعیین میکند (در زیر ببینید). نسخههای قدیمیتر از ساختار استثناکردن با «!» استفاده میکنند که آن نیز در ادامه شرح داده شده است.
از Postfix 3.6، روش ارجح برای محدود کردن محدوده پروتکلهای قابل قبول، تعیین پایینترین نسخه پروتکل TLS و/یا بالاترین نسخه پروتکل TLS قابل قبول است. برای تعیین حد پایین، عنصری به شکل «>=version» درج کنید که در آن version یکی از نامهای پروتکل TLS ذکرشده در بالا، یا یک عدد هگزادسیمال متناظر با نسخه پروتکل TLS مورد نظر است (0301 برای TLS 1.0، 0302 برای TLS 1.1 و غیره). برای حد بالا، از «<=version» استفاده کنید. نباید هیچ فاصله خالی میان نمادهای «>=» یا «<=» و نام پروتکل یا عدد وجود داشته باشد.
شمارههای هگزادسیمال پروتکل تعیین کرانهای پروتکل را برای نسخههای TLS که برای OpenSSL شناختهشده هستند اما ممکن است برای Postfix شناختهشده نباشند ممکن میسازد. این شمارهها را نمیتوان با ساختار قدیمی استثنا استفاده کرد. پیشوندهای آغازین «0» یا «0x» پشتیبانی میشوند، اما الزامی نیستند. بنابراین «301»، «0301»، «0x301» و «0x0301» همگی معادل «TLSv1» هستند. نسخههای هگزادسیمال ناشناخته برای OpenSSL در تعیین حد بالا یا پایین شکست خواهند خورد و یک هشدار ثبت میشود. نسخههای هگزادسیمال تنها زمانی باید استفاده شوند که Postfix با نسخهای آتی از OpenSSL پیوند خورده باشد که از TLS 1.4 یا بالاتر پشتیبانی میکند، اما Postfix هنوز از نام نمادین برای آن نسخه پروتکل پشتیبانی نمیکند.
مثال هگزادسیمال (Postfix >= 3.6):
# Allow only TLS 1.0 through (hypothetical) TLS 1.4, once supported # in some future version of OpenSSL (presently a warning is logged). smtp_tls_protocols = >=TLSv1, <=0305 # Allow only TLS 1.0 and up: smtp_tls_protocols = >=0x0301
در Postfix < 3.6 هیچ پشتیبانیای از حداقل یا حداکثر نسخه وجود ندارد، و محدوده پروتکل از طریق مستثنیکردن پروتکلها پیکربندی میشود. برای الزام حداقل TLS 1.0، مقدار «smtp_tls_protocols = !SSLv2, !SSLv3» را تنظیم کنید. فهرست کردن پروتکلها جهت گنجاندن، بهجای مستثنیکردن پروتکلها، پشتیبانی میشود اما توصیه نمیگردد. فرم استثنا با رابط لایه زیرین OpenSSL همخوانی دقیقتری دارد.
هنگام استفاده از ساختار استثنا، دقت کنید تا محدوده پروتکلهای ارائهشده توسط کلاینت SSL/TLS پیوسته باشد. هنگامی که یک نسخه پروتکل فعال است، غیرفعال کردن هر نسخه بالاتر بهطور ضمنی تمام نسخههای بالاتر از آن نسخه را غیرفعال میکند. بنابراین، برای مثال:
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1.1همچنین هر نسخه پروتکل بالاتر از TLSv1.1 را غیرفعال کرده و تنها «TLSv1» را فعال باقی میگذارد.
پشتیبانی از «TLSv1.3» در OpenSSL 1.1.1 معرفی شد. غیرفعال کردن این پروتکل از طریق «!TLSv1.3» از Postfix 3.4 (یا نسخههای وصلهشده >= 3.0.14، 3.1.10، 3.2.7 و 3.3.2) پشتیبانی میشود.
مثال:
# Preferred syntax with Postfix >= 3.6: smtp_tls_protocols = >=TLSv1, <=TLSv1.3 # Legacy syntax: smtp_tls_protocols = !SSLv2, !SSLv3
این ویژگی در Postfix 2.6 و بالاتر در دسترس است.
smtp_tls_scert_verifydepth (default: 9)
عمق اعتبارسنجی برای گواهیهای کارگزار SMTP دوردست. اگر CA صادرکننده در یک فایل CA محلی فهرست شده باشد، عمق ۱ کافی است.
عمق اعتبارسنجی پیشفرض جهت سازگاری با رفتار نسخههای قبلی Postfix برابر با ۹ است (پیشفرض OpenSSL). پیش از Postfix 2.5، مقدار پیشفرض ۵ بود اما این حد در عمل اعمال نمیشد. اگر این مقدار را روی عددی پایینتر از پیشفرض تنظیم کرده باشید، اکنون ممکن است اعتبارسنجی گواهیهایی با زنجیرههای اعتماد طولانیتر با شکست مواجه شود. زنجیرههای گواهی با ۱ یا ۲ مرجع CA متداول هستند، زنجیرههای عمیقتر نادرترند و در عمل هر عددی بین ۵ تا ۹ باید کافی باشد. میتوانید عدد کمتری را انتخاب کنید اگر، برای مثال، به گواهیهایی که مستقیماً توسط یک CA صادرکننده امضا شدهاند اعتماد دارید اما به CAهایی که به آنها تفویض اختیار کرده است اعتماد ندارید.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtp_tls_secure_cert_match (default: nexthop, dot-nexthop)
نحوه اعتبارسنجی peername در گواهی کارگزار توسط کلاینت SMTP در Postfix برای سطح امنیتی TLS «secure». در یک مدخل جدول شیوهنامه TLS سطح «secure» ($smtp_tls_policy_maps)، مشخصه اختیاری «match» این تنظیم main.cf را بازنویسی میکند.
این پارامتر یک یا چند الگو یا راهبرد را مشخص میکند که با کاما، فاصله خالی یا دونقطه از یکدیگر جدا شدهاند. در جدول شیوهنامه تنها جداکننده معتبر نویسه دونقطه است.
برای شرح ساختار نگارشی الگو و راهبرد، به پارامتر smtp_tls_verify_cert_match مراجعه کنید. در این زمینه باید از راهبرد «hostname» اجتناب شود، زیرا در نبود یک DNS جهانی امن، استفاده از نتایج جستجوهای MX در اعتبارسنجی گواهی در برابر حملات فعال مرد میانی (man-in-the-middle) بر روی DNS ایمن نیست.
نمونه تنظیم main.cf:
smtp_tls_secure_cert_match = nexthop
نمونه بازنویسی جدول شیوهنامه:
example.net secure match=example.com:.example.com .example.net secure match=example.com:.example.com
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
smtp_tls_security_level (default: Postfix >= 3.11: may; Postfix < 3.11: empty)
سطح امنیتی پیشفرض SMTP TLS برای کلاینت SMTP در Postfix. هنگامی که مقداری غیرخالی تعیین شود، پارامترهای منسوخ smtp_use_tls، smtp_enforce_tls و smtp_tls_enforce_peername بازنویسی میشوند؛ هنگامی که مقداری برای این پارامترهای منسوخ تعیین نشده باشد، سطح امنیتی پیشفرض SMTP TLS برابر با may (compatibility_level >= 3.11) یا none (compatibility_level < 3.11) خواهد بود.
یکی از سطوح امنیتی زیر را تعیین کنید:
- none
- بدون TLS. از TLS
استفاده
نخواهد شد
مگر اینکه
برای
مقصدهای
مشخصی از
طریق smtp_tls_policy_maps
فعال شده
باشد.
- may
- TLS
فرصتطلبانه.
در صورتی که
کارگزار SMTP
دوردست از TLS
پشتیبانی
کند از آن
استفاده
میشود، در
غیر این
صورت از متن
ساده (plaintext)
استفاده
میگردد؛
پس از شکست
دستتکانی
یا نشست TLS،
چنانچه
پیام به مدت
minimal_backoff_time در صف
ایمیل
مانده
باشد،
پسگرد (fallback)
به متن ساده
انجام
میشود. از
آنجا که
ارسال
بهصورت
متن آشکار
قابل قبول
است،
تقاضای
امنیت TLS
قویتر از
پیشفرض
صرفاً
قابلیت
همکاری و
سازگاری
متقابل را
کاهش
میدهد.
پارامترهای
پیکربندی
«smtp_tls_ciphers» و
«smtp_tls_protocols» (Postfix >= 2.6)
امکان
کنترل
پروتکلها
و درجه
رمزهای
مورد
استفاده در
TLS
فرصتطلبانه
را فراهم
میکنند. در
نسخههای
قبلی، درجه
رمز TLS
فرصتطلبانه
همواره «export»
است و هیچ
پروتکلی
غیرفعال
نیست.
هنگامی که
دستتکانیهای
TLS با شکست
مواجه
شوند،
اتصال
مجدداً با
غیرفعال
بودن TLS
تکرار
میشود. این
امر اجازه
تحویل
ایمیل به
مقصدهایی
با
پیادهسازیهای
ناسازگار TLS
را میدهد.
- encrypt
- رمزنگاری
اجباری TLS. از
آنجا که
حداقل سطح
امنیت مد
نظر است،
منطقی است
که در مورد
نسخههای
پروتکل و
سایفرهای
به اندازه
کافی امن
صریح عمل
شود. در این
سطح امنیتی
و بالاتر،
پارامترهای
smtp_tls_mandatory_protocols و smtp_tls_mandatory_ciphers
در main.cf
پروتکلهای
TLS و حداقل
درجه سایفر
را که مدیر
سیستم برای
نشستهای
رمزنگاریشده
اجباری به
اندازه
کافی امن
میداند
مشخص
میکنند.
این سطح
امنیتی
پیشفرض
مناسبی
برای
سیستمهایی
که ایمیل به
اینترنت
ارسال
میکنند
نیست.
- dane
- TLS
فرصتطلبانه
مبتنی بر DANE.
در این سطح
امنیتی،
خطمشی TLS
برای مقصد
از طریق DNSSEC به
دست میآید.
برای اعمال
خطمشی TLSA،
زون DNS دامنه
مقصد باید
امضا شده
باشد و
سیستمعامل
کلاینت Postfix SMTP
باید برای
ارسال
پرسوجوهای
DNS خود به یک
سرور نام
بازگشتی DNS
با قابلیت
اعتبارسنجی
رکوردهای
امضاشده
پیکربندی
شود. زون DNS هر
میزبان MX
نیز باید
امضا شود و
رکوردهای DANE TLSA
(RFC 7672) را که
نحوه
اعتبارسنجی
گواهی TLS آن
میزبان MX را
مشخص
میسازند،
منتشر کند.
رکوردهای TLSA
تقدمی بر
الگوریتم
عادی
انتخاب
میزبان SMTP MX
ندارند؛
اگر برخی از
میزبانهای
MX از TLSA
پشتیبانی
کنند و برخی
دیگر
نکنند،
امنیت TLS از
تحویلی به
تحویل دیگر
متفاوت
خواهد بود.
پیکربندی
معقول
میزبانهای
MX و DNS بر عهده
مالک دامنه
است. جهت
پیکربندی
کلاینت Postfix SMTP
برای
جستجوهای DNSSEC
به مستندات
پارامتر
smtp_dns_support_level در main.cf
مراجعه
کنید. در
صورت پیدا
نشدن
رکوردهای TLSA
اعتبارسنجیشده
با DNSSEC، سطح
موثر امنیت
tls برابر "may"
خواهد بود.
چنانچه
رکوردهای TLSA
یافت شوند
ولی همگی
غیرقابل
استفاده
باشند، سطح
امنیتی
موثر "encrypt"
است. برای
انتخاب
پروتکل و
سایفر، سطح
امنیتی "dane"
مشابه سطح
امنیتی "mandatory"
رفتار
میکند و
سایفرها و
پروتکلهای
ضعیف
غیرفعال
میشوند. از
آنجا که DANE
گواهیهای
سرور را
احراز هویت
میکند،
مجموعههای
سایفر "aNULL"
به طور
خودکار در
این سطح
کنار
گذاشته
میشوند و
نیازی به
تنظیم دستی
آنها نیست.
احراز هویت
RFC 7672 (DANE) TLS در Postfix
نسخه 2.11 و
بالاتر
موجود است.
- dane-only
- TLS اجباری
مبتنی بر DANE.
کاملاً
مشابه "dane"
است، با این
تفاوت که
احراز هویت
DANE TLSA الزامی
است. هیچ
بازگشتی (fallback)
به "may" یا "encrypt"
در صورت
نبود یا
غیرقابل
استفاده
بودن
رکوردهای TLSA
وجود ندارد.
احراز هویت
RFC 7672 (DANE) TLS در Postfix
نسخه 2.11 و
بالاتر در
دسترس است.
- fingerprint
- اعتبارسنجی
اثر انگشت
گواهی. در
این سطح
امنیتی،
هیچ مرجع
صدور گواهی
(CA) مورد
اعتمادی
وجود ندارد.
زنجیره
اعتماد
گواهی،
تاریخ
انقضا و
موارد دیگر
بررسی
نمیشوند.
در عوض،
پارامتر
smtp_tls_fingerprint_cert_match اثر
انگشت
گواهی یا
اثر انگشت
کلید عمومی
(Postfix 2.9 و بالاتر)
مربوط به
گواهی
معتبر سرور
را فهرست
میکند.
الگوریتم
خلاصهسازی
برای
محاسبه اثر
انگشت توسط
پارامتر
smtp_tls_fingerprint_digest
تعیین
میشود.
موجود در Postfix
نسخه 2.5 و
بالاتر.
- verify
- اعتبارسنجی
اجباری TLS. در
این سطح
امنیتی،
فرض بر امن
بودن
جستجوهای DNS MX
است، و نام
تاییدشده
در گواهی
سرور
معمولاً به
طور
غیرمستقیم
از طریق
جستجوهای
احرازهویتنشده
DNS MX به دست
میآید.
پارامتر
smtp_tls_verify_cert_match نحوه
بررسی نام
سرور را
کنترل
میکند. در
عمل، کنترل
صریح بر
تطابق در
سطح "secure" (شرح
در زیر)
متداولتر
است. این
سطح امنیتی
پیشفرض
مناسبی
برای
سیستمهایی
که ایمیل به
اینترنت
ارسال
میکنند
نیست.
- secure
- کانال امن TLS.
در این سطح
امنیتی،
جستجوهای DNS
MX، حتی اگر
برای یافتن
آدرسهای IP
درگاههای
نامزد nexthop
استفاده
شوند، برای
اعتبارسنجی
نام سرور
مقابل (peername) در TLS
به اندازه
کافی امن
تلقی
نمیشوند.
در عوض، نام
پیشفرض
تاییدشده
در گواهی
سرور از
دامنه nexthop طبق
پارامتر
smtp_tls_secure_cert_match
استخراج
میشود.
قاعده
تطابق
پیشفرض
این است که
نام گواهی
سرور با
دامنه nexthop یا
زیردامنهای
از آن برابر
باشد. این
سطح امنیتی
پیشفرض
مناسبی
برای
سیستمهای
تحویل
ایمیل به
اینترنت
نیست.
مثالها:
# No TLS. Formerly: smtp_use_tls=no and smtp_enforce_tls=no. smtp_tls_security_level = none
# Opportunistic TLS. smtp_tls_security_level = may # Do not tweak opportunistic ciphers or protocols unless it is essential # to do so (if a security vulnerability is found in the SSL library that # can be mitigated by disabling a particular protocol or raising the # cipher grade). smtp_tls_ciphers = medium smtp_tls_protocols = >=TLSv1 # Legacy (Postfix < 3.6) syntax: smtp_tls_protocols = !SSLv2, !SSLv3
# Mandatory (high-grade) TLS encryption. smtp_tls_security_level = encrypt smtp_tls_mandatory_ciphers = high
# Authenticated TLS 1.2 or better matching the nexthop domain or a # subdomain. smtp_tls_security_level = secure smtp_tls_mandatory_ciphers = high smtp_tls_mandatory_protocols = >=TLSv1.2 smtp_tls_secure_cert_match = nexthop, dot-nexthop
# Certificate fingerprint verification (Postfix >= 2.5).
# The CA-less "fingerprint" security level only scales to a limited
# number of destinations. As a global default rather than a per-site
# setting, this is practical only when mail for all recipients is sent
# to a central mail hub.
relayhost = [mailhub.example.com]
smtp_tls_security_level = fingerprint
smtp_tls_mandatory_protocols = >=TLSv1.2
smtp_tls_mandatory_ciphers = high
smtp_tls_fingerprint_cert_match =
3D:95:34:51:...:40:99:C0:C1
EC:3B:2D:B0:...:A3:9D:72:F6
این قابلیت در Postfix نسخه 2.3 و بالاتر موجود است.
smtp_tls_servername (default: empty)
نام اختیاری جهت ارسال به کارگزار SMTP دوردست در افزونه Server Name Indication (SNI) پروتکل TLS. هنگام استفاده از DANE برای احراز هویت سرور، افزونه SNI همیشه فعال است؛ در این حالت نام ارسالی SNI منطبق بر الزام RFC7672 بوده و این پارامتر نادیده گرفته میشود.
برخی از سرورهای SMTP از نام SNI دریافتشده برای انتخاب زنجیره گواهی مناسب بهره میبرند. هرچند این کار ممکن است سازگاری با چنین سرورهایی را افزایش دهد، اما میتواند سازگاری با سرورهایی را که در نبود گواهی برای نام درخواستشده ارتباط را قطع میکنند کاهش دهد. چنین سرورهایی باید زنجیره گواهی پیشفرضی را برگزینند و به برقراری ارتباط ادامه دهند، اما برخی این رفتار را ندارند. از این رو، در نبود DANE، هیچ نام SNI به صورت پیشفرض فرستاده نمیشود.
نام SNI باید یک نام میزبان معتبر DNS یا یکی از مقادیر اختصاصی hostname یا nexthop باشد که به ترتیب نام میزبان دوردست یا دامنه nexthop را انتخاب میکنند. نامهای DNS برای SNI باید در قالب A-label (punycode) باشند. نامهای نامعتبر اخطار خطای پیکربندی ایجاد کرده و تحویل ایمیل را به تعویق میاندازند.
به استثنای حالت استفاده از relayhost برای هدایت کلیه نامهها، تنها مقدار غیرخالی منطقی در main.cf برای این پارامتر مقدار hostname است. مقادیر غیرخالی دیگر صرفاً بر پایه تفکیک مقصد از طریق صفت servername در جدول خطمشی TLS پستفیکس کاربرد دارند. در صورت تردید، این پارامتر را خالی رها کرده و SNI را به تفکیک مقصد تنظیم کنید.
این قابلیت در Postfix نسخه 3.4 و بالاتر موجود است.
smtp_tls_session_cache_database (default: empty)
نام فایل حاوی حافظه پنهان نشستهای اختیاری TLS کلاینت Postfix SMTP. نوع پایگاهدادهای انتخاب شود که از پیمایش کامل (enumeration) پشتیبانی کند، مانند lmdb یا btree؛ نیازی به پشتیبانی از دسترسی همروند نیست. اگر فایل وجود نداشته باشد، ساخته میشود. دیمن smtp(8) مستقیماً از این پارامتر استفاده نمیکند، بلکه کش به صورت غیرمستقیم در دیمن tlsmgr(8) پیادهسازی شده است. در نتیجه، بازنویسیهای master.cf برای این پارامتر به ازای هر نمونه smtp اثری ندارد. توجه کنید هر یک از پایگاههای داده کش تحت پشتیبانی دیمن tlsmgr(8): $smtpd_tls_session_cache_database و $smtp_tls_session_cache_database (و در Postfix نسخه 2.3 و بالاتر $lmtp_tls_session_cache_database) باید مجزا ذخیره شوند. ذخیره همزمان چند کش در یک پایگاه داده در حال حاضر امکانپذیر نیست.
نکته: پایگاههای داده dbm مناسب نیستند؛ دادههای نشست TLS فراتر از اندازه مجاز آنهاست.
از نسخه 2.5، پستفیکس هنگام باز کردن این فایل از دسترسی root استفاده نمیکند. فایل اکنون باید درون data_directory با مالکیت Postfix قرار گیرد. برای سهولت مهاجرت، تلاش جهت باز کردن فایل درون پوشههای متفرقه، به پوشه data_directory پستفیکس تغییر مسیر داده و اخطاری ثبت خواهد شد.
مثال:
smtp_tls_session_cache_database = lmdb:/var/lib/postfix/smtp_scache smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_scache
این قابلیت در Postfix نسخه 2.2 و بالاتر موجود است.
smtp_tls_session_cache_timeout (default: 3600s)
زمان انقضای اطلاعات حافظه پنهان نشستهای TLS کلاینت Postfix SMTP. پاکسازی حافظه پنهان به صورت دورهای هر $smtp_tls_session_cache_timeout ثانیه یکبار انجام میشود. مشابه $smtp_tls_session_cache_database، این پارامتر در دیمن tlsmgr(8) اجرا میشود؛ بنابراین بازنویسی آن در master.cf برای هر نمونه smtp مقدور نیست.
از Postfix نسخه 2.11، این مقدار نمیتواند بیش از 100 روز باشد. در صورت تعیین مقدار <= 0، ذخیرهسازی نشستها در کش غیرفعال خواهد شد. چنانچه مقداری مثبت و کمتر از 2 دقیقه تنظیم شود، حداقل مجاز یعنی 2 دقیقه در نظر گرفته میشود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری تعیینکننده واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix نسخه 2.2 و بالاتر موجود است.
smtp_tls_trust_anchor_file (default: empty)
یک یا چند فایل با ساختار PEM حاوی گواهیهای لنگر اعتماد (trust-anchor) و/یا کلیدهای عمومی. در صورت پر بودن این پارامتر، مراجع ریشه صدور گواهی (Root CA) در CAfile و CApath دیگر معتبر دانسته نمیشوند؛ کلاینت Postfix SMTP منحصراً به زنجیرههای گواهی امضاشده توسط لنگرهای اعتماد موجود در فایلهای تعیینشده اعتماد خواهد کرد. گواهیها و کلیدهای عمومی لنگر اعتماد منقضی نمیشوند و الزامی به ریشه بودن (خودامضا بودن) آنها نیست؛ حتی میتوانند در صورت تمایل گواهیهای میانی باشند. بدین جهت، این گواهیها ممکن است در میان زنجیره ارائهشده توسط کارگزار SMTP راه دور نیز جای گیرند و هر گواهی صادرکننده بالادستی تاییدنشده نادیده گرفته خواهد شد. مسیرها را به کمک کاما یا فاصله جدا کنید.
فایل PEM لنگر اعتماد، چه در main.cf تعریف شود و چه به ازای هر مقصد، در صورت استفاده از زندان chroot باید در دسترس کلاینت Postfix SMTP باشد. فایل لنگر اعتماد صرفاً باید شامل گواهیها و کلیدهای عمومی باشد (فاقد کلید خصوصی) و کاربر غیرممتاز $mail_owner امکان خواندن آن را داشته باشد. این شیوه، پیوند دادن مقاصد خاص به مجموعهای مشخص از CAها یا کلیدهای عمومی را بدون نیاز به اعتماد یکسان به همان مراجع برای کلیه مقاصد میسر میسازد.
این پارامتر در main.cf به کار پیکربندیهای تکمنظورهای میآید که فقط با گروه ثابتی از کارگزارهای SMTP تبادل ایمیل دارند. در اکثر موارد، این فایلها به تفکیک مقصد از طریق صفت "tafile" در سطوح "verify" و "secure" درون smtp_tls_policy_maps تعریف میشوند.
سازوکار بنیادین در جهت پشتیبانی از استاندارد RFC 7672 (DANE TLSA) پیاده شده که روشهای امن ارزیابی گواهیهای TLS سرور را از بستر DNS برای کلاینت SMTP تعریف میکند.
اگر لنگرهای اعتماد باید کلید عمومی باشند، به کمک OpenSSL میتوان یک کلید عمومی PEM را از فایل گواهی PEM X.509 به صورت زیر استخراج کرد:
$ openssl x509 -in cert.pem -out ta-key.pem -noout -pubkey
این قابلیت در Postfix نسخه 2.11 و بالاتر موجود است.
smtp_tls_verify_cert_match (default: hostname)
نحوه اعتبارسنجی نام طرف ارتباط (peername) در گواهی سرور توسط کلاینت Postfix SMTP برای سطح امنیتی "verify". صفت اختیاری "match" درون جدول خطمشی ($smtp_tls_policy_maps) مقدار این پارامتر را بازنویسی میکند.
این پارامتر شامل یک یا چند الگو یا راهبرد است که با کاما، فاصله یا دونقطه تفکیک میشوند. در جدول خطمشی تنها جداکننده مجاز، علامت دونقطه (:) است.
الگوها، نام دامنه یا پسوندهای آن را مشخص میکنند:
- example.com
- تطابق با
دامنه example.com؛
یکی از
نامهای
گواهی سرور
باید با example.com
همخوانی
داشته باشد.
بزرگی و
کوچکی حروف
نادیده
گرفته
میشود.
- .example.com
- تطابق با
زیردامنههای
example.com؛ نام
گواهی سرور
باید شامل
چند بخش و
به دنبال آن
پسوند .example.com
باشد. بزرگی
و کوچکی
حروف
نادیده
گرفته
میشود.
راهبردها نگاشت دامنه nexthop به نام مورد انتظار در گواهی سرور را مشخص میسازند:
- nexthop
- بررسی در
برابر
دامنه nexthop؛ یا
دامنه
گیرنده
است، یا
مسیر
ترنسپورت
تنظیمشده
برای
دامنه،
پیراسته از
پیشوند
سوکت،
کروشهها و
پورت. در
صورت عدم
مهار
پرسوجوهای
MX، این نام
دامنه پیش
از تفکیک MX
است و نه
نتیجه آن.
برای تحویل
LMTP از طریق
سوکتهای
یونیکس،
نام nexthop همان
$myhostname است. این
روش سازگار
با سیاست
"secure" است.
بزرگی و
کوچکی حروف
نادیده
گرفته
میشود.
- dot-nexthop
- مشابه
بالا، اما
شامل
نامهایی
درون گواهی
که
زیردامنه nexthop
هستند نیز
میشود.
بزرگی و
کوچکی حروف
نادیده
گرفته
میشود.
- hostname
- تطابق بر
اساس نام
میزبان
سرور که
معمولاً از
پرسوجوی
احرازهویتنشده
DNS MX حاصل
میشود.
برای LMTP روی
سوکت
یونیکس،
نام معتبر
$myhostname است. این
شیوه منطبق
بر
کلیدواژه
"MUST" در جدول
منسوخشده
smtp_tls_per_site بوده و
برای سطح
امنیتی "verify"
مناسب است.
اگر برای
مهار
پرسوجوی
MX، دامنه nexthop
داخل کروشه
محصور شده
باشد،
راهبرد "hostname"
معادل "nexthop"
عمل خواهد
کرد. بزرگی
و کوچکی
حروف
نادیده
گرفته
میشود.
نمونه مقداردهی در main.cf:
smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop
نمونه بازنویسی درون جدول خطمشی:
example.com verify match=hostname:nexthop .example.com verify match=example.com:.example.com:hostname
این قابلیت در Postfix نسخه 2.3 و بالاتر موجود است.
smtp_tls_wrappermode (default: no)
الزام کلاینت Postfix SMTP به اتصال از طریق پروتکل SUBMISSIONS (که قبلاً SMTPS نامیده میشد) به جای استفاده از فرمان STARTTLS.
این حالت نیازمند تنظیم "smtp_tls_security_level = encrypt" یا مقادیر سختگیرانهتر است.
مثال: تحویل کلیه مکاتبات برونسازمانی از طریق سرویس submissions کارگزار "mail.example.com":
/etc/postfix/main.cf:
# Client-side SUBMISSIONS requires "encrypt" or stronger.
smtp_tls_security_level = encrypt
smtp_tls_wrappermode = yes
# The [] suppress MX lookups.
relayhost = [mail.example.com]:submissions
نمونههای جامعتر و راهنماهای مرتبط با نسخههای پیشین پستفیکس در فایل TLS_README مستند شده است.
این قابلیت در Postfix نسخه 3.0 و بالاتر موجود است.
smtp_tlsrpt_enable (default: no)
فعالسازی پشتیبانی از اعلانهای RFC 8460 TLSRPT. دامنه دریافتکننده ایمیل میتواند یک خطمشی TLSRPT در DNS منتشر کند تا خلاصه دورهای اتصالات موفق و ناموفق SMTP بر بستر TLS به سرورهای MX خود را درخواست نماید. این ویژگی مستلزم آن است که Postfix با یک کتابخانه پشتیبانیکننده از TLSRPT کامپایل شده باشد.
برای نمونههای پیکربندی و الزامات بیشتر برای افزونههای smtp_tls_policy_maps مربوط به MTA-STS، به TLSRPT_README مراجعه کنید.
این ویژگی در Postfix نسخه 3.10 و بالاتر در دسترس است.
smtp_tlsrpt_skip_reused_handshakes (default: Postfix >= 3.11: no, Postfix 3.10: yes)
هنگامی که روی "yes" تنظیم شود، وضعیت TLSRPT را فقط برای نشستهای "جدید" TLS گزارش میدهد. هنگامی که روی "no" تنظیم شود، وضعیت TLSRPT را برای دستتکانیهای پروتکل TLS که از یک نشست TLS مذاکرهشده قبلی استفاده مجدد میکنند نیز گزارش میدهد.
نکته: در صورت استفاده مجدد از یک اتصال SMTP بر بستر TLS، دستتکانی دوم یا بعدی TLS برای گزارش وجود نخواهد داشت.
این ویژگی در Postfix نسخه 3.10 و بالاتر در دسترس است.
smtp_tlsrpt_socket_name (default: empty)
نام مسیر سوکت دیتاگرام دامنه یونیکس (UNIX-domain datagram socket) که توسط یک سرویس گزارشدهی محلی TLSRPT مدیریت میشود. زمانی که "smtp_tlsrpt_enable = yes" باشد، این پارامتر باید یک نام مسیر (مطلق یا نسبی نسبت به $queue_directory) را مشخص کند.
برای نمونههای پیکربندی و الزامات بیشتر برای افزونههای smtp_tls_policy_maps مربوط به MTA-STS، به TLSRPT_README مراجعه کنید.
این ویژگی در Postfix نسخه 3.10 و بالاتر در دسترس است.
smtp_use_tls (default: no)
حالت فرصتطلبانه (Opportunistic mode): استفاده از TLS زمانی که سرور SMTP دوردست پشتیبانی از STARTTLS را اعلام کند، در غیر این صورت ارسال ایمیل به صورت متن آشکار (رمزنشده) انجام میشود. هشدار: برخی از سرورهای SMTP حتی در صورتی که پیکربندی نشده باشند، STARTTLS را پیشنهاد میدهند. در Postfix نسخه کمتر از 2.3، اگر دستتکانی TLS با شکست مواجه شود و سرور دیگری در دسترس نباشد، تحویل به تعویق افتاده و ایمیل در صف باقی میماند. اگر این مسئله مایه نگرانی است، به جای آن از ویژگی smtp_tls_per_site استفاده کنید.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است. در Postfix نسخه 2.3 و بالاتر به جای آن از smtp_tls_security_level استفاده کنید.
smtp_xforward_timeout (default: 300s)
محدودیت زمانی کلاینت Postfix SMTP برای ارسال دستور XFORWARD و دریافت پاسخ سرور SMTP دوردست.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtpd_authorized_verp_clients (default: $authorized_verp_clients)
کلاینتهای SMTP دوردستی که مجاز به تعیین دستور XVERP هستند. این دستور درخواست میکند که ایمیل به ازای هر گیرنده و با نشانی بازگشتی اختصاصی برای هر گیرنده تحویل داده شود.
بهطور پیشفرض، هیچ کلاینتی مجاز به تعیین XVERP نیست.
نام این پارامتر در نسخه 2.1 پستفیکس تغییر کرد. مقدار پیشفرض با Postfix نسخه 2.0 سازگار با گذشته است.
فهرستی از الگوهای network/netmask جدا شده با ویرگول و/یا فاصله خالی مشخص کنید. ماسک تعداد بیتهای بخش شبکه یک نشانی میزبان را مشخص میکند. همچنین میتوانید نامهای میزبان یا دامنههای .domain (نقطه ابتدایی باعث تطبیق دامنه با هر نامی در زیرمجموعه آن میشود)، الگوهای "/file/name" یا "type:table" را مشخص نمایید. الگوی "/file/name" با محتویات آن جایگزین میشود؛ جدول جستجوی "type:table" زمانی مطابقت داده میشود که یک مدخل جدول با رشته جستجو تطبیق یابد (نتیجه جستجو نادیده گرفته میشود). خطوط طولانی را با شروع خط بعد با فاصله خالی ادامه دهید. برای مستثنی کردن یک نشانی یا بلوک شبکه از فهرست، "!pattern" را مشخص کنید. قالب "!/file/name" تنها در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
نکته: اطلاعات نشانی IPv6 باید درون [] در مقدار smtpd_authorized_verp_clients و در فایلهای مشخصشده با "/file/name" درج شود. نشانیهای IPv6 حاوی نویسه ":" بوده و در غیر این صورت با الگوی "type:table" اشتباه گرفته میشوند.
smtpd_authorized_xclient_hosts (default: empty)
کلاینتهای SMTP دوردستی که مجاز به استفاده از ویژگی XCLIENT هستند. این دستور اطلاعات کلاینت SMTP دوردست را که برای کنترل دسترسی استفاده میشود، رونویسی (override) میکند. کاربرد متداول آن برای فیلترهای محتوای مبتنی بر SMTP، برنامههای مشابه fetchmail یا آزمایش قوانین دسترسی سرور SMTP است. برای جزئیات بیشتر به سند XCLIENT_README مراجعه کنید.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
بهطور پیشفرض، هیچ کلاینتی مجاز به مشخص کردن XCLIENT نیست.
فهرستی از الگوهای network/netmask جدا شده با ویرگول و/یا فاصله خالی مشخص کنید. ماسک تعداد بیتهای بخش شبکه یک نشانی میزبان را مشخص میکند. همچنین میتوانید نامهای میزبان یا دامنههای .domain (نقطه ابتدایی باعث تطبیق دامنه با هر نامی در زیرمجموعه آن میشود)، الگوهای "/file/name" یا "type:table" را مشخص نمایید. الگوی "/file/name" با محتویات آن جایگزین میشود؛ جدول جستجوی "type:table" زمانی مطابقت داده میشود که یک مدخل جدول با رشته جستجو تطبیق یابد (نتیجه جستجو نادیده گرفته میشود). خطوط طولانی را با شروع خط بعد با فاصله خالی ادامه دهید. برای مستثنی کردن یک نشانی یا بلوک شبکه از فهرست، "!pattern" را مشخص کنید. قالب "!/file/name" تنها در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
نکته: اطلاعات نشانی IPv6 باید درون [] در مقدار smtpd_authorized_xclient_hosts و در فایلهای مشخصشده با "/file/name" درج شود. نشانیهای IPv6 حاوی نویسه ":" بوده و در غیر این صورت با الگوی "type:table" اشتباه گرفته میشوند.
smtpd_authorized_xforward_hosts (default: empty)
کلاینتهای SMTP دوردستی که مجاز به استفاده از ویژگی XFORWARD هستند. این دستور اطلاعاتی را فوروارد میکند که برای بهبود ثبت وقایع (logging) پس از فیلترهای محتوای مبتنی بر SMTP استفاده میشود. برای جزئیات به سند XFORWARD_README مراجعه کنید.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
بهطور پیشفرض، هیچ کلاینتی مجاز به مشخص کردن XFORWARD نیست.
فهرستی از الگوهای network/netmask جدا شده با ویرگول و/یا فاصله خالی مشخص کنید. ماسک تعداد بیتهای بخش شبکه یک نشانی میزبان را مشخص میکند. همچنین میتوانید نامهای میزبان یا دامنههای .domain (نقطه ابتدایی باعث تطبیق دامنه با هر نامی در زیرمجموعه آن میشود)، الگوهای "/file/name" یا "type:table" را مشخص نمایید. الگوی "/file/name" با محتویات آن جایگزین میشود؛ جدول جستجوی "type:table" زمانی مطابقت داده میشود که یک مدخل جدول با رشته جستجو تطبیق یابد (نتیجه جستجو نادیده گرفته میشود). خطوط طولانی را با شروع خط بعد با فاصله خالی ادامه دهید. برای مستثنی کردن یک نشانی یا بلوک شبکه از فهرست، "!pattern" را مشخص کنید. قالب "!/file/name" تنها در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
نکته: اطلاعات نشانی IPv6 باید درون [] در مقدار smtpd_authorized_xforward_hosts و در فایلهای مشخصشده با "/file/name" درج شود. نشانیهای IPv6 حاوی نویسه ":" بوده و در غیر این صورت با الگوی "type:table" اشتباه گرفته میشوند.
smtpd_banner (default: $myhostname ESMTP $mail_name)
متنی که پس از کد وضعیت 220 در بنر خوشامدگویی SMTP قرار میگیرد. برخی افراد مایلند نسخه نرمافزار ایمیل اعلان شود. بهطور پیشفرض، Postfix نسخهای را نمایش نمیدهد.
شما باید myhostname$ را در ابتدای متن مشخص کنید. این مورد توسط پروتکل SMTP الزامی است.
مثال:
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
smtpd_client_auth_rate_limit (default: 0)
حداکثر تعداد دستورات AUTH که هر کلاینت مجاز است در واحد زمان به این سرویس ارسال کند، صرف نظر از اینکه Postfix واقعاً آن دستورات را بپذیرد یا خیر. واحد زمان توسط پارامتر پیکربندی anvil_rate_time_unit مشخص میشود.
بهطور پیشفرض، هیچ محدودیتی بر روی تعداد دستورات AUTH ارسالی توسط کلاینت وجود ندارد.
برای غیرفعال کردن این ویژگی، مقدار 0 را مشخص کنید.
هشدار: هدف این ویژگی محدود کردن سوءاستفاده است. نباید برای تنظیم ترافیک مشروع ایمیل استفاده شود.
این ویژگی در Postfix نسخه 3.1 و بالاتر در دسترس است.
smtpd_client_connection_count_limit (default: 50)
تعداد اتصالات همزمانی که هر کلاینت مجاز است با این سرویس برقرار کند. بهطور پیشفرض، محدودیت روی نصف مقدار پیشفرض محدودیت فرایند تنظیم شده است.
برای غیرفعال کردن این ویژگی، مقدار 0 را مشخص کنید.
هشدار: هدف این ویژگی محدود کردن سوءاستفاده است. نباید برای تنظیم ترافیک مشروع ایمیل استفاده شود.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtpd_client_connection_limit_exceptions (default: $mynetworks)
در Postfix نسخه 2.2 به smtpd_client_event_limit_exceptions تغییر نام یافت.
smtpd_client_connection_rate_limit (default: 0)
حداکثر تعداد تلاشهای اتصال که هر کلاینت مجاز است در واحد زمان با این سرویس برقرار کند. واحد زمان با پارامتر پیکربندی anvil_rate_time_unit مشخص میشود.
بهطور پیشفرض، کلاینت میتواند در هر واحد زمانی تا جایی که Postfix قادر به پذیرش باشد اتصال برقرار کند.
برای غیرفعال کردن این ویژگی، مقدار 0 را مشخص کنید.
هشدار: هدف این ویژگی محدود کردن سوءاستفاده است. نباید برای تنظیم ترافیک مشروع ایمیل استفاده شود.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
مثال:
smtpd_client_connection_rate_limit = 1000
smtpd_client_event_limit_exceptions (default: $mynetworks)
کلاینتهایی که از محدودیتهای smtpd_client_*_count/rate_limit مستثنی هستند. برای قواعد نحوی مقدار پارامتر، به توضیحات پارامتر mynetworks مراجعه کنید.
بهطور پیشفرض، کلاینتهای موجود در شبکههای مورد اعتماد مستثنی هستند. فهرستی از بلوکهای شبکه، نامهای میزبان یا دامنههای .domain (نقطه ابتدایی باعث تطبیق دامنه با هر نامی در زیرمجموعه آن میشود) را مشخص نمایید.
نکته: اطلاعات نشانی IPv6 باید درون [] در مقدار smtpd_client_event_limit_exceptions و در فایلهای مشخصشده با "/file/name" درج شود. نشانیهای IPv6 حاوی نویسه ":" بوده و در غیر این صورت با الگوی "type:table" اشتباه گرفته میشوند.
تطبیق الگوی نامهای دامنه توسط وجود یا عدم وجود "smtpd_client_event_limit_exceptions" در مقدار پارامتر parent_domain_matches_subdomains کنترل میشود (Postfix نسخه 3.0 و بالاتر).
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtpd_client_ipv4_prefix_length (default: 32)
تجمیع آمار smtpd_client_*_count و smtpd_client_*_rate بر اساس بلوکهای شبکه IPv4 با پیشوند شبکه مشخصشده. این تجمیع برای نگهداری شمارندهها از منابع کمتری از anvil(8) استفاده میکند. بهطور پیشفرض، تجمیع برای IPv4 غیرفعال است.
این ویژگی در Postfix نسخه 3.8 و بالاتر در دسترس است.
smtpd_client_ipv6_prefix_length (default: 84)
تجمیع آمار smtpd_client_*_count و smtpd_client_*_rate بر اساس بلوکهای شبکه IPv6 با پیشوند شبکه مشخصشده. این تجمیع برای نگهداری شمارندهها از منابع کمتری از anvil(8) استفاده میکند. بهطور پیشفرض، تجمیع برای IPv6 فعال است.
این ویژگی در Postfix نسخه 3.8 و بالاتر در دسترس است.
smtpd_client_message_rate_limit (default: 0)
حداکثر تعداد درخواستهای تحویل پیام که هر کلاینت مجاز است در واحد زمان به این سرویس ارسال کند، صرف نظر از اینکه Postfix واقعاً آن پیامها را بپذیرد یا خیر. واحد زمان با پارامتر پیکربندی anvil_rate_time_unit مشخص میشود.
بهطور پیشفرض، کلاینت میتواند در واحد زمان به هر میزانی که Postfix قادر به پذیرش باشد درخواست تحویل پیام ارسال کند.
برای غیرفعال کردن این ویژگی، مقدار 0 را مشخص کنید.
هشدار: هدف این ویژگی محدود کردن سوءاستفاده است. نباید برای تنظیم ترافیک مشروع ایمیل استفاده شود.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
مثال:
smtpd_client_message_rate_limit = 1000
smtpd_client_new_tls_session_rate_limit (default: 0)
حداکثر تعداد نشستهای جدید (ذخیرهنشده در حافظه موقت) TLS که یک کلاینت SMTP دوردست مجاز است در واحد زمان با این سرویس مذاکره کند. واحد زمان با پارامتر پیکربندی anvil_rate_time_unit مشخص میشود.
بهطور پیشفرض، کلاینت SMTP دوردست میتواند به هر میزانی که Postfix قادر به پذیرش باشد، نشستهای جدید TLS در واحد زمان مذاکره نماید.
برای غیرفعال کردن این ویژگی، مقدار 0 را مشخص کنید. در غیر این صورت، مقداری حداقل برابر با محدودیت نشستهای همزمان به ازای هر کلاینت تعیین نمایید، چرا که در غیر این صورت ممکن است نشستهای کلاینتهای مشروع رد شوند.
هشدار: هدف این ویژگی محدود کردن سوءاستفاده است. نباید برای تنظیم ترافیک مشروع ایمیل استفاده شود.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
مثال:
smtpd_client_new_tls_session_rate_limit = 100
smtpd_client_port_logging (default: no)
فعالسازی ثبت پورت کلاینت SMTP دوردست در لاگ، علاوه بر نام میزبان و نشانی IP. قالب ثبت لاگ به صورت "host[address]:port" است.
این ویژگی در Postfix نسخه 2.5 و بالاتر در دسترس است.
smtpd_client_recipient_rate_limit (default: 0)
حداکثر تعداد نشانیهای گیرنده که هر کلاینت مجاز است در واحد زمان به این سرویس ارسال کند، صرف نظر از اینکه Postfix واقعاً آن گیرندهها را بپذیرد یا خیر. واحد زمان با پارامتر پیکربندی anvil_rate_time_unit مشخص میشود.
بهطور پیشفرض، کلاینت میتواند در واحد زمان به هر میزانی که Postfix قادر به پذیرش باشد نشانی گیرنده ارسال کند.
برای غیرفعال کردن این ویژگی، مقدار 0 را مشخص کنید.
هشدار: هدف این ویژگی محدود کردن سوءاستفاده است. نباید برای تنظیم ترافیک مشروع ایمیل استفاده شود.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
مثال:
smtpd_client_recipient_rate_limit = 1000
smtpd_client_restrictions (default: empty)
محدودیتهای اختیاری که سرور Postfix SMTP در بافتار یک درخواست اتصال کلاینت اعمال میکند. برای بررسی بافتار و زمان ارزیابی، به SMTPD_ACCESS_README، بخش "Delayed evaluation of SMTP access restriction lists" مراجعه کنید.
حالت پیشفرض، مجاز دانستن تمام درخواستهای اتصال است.
فهرستی از محدودیتها را که با ویرگول و/یا فاصله خالی از هم جدا شدهاند مشخص کنید. خطوط طولانی را با شروع خط بعدی با فاصله خالی ادامه دهید. محدودیتها به ترتیبی که مشخص شدهاند اعمال میشوند؛ اولین محدودیتی که مطابقت یابد اولویت دارد.
محدودیتهای زیر مختص نام میزبان کلاینت یا اطلاعات نشانی شبکه کلاینت هستند.
- check_ccert_access type:table
- بهطور
پیشفرض از
اثرانگشت
گواهی
کلاینت SMTP
دوردست یا
اثرانگشت
کلید عمومی
(Postfix نسخه 2.9 و
بالاتر) به
عنوان کلید
جستجو برای
پایگاهداده
access(5)
مشخصشده
استفاده
میشود؛ در
Postfix نسخه 2.2،
همچنین
تأیید
اعتبار
موفقیتآمیز
گواهی
کلاینت SMTP
دوردست
الزامی است.
الگوریتم
خلاصهسازی
اثرانگشت
از طریق
پارامتر
smtpd_tls_fingerprint_digest قابل
پیکربندی
است (قبل از
Postfix نسخه 2.5 به
صورت
کدنوشته
ثابت md5 بود).
این ویژگی
نیازمند
"smtpd_tls_ask_ccert = yes" بوده
و در Postfix نسخه 2.2
و بالاتر در
دسترس است.
الگوریتم پیشفرض در Postfix >= 3.6 همراه با تنظیم compatibility_level روی 3.6 یا بالاتر، sha256 است. در Postfix <= 3.5، الگوریتم پیشفرض md5 است. الگوریتم منطبق بر بهترین شیوهها اکنون sha256 است. پیشرفتهای اخیر در تحلیل رمز توابع درهمساز منجر به منسوخ شدن md5 و sha1 به نفع sha256 شده است. با این حال، تا زمانی که هیچ حمله شناختهشده "پیشتصویر دوم" علیه الگوریتمهای قدیمیتر وجود نداشته باشد، استفاده از آنها در این بافتار اگرچه توصیه نمیشود، اما کماکان احتمالاً ایمن است.
علاوه بر این، check_ccert_access یک ترتیب جستجوی صریح را نیز میپذیرد (Postfix نسخه 3.5 و بالاتر). ترتیب جستجوی پیشفرض به صورتی که در بالا شرح داده شد مطابق است با:
check_ccert_access { type:table, { search_order = cert_fingerprint, pubkey_fingerprint } }
ویرگولها اختیاری هستند.
- check_client_access type:table
- پایگاهداده
دسترسی
مشخصشده
را برای نام
میزبان یا
آدرس IP
کلاینت
جستجو
میکند.
برای
جزئیات به
صفحه
راهنمای access(5)
مراجعه
کنید.
- check_client_a_access type:table
- پایگاهداده
access(5)
مشخصشده
را برای
آدرسهای IP
نام میزبان
کلاینت
جستجو کرده
و اقدام
متناظر را
اجرا
میکند.
نکته: به
دلایل
امنیتی،
نتیجه «OK»
مجاز نیست.
در عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
فهرستهای
مسدودسازی
استفاده
کنید. این
قابلیت در Postfix
نسخه ۳.۰ و
بالاتر در
دسترس است.
- check_client_mx_access type:table
- پایگاهداده
access(5)
مشخصشده
را برای
میزبانهای
MX نام
میزبان
کلاینت
جستجو کرده
و اقدام
متناظر را
اجرا
میکند. اگر
هیچ رکورد MX
یافت نشود،
همانند
کلاینت SMTP در
Postfix،
رکوردهای A
یا AAAA را
جستجو
میکند.
نکته: به
دلایل
امنیتی،
نتیجه «OK»
مجاز نیست.
در عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
فهرستهای
مسدودسازی
استفاده
کنید. این
قابلیت در Postfix
نسخه ۲.۷ و
بالاتر در
دسترس است.
- check_client_ns_access type:table
- پایگاهداده
access(5)
مشخصشده
را برای
کارگزارهای
DNS نام
میزبان
کلاینت
جستجو کرده
و اقدام
متناظر را
اجرا
میکند.
نکته: به
دلایل
امنیتی،
نتیجه «OK»
مجاز نیست.
در عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
فهرستهای
مسدودسازی
استفاده
کنید. این
قابلیت در Postfix
نسخه ۲.۷ و
بالاتر در
دسترس است.
- check_reverse_client_hostname_access type:table
- پایگاهداده
دسترسی
مشخصشده
را برای نام
میزبان
معکوس
تأییدنشده
کلاینت یا
آدرس IP
جستجو
میکند.
برای
جزئیات به
صفحه
راهنمای access(5)
مراجعه
کنید. نکته:
به دلایل
امنیتی،
نتیجه «OK»
مجاز نیست.
در عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
فهرستهای
مسدودسازی
استفاده
کنید. این
قابلیت در Postfix
نسخه ۲.۶ و
بالاتر در
دسترس است.
- check_reverse_client_hostname_a_access type:table
- پایگاهداده
access(5)
مشخصشده
را برای
آدرسهای IP
نام میزبان
معکوس
تأییدنشده
کلاینت
جستجو کرده
و اقدام
متناظر را
اجرا
میکند.
نکته: به
دلایل
امنیتی،
نتیجه «OK»
مجاز نیست.
در عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
فهرستهای
مسدودسازی
استفاده
کنید. این
قابلیت در Postfix
نسخه ۳.۰ و
بالاتر در
دسترس است.
- check_reverse_client_hostname_mx_access type:table
- پایگاهداده
access(5)
مشخصشده
را برای
میزبانهای
MX نام
میزبان
معکوس
تأییدنشده
کلاینت
جستجو کرده
و اقدام
متناظر را
اجرا
میکند. اگر
هیچ رکورد MX
یافت نشود،
همانند
کلاینت SMTP در
Postfix،
رکوردهای A
یا AAAA را
جستجو
میکند.
نکته: به
دلایل
امنیتی،
نتیجه «OK»
مجاز نیست.
در عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
فهرستهای
مسدودسازی
استفاده
کنید. این
قابلیت در Postfix
نسخه ۲.۷ و
بالاتر در
دسترس است.
- check_reverse_client_hostname_ns_access type:table
- پایگاهداده
access(5)
مشخصشده
را برای
کارگزارهای
DNS نام
میزبان
معکوس
تأییدنشده
کلاینت
جستجو کرده
و اقدام
متناظر را
اجرا
میکند.
نکته: به
دلایل
امنیتی،
نتیجه «OK»
مجاز نیست.
در عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
فهرستهای
مسدودسازی
استفاده
کنید. این
قابلیت در Postfix
نسخه ۲.۷ و
بالاتر در
دسترس است.
- check_sasl_access type:table
- از نام
کاربری SASL
کلاینت SMTP
دوردست به
عنوان کلید
جستجو برای
پایگاهداده
access(5)
مشخصشده
استفاده
میکند.
وقتی مقدار
پارامتر
smtpd_sasl_local_domain خالی
نباشد،
کلید جستجو
به فرم "username@domainname"
خواهد بود.
بر خلاف
قابلیت
check_client_access،
قابلیت check_sasl_access
تطابق
دامنههای
والد یا
محدودههای
زیرشبکه IP
را انجام
نمیدهد.
این قابلیت
در Postfix نسخه
۲.۱۱ و
بالاتر در
دسترس است.
- permit_inet_interfaces
- در صورتی که
آدرس IP
کلاینت با
$inet_interfaces مطابقت
داشته
باشد،
درخواست را
مجاز
میکند.
- permit_mynetworks
- در صورتی که
آدرس IP
کلاینت با
هر شبکه یا
آدرس شبکه
فهرستشده
در $mynetworks
مطابقت
داشته
باشد،
درخواست را
مجاز
میکند.
- permit_sasl_authenticated
- در صورتی که
کلاینت با
موفقیت از
طریق
پروتکل RFC 4954 (AUTH)
احراز هویت
شود،
درخواست را
مجاز
میکند.
- permit_tls_all_clientcerts
- در صورتی که
گواهی
کلاینت SMTP
دوردست با
موفقیت
تأیید شود،
درخواست را
مجاز
میکند. این
گزینه باید
تنها زمانی
استفاده
شود که یک CA
خاص
گواهیها
را صادر کند
و تنها این CA
به عنوان CA
معتمد
فهرست شده
باشد. در
غیر این
صورت،
کلاینتهای
دارای
گواهی شخص
ثالث نیز
اجازه رله
خواهند
داشت.
هنگامی که CA
معتمد با smtpd_tls_CAfile
یا smtpd_tls_CApath مشخص
شده است،
مقدار "tls_append_default_CA =
no" را تعیین
کنید تا از
افزودن
CAهای
پیشفرض
ارائهشده
توسط سیستم
توسط Postfix
جلوگیری
شود. این
قابلیت به
"smtpd_tls_ask_ccert = yes" نیاز
دارد و در Postfix
نسخه ۲.۲ و
بالاتر در
دسترس است.
- permit_tls_clientcerts
- در صورتی که
اثرانگشت
گواهی
کلاینت SMTP
دوردست یا
اثرانگشت
کلید عمومی
(Postfix ۲.۹ و
بالاتر) در
$relay_clientcerts فهرست
شده باشد،
درخواست را
مجاز
میکند.
الگوریتم
خلاصهسازی
اثرانگشت
از طریق
پارامتر
smtpd_tls_fingerprint_digest قابل
پیکربندی
است (پیش از
نسخه ۲.۵ Postfix
به صورت
ثابت روی md5
تنظیم شده
بود). این
قابلیت
نیازمند
"smtpd_tls_ask_ccert = yes" است و
در Postfix نسخه
۲.۲ و
بالاتر در
دسترس است.
الگوریتم پیشفرض در Postfix >= 3.6 و با تنظیم compatibility_level روی ۳.۶ یا بالاتر، sha256 است. با Postfix <= 3.5، الگوریتم پیشفرض md5 است. بهترین شیوه الگوریتم در حال حاضر sha256 است. پیشرفتهای اخیر در تحلیل رمز توابع درهمسازی منجر به منسوخ شدن md5 و sha1 به نفع sha256 شده است. با این حال، تا زمانی که هیچ حمله شناختهشدهای از نوع «پیشتصویر دوم» علیه الگوریتمهای قدیمیتر وجود نداشته باشد، استفاده از آنها در این زمینه اگرچه توصیه نمیشود، اما همچنان به احتمال زیاد امن است.
- reject_rbl_client rbl_domain=d.d.d.d
- در صورتی که
آدرس شبکه
معکوسشده
کلاینت با
رکورد A به
صورت "d.d.d.d"
ذیل rbl_domain
فهرست شده
باشد،
درخواست را
رد میکند
(تنها در Postfix
نسخه ۲.۱ و
بالاتر). هر
"d" یک عدد
است، یا یک
الگو درون
"[]" که شامل
یک یا چند
عدد یا بازه
number..number است که با
";" جدا
شدهاند (Postfix
نسخه ۲.۸ و
بالاتر).
اگر هیچ
"=d.d.d.d" مشخص
نشود، در
صورتی که
آدرس شبکه
معکوسشده
کلاینت با
هر رکورد A
ذیل rbl_domain
فهرست شده
باشد،
درخواست را
رد میکند.
پارامتر maps_rbl_reject_code کد پاسخ برای درخواستهای رد شده را مشخص میکند (پیشفرض: 554)، پارامتر default_rbl_reply پاسخ پیشفرض سرور را تعیین میکند، و پارامتر rbl_reply_maps جدولهای حاوی پاسخهای سرور با نمایه rbl_domain را مشخص میسازد.
نکته: همواره سیاستهای استفاده از سرویسهای اعتبارسنجی را رعایت کنید. از تحلیلگرهای عمومی یا تحلیلگرهای ISP اجتناب کنید، مگر اینکه پرسوجوها از کلید اختصاصی API شما استفاده کنند (برای نحوه جلوگیری از افشای کلید در پاسخهای سرور SMTP به rbl_reply_maps مراجعه کنید).
این قابلیت در Postfix ۲.۰ و بالاتر در دسترس است.
- permit_dnswl_client dnswl_domain=d.d.d.d
- در صورتی که
آدرس شبکه
معکوسشده
کلاینت با
رکورد A به
صورت "d.d.d.d"
ذیل dnswl_domain
فهرست شده
باشد،
درخواست را
میپذیرد.
هر "d" یک
عدد است، یا
یک الگو
درون "[]" که
شامل یک یا
چند عدد یا
بازه number..number است
که با ";" جدا
شدهاند.
اگر هیچ
"=d.d.d.d" مشخص
نشود، در
صورتی که
آدرس شبکه
معکوسشده
کلاینت با
هر رکورد A
ذیل dnswl_domain
فهرست شده
باشد،
درخواست را
میپذیرد.
برای حفظ امنیت، اگر permit_dnswl_client بخواهد reject_unauth_destination را بازنویسی کند، بدون هشدار نادیده گرفته میشود. در صورت شکست جستجو در فهرست مجاز، نتیجه DEFER_IF_REJECT خواهد بود.
نکته: همواره سیاستهای استفاده از سرویسهای اعتبارسنجی را رعایت کنید. از تحلیلگرهای عمومی یا تحلیلگرهای ISP اجتناب کنید، مگر اینکه پرسوجوها از کلید اختصاصی API شما استفاده کنند (برای نحوه جلوگیری از افشای کلید API در پاسخهای سرور SMTP به rbl_reply_maps مراجعه کنید).
این قابلیت در Postfix ۲.۸ و بالاتر در دسترس است.
- reject_rhsbl_client rbl_domain=d.d.d.d
- در صورتی که
نام میزبان
کلاینت با
رکورد A به
صورت "d.d.d.d"
ذیل rbl_domain
فهرست شده
باشد،
درخواست را
رد میکند
(تنها در Postfix
نسخه ۲.۱ و
بالاتر). هر
"d" یک عدد
است، یا یک
الگو درون
"[]" که شامل
یک یا چند
عدد یا بازه
number..number است که با
";" جدا
شدهاند (Postfix
نسخه ۲.۸ و
بالاتر).
اگر هیچ
"=d.d.d.d" مشخص
نشود، در
صورتی که
نام میزبان
کلاینت با
هر رکورد A
ذیل rbl_domain
فهرست شده
باشد،
درخواست را
رد میکند.
برای
پارامترهای
پیکربندی
مرتبط با RBL
به توضیحات
reject_rbl_client در بالا
مراجعه
کنید.
نکته: همواره سیاستهای استفاده از سرویسهای اعتبارسنجی را رعایت کنید. از تحلیلگرهای عمومی یا تحلیلگرهای ISP اجتناب کنید، مگر اینکه پرسوجوها از کلید اختصاصی API شما استفاده کنند (برای نحوه جلوگیری از افشای کلید API در پاسخهای سرور SMTP به rbl_reply_maps مراجعه کنید).
این قابلیت در Postfix ۲.۰ و بالاتر در دسترس است؛ با Postfix نسخه ۲.۸ و بالاتر، معمولاً reject_rhsbl_reverse_client نتایج بهتری تولید میکند.
- permit_rhswl_client rhswl_domain=d.d.d.d
- در صورتی که
نام میزبان
کلاینت با
رکورد A به
صورت "d.d.d.d"
ذیل rhswl_domain
فهرست شده
باشد،
درخواست را
میپذیرد.
هر "d" یک
عدد است، یا
یک الگو
درون "[]" که
شامل یک یا
چند عدد یا
بازه number..number است
که با ";" جدا
شدهاند.
اگر هیچ
"=d.d.d.d" مشخص
نشود، در
صورتی که
نام میزبان
کلاینت با
هر رکورد A
ذیل rhswl_domain
فهرست شده
باشد،
درخواست را
میپذیرد.
احتیاط: قرار دادن نام کلاینت در فهرست مجاز شکننده است، چرا که جستجوی نام کلاینت ممکن است به دلیل قطعیهای موقت شکست بخورد. مجازسازی نام کلاینت تنها باید برای کاهش هشدارهای نادرست در مواردی نظیر فهرستهای مسدودسازی مبتنی بر DNS استفاده شود، نه برای ایجاد استثنا در قواعد دسترسی.
برای حفظ امنیت، اگر permit_rhswl_client بخواهد reject_unauth_destination را بازنویسی کند، بدون هشدار نادیده گرفته میشود. در صورت شکست جستجو در فهرست مجاز، نتیجه DEFER_IF_REJECT خواهد بود.
نکته: همواره سیاستهای استفاده از سرویسهای اعتبارسنجی را رعایت کنید. از تحلیلگرهای عمومی یا تحلیلگرهای ISP اجتناب کنید، مگر اینکه پرسوجوها از کلید اختصاصی API شما استفاده کنند (برای نحوه جلوگیری از افشای کلید API در پاسخهای سرور SMTP به rbl_reply_maps مراجعه کنید).
این قابلیت در Postfix ۲.۸ و بالاتر در دسترس است.
- reject_rhsbl_reverse_client rbl_domain=d.d.d.d
- در صورتی که
نام میزبان
معکوس
تأییدنشده
کلاینت با
رکورد A به
صورت "d.d.d.d"
ذیل rbl_domain
فهرست شده
باشد،
درخواست را
رد میکند.
هر "d" یک
عدد است، یا
یک الگو
درون "[]" که
شامل یک یا
چند عدد یا
بازه number..number است
که با ";" جدا
شدهاند.
اگر هیچ
"=d.d.d.d" مشخص
نشود، در
صورتی که
نام میزبان
معکوس
تأییدنشده
کلاینت با
هر رکورد A
ذیل rbl_domain
فهرست شده
باشد،
درخواست را
رد میکند.
برای
پارامترهای
پیکربندی
مرتبط با RBL
به توضیحات
reject_rbl_client در بالا
مراجعه
کنید.
نکته: همواره سیاستهای استفاده از سرویسهای اعتبارسنجی را رعایت کنید. از تحلیلگرهای عمومی یا تحلیلگرهای ISP اجتناب کنید، مگر اینکه پرسوجوها از کلید اختصاصی API شما استفاده کنند (برای نحوه جلوگیری از افشای کلید API در پاسخهای سرور SMTP به rbl_reply_maps مراجعه کنید).
این قابلیت در Postfix ۲.۸ و بالاتر در دسترس است.
- reject_unknown_client_hostname (with Postfix < 2.3: reject_unknown_client)
- درخواست را
رد میکند
هنگامی که:
۱) نگاشت
آدرس IP->نام
کلاینت با
شکست مواجه
شود، یا ۲)
نگاشت
نام->آدرس
با شکست
مواجه شود،
یا ۳) نگاشت
نام->آدرس
با آدرس IP
کلاینت
مطابقت
نداشته
باشد.
این محدودیت قویتر از قابلیت reject_unknown_reverse_client_hostname است که تنها در شرایط ۱) بالا فعال میشود.
پارامتر unknown_client_reject_code کد پاسخ برای درخواستهای رد شده را مشخص میکند (پیشفرض: 450). در صورتی که جستجوی آدرس->نام یا نام->آدرس به دلیل یک مشکل موقت شکست بخورد، پاسخ همواره 450 است.
- reject_unknown_reverse_client_hostname
- در صورتی که
آدرس IP
کلاینت
فاقد نگاشت
آدرس->نام
باشد،
درخواست را
رد میکند.
این محدودیت ضعیفتر از قابلیت reject_unknown_client_hostname است؛ قابلیتی که نه تنها به وجود نگاشتهای آدرس->نام و نام->آدرس نیاز دارد، بلکه ایجاب میکند که این دو نگاشت آدرس IP کلاینت را بازتولید کنند.
پارامتر unknown_client_reject_code کد پاسخ برای درخواستهای رد شده را مشخص میکند (پیشفرض: 450). در صورتی که جستجوی آدرس->نام به دلیل یک مشکل موقت با شکست مواجه شود، پاسخ همواره 450 است.
این قابلیت در Postfix ۲.۳ و بالاتر در دسترس است.
علاوه بر این، میتوانید از هر یک از محدودیتهای عمومی زیر استفاده کنید. این محدودیتها در هر زمینه دستور SMTP قابل اعمال هستند.
- check_policy_service servername
- از کارگزار
خطمشی
مشخصشده
پرسوجو
میکند.
برای
جزئیات به
سند SMTPD_POLICY_README
مراجعه
کنید. این
قابلیت در Postfix
۲.۱ و
بالاتر در
دسترس است.
- defer
- درخواست را
به تعویق
میاندازد.
به کلاینت
گفته
میشود که
بعداً
دوباره
تلاش کند.
این
محدودیت در
انتهای یک
فهرست
محدودیت،
برای صریح
ساختن
خطمشی
پیشفرض
کاربرد
دارد.
پارامتر defer_code کد پاسخ سرور SMTP را مشخص میکند (پیشفرض: 450).
- defer_if_permit
- در صورتی که
محدودیتهای
بعدی منجر
به یک اقدام
صریح یا
ضمنی PERMIT
شوند،
درخواست را
به تعویق
میاندازد.
این قابلیت
زمانی که یک
ویژگی
فهرست
مسدودسازی
به دلیل
مشکلی موقت
شکست
میخورد،
کاربردی
است. این
قابلیت در Postfix
نسخه ۲.۱ و
بالاتر در
دسترس است.
- defer_if_reject
- در صورتی که
محدودیتهای
بعدی منجر
به اقدام REJECT
شوند،
درخواست را
به تعویق
میاندازد.
این قابلیت
زمانی که یک
ویژگی
فهرست مجاز
به دلیل
مشکلی موقت
شکست
میخورد،
کاربردی
است. این
قابلیت در Postfix
نسخه ۲.۱ و
بالاتر در
دسترس است.
- permit
- درخواست را
مجاز
میکند. این
محدودیت در
انتهای یک
فهرست
محدودیت،
برای صریح
ساختن
خطمشی
پیشفرض
کاربرد
دارد.
- reject_multi_recipient_bounce
- در صورتی که
فرستنده
پاکت آدرس
تهی (null) باشد و
پیام چندین
گیرنده
پاکت داشته
باشد،
درخواست را
رد میکند.
این کاربرد
موارد نادر
اما مشروعی
دارد: تحت
شرایطی
خاص،
نامههای
چندگیرندهای
که با گزینه
DSN یعنی NOTIFY=NEVER
ارسال
شدهاند،
ممکن است با
آدرس
فرستنده
تهی
فوروارد
شوند.
نکته: این محدودیت تنها زمانی به طور قابلاطمینان عمل میکند که در smtpd_data_restrictions یا smtpd_end_of_data_restrictions استفاده شود، زیرا تعداد کل گیرندگان در مراحل ابتدایی مکالمه SMTP مشخص نیست. استفاده در مرحله RCPT تنها گیرنده دوم به بعد را رد خواهد کرد.
پارامتر multi_recipient_bounce_reject_code کد پاسخ برای درخواستهای رد شده را مشخص میکند (پیشفرض: 550). این قابلیت در Postfix ۲.۱ و بالاتر در دسترس است.
- reject_plaintext_session
- در صورتی که
اتصال
رمزگذاری
نشده باشد،
درخواست را
رد میکند.
این
محدودیت
نباید پیش
از آنکه
کلاینت
فرصت
مذاکره
برای
رمزگذاری
با دستورات
AUTH یا STARTTLS را
داشته باشد
استفاده
شود.
پارامتر plaintext_reject_code کد پاسخ برای درخواستهای رد شده را مشخص میکند (پیشفرض: 450). این قابلیت در Postfix ۲.۳ و بالاتر در دسترس است.
- reject_unauth_pipelining
- در صورتی که
کلاینت
دستورات SMTP
را در جایی
که مجاز
نیست
پیشاپیش
ارسال کند،
یا هنگامی
که کلاینت
بدون آگاهی
از
پشتیبانی Postfix
از صفبندی
(pipelining) دستورات
ESMTP، آنها را
زودتر از
موعد ارسال
کند،
درخواست را
رد میکند.
این کار
مانع
دریافت
نامهها از
نرمافزارهای
ارسال
انبوه
میشود که
برای سرعت
بخشیدن به
تحویل، به
شکلی
نادرست از
صفبندی
دستورات ESMTP
استفاده
میکنند.
با Postfix ۲.۶ و بالاتر، سرور SMTP هر زمان که صفبندی غیرمجاز (شامل دستورات صفبندیشده HELO یا EHLO) را تشخیص دهد، یک پرچم به ازای هر نشست تنظیم میکند. قابلیت reject_unauth_pipelining صرفاً بررسی میکند که آیا این پرچم در هر زمانی در طول نشست تنظیم شده است یا خیر.
در نسخههای قدیمیتر Postfix، ویژگی reject_unauth_pipelining وضعیت جاری صف خواندن ورودی را بررسی میکند و استفاده از آن در زمینههایی غیر از smtpd_data_restrictions توصیه نمیشود.
- reject
- درخواست را
رد میکند.
این
محدودیت در
انتهای یک
فهرست
محدودیت،
برای صریح
ساختن
خطمشی
پیشفرض
کاربرد
دارد.
پارامتر
پیکربندی
reject_code کد پاسخ
برای
درخواستهای
رد شده را
مشخص
میکند
(پیشفرض: 554).
- sleep seconds
- برای تعداد
ثانیههای
مشخصشده
مکث کرده و
به بررسی
محدودیت
بعدی در
فهرست (در
صورت وجود)
ادامه
میدهد. این
کار هنگامی
که به شکل
زیر
استفاده
شود ممکن
است مانع
نامههای
زامبی (zombie mail)
شود:
/etc/postfix/main.cf: smtpd_client_restrictions = sleep 1, reject_unauth_pipelining smtpd_delay_reject = noاین قابلیت در Postfix ۲.۳ در دسترس است.
- warn_if_reject
- یک شبکه
ایمنی برای
آزمایش.
وقتی "warn_if_reject"
پیش از یک
محدودیت از
نوع رد (reject-type)،
پرسوجوی
جدول
دسترسی یا
پرسوجوی
check_policy_service قرار
گیرد، به
جای رد
درخواست،
یک پیام
"reject_warning" ثبت
میشود
(هنگامی که
یک محدودیت
از نوع رد
به دلیل
خطای موقت
با شکست
مواجه
میشود،
این گزینه
برای هر
اقدام ضمنی
"defer_if_permit" که به
طور معمول
مانع پذیرش
ایمیل توسط
محدودیت
دسترسی
بعدی
میشد،
پیام "reject_warning"
ثبت
میکند).
این قابلیت
هیچ تأثیری
بر
محدودیتهای
defer_if_reject ندارد.
سایر محدودیتهایی که در این زمینه معتبر هستند:
- •
- محدودیتهای
خاص دستور SMTP
که ذیل
پارامترهای
smtpd_helo_restrictions، smtpd_sender_restrictions یا
smtpd_recipient_restrictions شرح
داده
شدهاند.
هنگامی که
محدودیتهای
helo، فرستنده
یا گیرنده
ذیل smtpd_client_restrictions
فهرست
میشوند،
تنها با "smtpd_delay_reject
= yes" اثرگذار
خواهند
بود،
بهطوری که
$smtpd_client_restrictions در
زمان دستور
RCPT TO ارزیابی
میشود.
مثال:
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname
smtpd_command_filter (default: empty)
مکانیسمی برای تبدیل و تغییر دستورات دریافتی از کلاینتهای راه دور SMTP. این یک ابزار آخرین چاره برای دور زدن دستورات کلاینتی است که سازگاری با کارگزار SMTP پستفیکس را مختل میکنند. کاربردهای دیگر شامل تزریق خطا جهت آزمایش نحوه مدیریت دستورات نامعتبر توسط Postfix است.
نام یک جدول جستجوی "type:table" را مشخص کنید. رشته جستجو همان دستور SMTP دریافت شده از کلاینت SMTP راه دور است، به جز اینکه فضای خالی ابتدایی و <CR><LF> انتهایی حذف میشوند. مقدار نتیجه توسط کارگزار SMTP پستفیکس اجرا میشود.
برای موارد زیر نیازی به استفاده از smtpd_command_filter نیست:
- برای پذیرش "user@ipaddress" از "resolve_numeric_domain = yes" استفاده کنید.
- پستفیکس از قبل قالب صحیح "user@[ipaddress]" را میپذیرد. در صورت نیاز، از virtual_alias_maps یا canonical_maps برای تبدیل این موارد به نامهای دامنه استفاده کنید.
- برای پذیرش
"RCPT TO:<User Name <user@example.com>>"
از "strict_rfc821_envelopes = no"
استفاده
کنید.
پستفیکس
بخش "User Name" را
نادیده
گرفته و
پیام را به
نشانی <user@example.com>
تحویل
میدهد.
نمونههایی از مشکلاتی که میتوان با قابلیت smtpd_command_filter حل کرد:
/etc/postfix/main.cf:
smtpd_command_filter = pcre:/etc/postfix/command_filter
/etc/postfix/command_filter:
# دور زدن کلاینتهایی که دستورات ناصحیح HELO ارسال میکنند.
/^HELO\s*$/ HELO domain.invalid
# دور زدن کلاینتهایی که خطوط خالی ارسال میکنند. /^\s*$/ NOOP
# دور زدن کلاینتهایی که RCPT TO:<'user@domain'> ارسال میکنند. # هشدار: پارامترهای پس از نشانی را از بین نبرید. /^(RCPT\s+TO:\s*<)'([^[:space:]]+)'(>.*)/ $1$2$3
# الحاق XVERP به دستورات MAIL FROM برای درخواست تحویل به سبک VERP. # برای اطلاعات بیشتر در مورد نحوه استفاده از Postfix VERP به VERP_README مراجعه کنید. /^(MAIL\s+FROM:\s*<listname@example\.com>.*)/ $1 XVERP
# چاه دریافت ایمیل بدون برگشت (Bounce-never). برای ارسال ایمیل برگشتی # به postmaster (با حذف متن پیام) از notify_classes=bounce,resource,software استفاده کنید. /^(RCPT\s+TO:\s*<.*>.*)\s+NOTIFY=\S+(.*)/ $1 NOTIFY=NEVER$2 /^(RCPT\s+TO:.*)/ $1 NOTIFY=NEVER
این ویژگی در Postfix نسخه 2.7 در دسترس است.
smtpd_data_restrictions (default: empty)
محدودیتهای دسترسی اختیاری که کارگزار SMTP پستفیکس در بستر دستور SMTP DATA اعمال میکند. برای بحث در مورد بستر و زمان ارزیابی، بخش "Delayed evaluation of SMTP access restriction lists" در SMTPD_ACCESS_README را ببینید.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
فهرستی از محدودیتها را مشخص کنید که با ویرگول و/یا فضای خالی جدا شده باشند. خطوط طولانی را با شروع خط بعدی با فضای خالی ادامه دهید. محدودیتها به ترتیبی که مشخص شدهاند اعمال میشوند؛ نخستین محدودیتی که مطابقت داشته باشد اعمال میشود.
محدودیتهای زیر در این بستر معتبر هستند:
- محدودیتهای عمومی قابل استفاده در هر بستر دستور SMTP، که ذیل smtpd_client_restrictions شرح داده شدهاند.
- محدودیتهای خاص دستور SMTP شرح داده شده ذیل smtpd_client_restrictions، smtpd_helo_restrictions، smtpd_sender_restrictions یا smtpd_recipient_restrictions.
- با این حال،
در مورد
ایمیلهای
دارای چند
گیرنده،
هیچ
اطلاعاتی
از گیرنده
در دسترس
نیست. اقدام
بر اساس
تنها یک
گیرنده
گمراهکننده
خواهد بود،
زیرا هر
تصمیمی به
طور یکسان
بر همه
گیرندگان
تأثیر
میگذارد.
اقدام بر
روی همه
گیرندگان
احتمالاً
به مقدار
بسیار
زیادی
حافظه نیاز
دارد، و
همچنین به
دلایلی که
پیشتر ذکر
شد
گمراهکننده
خواهد بود.
مثالها:
smtpd_data_restrictions = reject_unauth_pipelining smtpd_data_restrictions = reject_multi_recipient_bounce
smtpd_delay_open_until_valid_rcpt (default: yes)
شروع یک تراکنش ایمیل SMTP را تا زمان دریافت یک دستور معتبر RCPT TO به تعویق میاندازد. برای ایجاد تراکنش ایمیل به محض اینکه کارگزار SMTP پستفیکس دستور معتبر MAIL FROM را دریافت کرد، مقدار "no" را مشخص کنید.
در سایتهایی که ایمیلهای زیادی را رد میکنند، تنظیم پیشفرض مصرف منابع دیسک، پردازنده و حافظه را کاهش میدهد. نقطه ضعف این است که گیرندگان رد شده به جای شناسه تراکنش ایمیل (شناسه صف)، با NOQUEUE ثبت میشوند.
این ویژگی در Postfix نسخه 2.3 و بالاتر در دسترس است.
smtpd_delay_reject (default: yes)
انتظار تا دستور RCPT TO قبل از ارزیابی $smtpd_client_restrictions، $smtpd_helo_restrictions و $smtpd_sender_restrictions، یا انتظار تا دستور ETRN قبل از ارزیابی $smtpd_client_restrictions و $smtpd_helo_restrictions.
این ویژگی بهطور پیشفرض فعال است زیرا ظاهراً برخی کلاینتها هنگامی که کارگزار SMTP پستفیکس دستورات را قبل از RCPT TO رد میکند، رفتار نادرستی دارند.
تنظیم پیشفرض یک مزیت عمده دارد: به Postfix اجازه میدهد هنگام رد کردن نام/نشانی کلاینت یا نشانی فرستنده، اطلاعات نشانی گیرنده را لاگ کند تا بتوان دریافت ایمیل چه کسی رد شده است.
smtpd_discard_ehlo_keyword_address_maps (default: empty)
جداول جستجو، نمایهسازی شده بر اساس نشانی کلاینت SMTP راه دور، با فهرست غیرحساس به حروف کوچک و بزرگ از کلیدواژههای EHLO (مانند pipelining، starttls، auth و غیره) که کارگزار SMTP پستفیکس در پاسخ EHLO به یک کلاینت SMTP راه دور ارسال نخواهد کرد. برای جزئیات به smtpd_discard_ehlo_keywords مراجعه کنید. این جداول به دلایل پایداری بر اساس نام میزبان جستجو نمیشوند.
یک یا چند جدول جستجوی "type:name" را مشخص کنید که با فضای خالی یا کاما جدا شده باشند. جداول به ترتیب تعیینشده تا زمان یافتن تطابق جستجو خواهند شد.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtpd_discard_ehlo_keywords (default: empty)
فهرستی غیرحساس به حروف کوچک و بزرگ از کلیدواژههای EHLO (مانند pipelining، starttls، auth و غیره) که کارگزار SMTP پستفیکس در پاسخ EHLO به یک کلاینت SMTP راه دور ارسال نخواهد کرد.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
نکات:
- شبهکلیدواژه silent-discard را مشخص کنید تا از ثبت این عمل در لاگ جلوگیری شود.
- از ویژگی
smtpd_discard_ehlo_keyword_address_maps برای
نادیده
گرفتن
انتخابی
کلیدواژههای
EHLO استفاده
کنید.
smtpd_dns_reply_filter (default: empty)
فیلتر اختیاری برای نتایج جستجوی DNS کارگزار SMTP پستفیکس. برای جزئیات شامل یک مثال، smtp_dns_reply_filter را ببینید.
این ویژگی در Postfix نسخه 3.0 و بالاتر در دسترس است.
smtpd_end_of_data_restrictions (default: empty)
محدودیتهای دسترسی اختیاری که کارگزار SMTP پستفیکس در بستر دستور SMTP END-OF-DATA اعمال میکند. برای بحث در مورد بستر و زمان ارزیابی، بخش "Delayed evaluation of SMTP access restriction lists" در SMTPD_ACCESS_README را ببینید.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
برای جزئیات و محدودیتها smtpd_data_restrictions را ببینید.
smtpd_enforce_tls (default: no)
اجبار TLS: اعلام پشتیبانی از STARTTLS به کلاینتهای راه دور SMTP، و رد کردن همه دستورات متنآشکار (plaintext) به جز HELO، EHLO، XCLIENT، STARTTLS، NOOP، QUIT، و (Postfix >= 3.9) HELP. طبق RFC 2487 این گزینه نباید در مورد یک کارگزار SMTP با ارجاع عمومی اعمال شود. در عوض، باید روی سرورهای اختصاصی، مثلاً submission (پورت 587) به کار رود. بنابراین این گزینه به طور پیشفرض خاموش است.
نکته ۱: "smtpd_enforce_tls = yes" مستلزم "smtpd_tls_auth_only = yes" است.
نکته ۲: در صورت اجرا از طریق "sendmail -bs"، پستفیکس به دلیل عدم دسترسی به کلید خصوصی سرور هرگز STARTTLS را ارائه نخواهد داد. این رفتار تعمدی است.
این ویژگی از Postfix 3.9 منسوخ شده است. به جای آن smtpd_tls_security_level را تعیین کنید.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است. در Postfix 2.3 و بالاتر به جای آن از smtpd_tls_security_level استفاده کنید.
smtpd_error_sleep_time (default: 1s)
در Postfix نسخه 2.1 و بالاتر: تأخیر در پاسخ کارگزار SMTP پس از اینکه یک کلاینت بدون تحویل ایمیل، بیش از $smtpd_soft_error_limit خطا و کمتر از $smtpd_hard_error_limit خطا ایجاد کرده باشد.
در Postfix نسخه 2.0 و پیش از آن: تأخیر کارگزار SMTP قبل از ارسال یک پاسخ رد (4xx یا 5xx)، هنگامی که کلاینت بدون تحویل ایمیل کمتر از $smtpd_soft_error_limit خطا داشته باشد. هنگامی که کلاینت $smtpd_soft_error_limit یا بیشتر خطا ایجاد کند، همه پاسخها به میزان عدد بزرگتر بین (تعداد خطاها) ثانیه یا $smtpd_error_sleep_time به تأخیر میافتند.
یک مقدار زمانی نامنفی را مشخص کنید (یک عدد صحیح به اضافه یک پسوند تکحرفی اختیاری که واحد زمان را تعیین میکند). واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد پیشفرض زمان s (ثانیه) است.
smtpd_etrn_restrictions (default: empty)
محدودیتهای اختیاری که کارگزار SMTP پستفیکس در بستر دستور ETRN کلاینت اعمال میکند. برای بررسی بستر و زمان ارزیابی، بخش "Delayed evaluation of SMTP access restriction lists" در SMTPD_ACCESS_README را ببینید.
پیادهسازی ETRN در پستفیکس تنها مقصدهایی را میپذیرد که واجد شرایط سرویس "fast flush" پستفیکس باشند. برای جزئیات فایل ETRN_README را ببینید.
فهرستی از محدودیتها را مشخص کنید که با کاما و/یا فضای خالی جدا شده باشند. خطوط طولانی را با قرار دادن فضای خالی در ابتدای خط بعدی ادامه دهید. محدودیتها به ترتیبی که مشخص شدهاند اعمال میشوند؛ نخستین محدودیتی که مطابقت داشته باشد اعمال میشود.
محدودیتهای زیر مختص اطلاعات نام دامنه دریافت شده همراه با دستور ETRN هستند.
- check_etrn_access type:table
- جستجوی
پایگاه
داده
دسترسی
مشخصشده
برای نام
دامنه ETRN.
برای
جزئیات به
صفحه
راهنمای access(5)
مراجعه
کنید.
سایر محدودیتهای معتبر در این بستر:
- محدودیتهای عمومی قابل استفاده در هر بستر دستور SMTP، شرح داده شده ذیل smtpd_client_restrictions.
- محدودیتهای
خاص دستور SMTP
شرح داده
شده ذیل
smtpd_client_restrictions و smtpd_helo_restrictions.
مثال:
smtpd_etrn_restrictions = permit_mynetworks, reject
smtpd_expansion_filter (default: see postconf -d output)
چه نویسههایی در بسطهای $name قالبهای پاسخ RBL مجاز هستند. نویسههای خارج از مجموعه مجاز با "_" جایگزین میشوند. برای مشخص کردن نویسههای خاص مانند فاصله از کاراکترهای گریز مشابه C استفاده کنید.
مقدار smtpd_expansion_filter مشمول بسط $name پارامترهای پیکربندی پستفیکس نمیشود.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
smtpd_forbid_bare_newline (default: Postfix >= 3.9: normalize)
رد یا محدود کردن خطوط ورودی از کلاینت SMTP که به جای استاندارد <CR><LF> با <LF> پایان مییابند. چنین پایانههای خطی معمولاً در کارگزارهای SMTP مبتنی بر UNIX مجاز هستند، اما استاندارد RFC 5321 را نقض میکنند، و مجاز دانستن آنها میتواند سرور را در معرض آسیبپذیری قاچاق SMTP (SMTP smuggling) قرار دهد.
یکی از مقادیر زیر را مشخص کنید (حساس به بزرگی یا کوچکی حروف نیست):
- normalize (پیشفرض برای Postfix >= 3.9)
- الزام به
دنباله
استاندارد
پایان داده
(End-of-DATA) به صورت
<CR><LF>.<CR><LF>. در
غیر این
صورت، خطوط
دستور یا
محتوای
پیام با
پایان غیر
استاندارد
<LF> مجاز
شمرده شده و
به گونهای
پردازش
میشوند که
گویی
کلاینت
دنباله
استاندارد
<CR><LF> را
ارسال کرده
است.
این گزینه سازگاری با بسیاری از برنامههای کاربردی مشروع کلاینت SMTP را که ترکیبی از پایانههای خط استاندارد و غیراستاندارد ارسال میکنند حفظ میکند، اما در دریافت ایمیل از پیادهسازیهای کلاینتی که محتوای DATA را با دنباله استاندارد پایان داده <CR><LF>.<CR><LF> خاتمه نمیدهند، ناموفق خواهد بود.
چنین کلاینتهایی را میتوان با smtpd_forbid_bare_newline_exclusions مستثنی کرد.
- note
- مشابه "normalize"،
با این
تفاوت که در
لاگ ثبت
میکند آیا
کارگزار SMTP
پستفیکس
خطوطی با "<LF>
تنها"
دریافت
کرده است یا
خیر. این
اطلاعات به
صورت "disconnect from name[address] ...
notes=bare_lf"
قالببندی
میشود.
انتظار
میرود
مقدار notes به
فهرستی از
نامهای
جدا شده با
ویرگول
تبدیل شود.
این ویژگی در Postfix نسخه 3.9 و بالاتر در دسترس است.
- yes
- نام مستعار
سازگاری
برای normalize.
- reject
- الزام به
دنباله
استاندارد
End-of-DATA به صورت
<CR><LF>.<CR><LF>. رد
دستور یا
محتوای
پیام در
صورت وجود bare
<LF> در یک خط،
ثبت خطای "bare
<LF> received" در
لاگ، و پاسخ
با کد وضعیت
SMTP مشخص شده
در $smtpd_forbid_bare_newline_reject_code.
این گزینه ایمیلهای دریافتی از کلاینتهای SMTP را که هر نوع پایانه خط غیراستاندارد ارسال میکنند (مانند برنامههای وب، netcat یا بررسی سلامت لود بالانسر) رد خواهد کرد.
این گزینه همچنین ایمیلهای سرویسهایی را که از BDAT برای ارسال متن MIME شامل bare newline استفاده میکنند رد خواهد کرد (بخش 3 از RFC 3030 قالب استاندارد MIME را برای انواع پیام متنی الزامی کرده است، تعریف شده در RFC 2045 بخشهای 2.7 و 2.8).
چنین کلاینتهایی را میتوان با smtpd_forbid_bare_newline_exclusions مستثنی کرد (یا در صورت نقضهای BDAT، میتوان BDAT را به صورت انتخابی با smtpd_discard_ehlo_keyword_address_maps یا به طور کلی با smtpd_discard_ehlo_keywords غیرفعال کرد).
- no (پیشفرض برای Postfix < 3.9)
- توالی
استاندارد
پایان DATA
یعنی <CR><LF>.<CR><LF>
را الزامی
نمیکند.
همیشه با یک
<LF> تنها
طوری رفتار
میکند که
گویی
کلاینت <CR><LF>
فرستاده
است. این
گزینه
کاملاً با
نسخههای
پیشین
سازگار
است، اما
برای یک
سرور SMTP متصل
به اینترنت
توصیه
نمیشود،
زیرا در
برابر
قاچاق SMTP (یا SMTP
smuggling)
آسیبپذیر
است.
تنظیمات توصیهشده:
# Require the standard End-of-DATA sequence <CR><LF>.<CR><LF>. # Otherwise, allow bare <LF> and process it as if the client sent # <CR><LF>. # # This maintains compatibility with many legitimate SMTP client # applications that send a mix of standard and non-standard line # endings, but will fail to receive email from client implementations # that do not terminate DATA content with the standard End-of-DATA # sequence <CR><LF>.<CR><LF>. # # Such clients can be allowlisted with smtpd_forbid_bare_newline_exclusions. # The example below allowlists SMTP clients in trusted networks. # smtpd_forbid_bare_newline = normalize smtpd_forbid_bare_newline_exclusions = $mynetworks
جایگزین:
# Reject input lines that contain <LF> and log a "bare <LF> received" # error. Require that input lines end in <CR><LF>, and require the # standard End-of-DATA sequence <CR><LF>.<CR><LF>. # # This will reject email from SMTP clients that send any non-standard # line endings such as web applications, netcat, or load balancer # health checks. # # This will also reject email from services that use BDAT to send # MIME text containing a bare newline (RFC 3030 Section 3 requires # canonical MIME format for text message types, defined in RFC 2045 # Sections 2.7 and 2.8). # # Such clients can be allowlisted with smtpd_forbid_bare_newline_exclusions. # The example below allowlists SMTP clients in trusted networks. # smtpd_forbid_bare_newline = reject smtpd_forbid_bare_newline_exclusions = $mynetworks # # Alternatively, in the case of BDAT violations, BDAT can be selectively # disabled with smtpd_discard_ehlo_keyword_address_maps, or globally # disabled with smtpd_discard_ehlo_keywords. # # smtpd_discard_ehlo_keyword_address_maps = cidr:/path/to/file # /path/to/file: # 10.0.0.0/24 chunking, silent-discard # smtpd_discard_ehlo_keywords = chunking, silent-discard
این ویژگی با مقادیر yes و no در Postfix نسخههای 3.8.4، 3.7.9، 3.6.13 و 3.5.23 در دسترس است. علاوه بر این، مقادیر reject و normalize در Postfix نسخههای >= 3.9، 3.8.5، 3.7.10، 3.6.14 و 3.5.24 در دسترس هستند.
smtpd_forbid_bare_newline_exclusions (default: $mynetworks)
کلاینتهای مشخصشده را از اعمال smtpd_forbid_bare_newline مستثنی میکند. این تنظیم از همان ساختار نحوی و رفتار تطبیق دامنه والد (parent-domain) مانند mynetworks استفاده میکند.
این ویژگی در Postfix نسخههای >= 3.9، 3.8.4، 3.7.9، 3.6.13 و 3.5.23 در دسترس است.
smtpd_forbid_bare_newline_reject_code (default: 550)
کد عددی پاسخ سرور SMTP در Postfix هنگام رد یک درخواست با "smtpd_forbid_bare_newline = reject". یک کد وضعیت 5XX مشخص کنید (521 برای قطع ارتباط).
این ویژگی در Postfix نسخههای >= 3.9، 3.8.5، 3.7.10، 3.6.14 و 3.5.24 در دسترس است.
smtpd_forbid_unauth_pipelining (default: Postfix >= 3.9: yes)
کلاینتهای SMTP راه دور را که محدودیتهای خط لوله دستورات (command pipelining) در RFC 2920 (یا 5321) را نقض میکنند، قطع ارتباط میکند. سرور با "554 5.5.0 Error: SMTP protocol synchronization" پاسخ میدهد و ورودی غیرمنتظره کلاینت SMTP راه دور را لاگ میکند. این ویژگی به طور پیشفرض در Postfix >= 3.9 فعال است. برای غیرفعال کردن، "smtpd_forbid_unauth_pipelining = no" را مشخص کنید.
این ویژگی در Postfix نسخههای >= 3.9، 3.8.1، 3.7.6، 3.6.10 و 3.5.20 در دسترس است.
smtpd_forbidden_commands (default: CONNECT GET POST regexp:{{/^[^A-Z]/ Bogus}})
فهرستی از دستوراتی که باعث میشوند سرور SMTP در Postfix بلافاصله نشست را با کد 221 پایان دهد. از این گزینه میتوان برای قطع ارتباط کلاینتهایی که آشکارا قصد سوءاستفاده از سیستم را دارند استفاده کرد. علاوه بر دستورات فهرستشده در این پارامتر، دستوراتی که از قالب ":Label" هدرهای پیام پیروی کنند نیز باعث قطع ارتباط میشوند. در نسخههای 3.6 و پیشین Postfix، مقدار پیشفرض "CONNECT GET POST" است.
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
پشتیبانی از عبارات باقاعده درونخطی در Postfix نسخه 3.7 اضافه شد. برای شرح ساختار نحوی و قابلیتها به regexp_table(5) مراجعه کنید.
smtpd_hard_error_limit (default: normal: 20, overload: 1)
حداکثر تعداد خطاهایی که یک کلاینت SMTP راه دور مجاز است بدون تحویل ایمیل مرتکب شود. سرور SMTP در Postfix با رسیدن به این حد ارتباط را قطع میکند. در حالت عادی حد پیشفرض 20 است، اما در شرایط بار بیش از حد (overload) تنها به 1 تغییر میکند. در Postfix نسخه 2.5 و پیشین، سرور SMTP همیشه به طور پیشفرض تا 20 خطا را مجاز میداند. مقادیر معتبر بزرگتر از صفر هستند.
smtpd_helo_required (default: no)
الزام کلاینت SMTP راه دور به معرفی خود با دستور HELO یا EHLO پیش از ارسال دستور MAIL یا سایر دستوراتی که نیازمند مذاکره EHLO هستند.
مثال:
smtpd_helo_required = yes
smtpd_helo_restrictions (default: empty)
محدودیتهای اختیاری که سرور SMTP در Postfix در بستر دستور HELO کلاینت اعمال میکند. برای بررسی بستر و زمان ارزیابی، به SMTPD_ACCESS_README، بخش "Delayed evaluation of SMTP access restriction lists" مراجعه کنید.
حالت پیشفرض مجاز دانستن همهچیز است.
نکته: برای اعمال کامل این محدودیت، "smtpd_helo_required = yes" را مشخص کنید (بدون "smtpd_helo_required = yes"، یک کلاینت میتواند به سادگی با نفرستادن HELO یا EHLO از smtpd_helo_restrictions عبور کند).
فهرستی از محدودیتها را که با ویرگول و/یا فاصله از هم جدا شدهاند مشخص کنید. خطوط طولانی را با شروع خط بعدی با فاصله ادامه دهید. محدودیتها به همان ترتیبی که مشخص شدهاند اعمال میشوند؛ نخستین محدودیتی که مطابقت داشته باشد اعمال میشود.
محدودیتهای زیر مختص اطلاعات نام میزبانی است که با دستور HELO یا EHLO دریافت میشود.
- check_helo_access type:table
- پایگاه
داده access(5)
مشخصشده
را برای نام
میزبان HELO یا
EHLO جستجو
کرده و
اقدام
متناظر را
اجرا
میکند.
نکته: برای
اعمال کامل
این
محدودیت،
"smtpd_helo_required = yes" را
مشخص کنید
(بدون "smtpd_helo_required =
yes"، یک
کلاینت
میتواند
به سادگی با
نفرستادن HELO
یا EHLO از check_helo_access
عبور کند).
- check_helo_a_access type:table
- پایگاه
داده access(5)
مشخصشده
را برای
آدرسهای IP
نام میزبان
HELO یا EHLO جستجو
کرده و
اقدام
متناظر را
اجرا
میکند.
نکته ۱:
نتیجه "OK" به
دلایل
امنیتی
مجاز نیست.
در عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
لیستهای
مسدودسازی
استفاده
کنید. نکته
۲: برای
اعمال کامل
این
محدودیت،
"smtpd_helo_required = yes" را
مشخص کنید
(بدون "smtpd_helo_required =
yes"، کلاینت
میتواند
به سادگی با
نفرستادن HELO
یا EHLO از check_helo_a_access
عبور کند).
این ویژگی
در Postfix نسخه 3.0 و
بالاتر در
دسترس است.
- check_helo_mx_access type:table
- پایگاه
داده access(5)
مشخصشده
را برای
میزبانهای
MX نام
میزبان HELO یا
EHLO جستجو
کرده و
اقدام
متناظر را
اجرا
میکند. اگر
هیچ رکورد MX
یافت نشود،
همانند
کاری که
کلاینت SMTP در
Postfix انجام
میدهد،
رکوردهای A
یا AAAA را
جستجو
میکند.
نکته ۱:
نتیجه "OK" به
دلایل
امنیتی
مجاز نیست.
در عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
لیستهای
مسدودسازی
استفاده
کنید. نکته
۲: برای
اعمال کامل
این
محدودیت،
"smtpd_helo_required = yes" را
مشخص کنید
(بدون "smtpd_helo_required =
yes"، کلاینت
میتواند
به سادگی با
نفرستادن HELO
یا EHLO از check_helo_mx_access
عبور کند).
این ویژگی
در Postfix نسخه 2.1 و
بالاتر در
دسترس است.
- check_helo_ns_access type:table
- پایگاه
داده access(5)
مشخصشده
را برای
سرورهای DNS
نام میزبان
HELO یا EHLO جستجو
کرده و
اقدام
متناظر را
اجرا
میکند.
نکته ۱:
نتیجه "OK" به
دلایل
امنیتی
مجاز نیست.
در عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
لیستهای
مسدودسازی
استفاده
کنید. نکته
۲: برای
اعمال کامل
این
محدودیت،
"smtpd_helo_required = yes" را
مشخص کنید
(بدون "smtpd_helo_required =
yes"، کلاینت
میتواند
به سادگی با
نفرستادن HELO
یا EHLO از check_helo_ns_access
عبور کند).
این ویژگی
در Postfix نسخه 2.1 و
بالاتر در
دسترس است.
- reject_invalid_helo_hostname (در Postfix < 2.3: reject_invalid_hostname)
- در صورتی که
نام میزبان
HELO یا EHLO بدشکل
باشد،
درخواست را
رد میکند.
نکته: برای
اعمال کامل
این
محدودیت،
"smtpd_helo_required = yes" را
مشخص کنید
(بدون "smtpd_helo_required =
yes"، یک
کلاینت
میتواند
به سادگی با
نفرستادن HELO
یا EHLO از reject_invalid_helo_hostname
عبور کند).
پارامتر invalid_hostname_reject_code کد پاسخ را برای درخواستهای ردشده مشخص میکند (پیشفرض: 501).
- reject_non_fqdn_helo_hostname (در Postfix < 2.3: reject_non_fqdn_hostname)
- در صورتی که
نام میزبان
HELO یا EHLO مطابق
الزامات RFC
به صورت
دامنه
کاملاً
واجد شرایط
(FQDN) یا قالب
مستقیم
آدرس (address literal)
نباشد،
درخواست را
رد میکند.
نکته: برای
اعمال کامل
این
محدودیت،
"smtpd_helo_required = yes" را
مشخص کنید
(بدون "smtpd_helo_required =
yes"، یک
کلاینت
میتواند
به سادگی با
نفرستادن HELO
یا EHLO از reject_non_fqdn_helo_hostname
عبور کند).
پارامتر non_fqdn_reject_code کد پاسخ را برای درخواستهای ردشده مشخص میکند (پیشفرض: 504).
- reject_rhsbl_helo rbl_domain=d.d.d.d
- در صورتی که
نام میزبان
HELO یا EHLO با
رکورد A به
صورت "d.d.d.d"
ذیل rbl_domain
فهرست شده
باشد،
درخواست را
رد میکند
(تنها در Postfix
نسخه 2.1 و
بالاتر). هر
"d" یک عدد
یا یک الگو
درون "[]" است
که شامل یک
یا چند عدد
یا محدوده
عدد..عدد
جداشده با
";" است (Postfix
نسخه 2.8 و
بالاتر).
اگر هیچ
"=d.d.d.d" مشخص
نشده باشد،
در صورتی که
نام میزبان
HELO یا EHLO با هر
رکورد A ذیل
rbl_domain فهرست
شده باشد،
درخواست را
رد میکند.
برای
پارامترهای
پیکربندی
تکمیلی
مرتبط با RBL
به شرح reject_rbl_client
مراجعه
کنید. نکته:
برای اعمال
کامل این
محدودیت،
"smtpd_helo_required = yes" را
مشخص کنید
(بدون "smtpd_helo_required =
yes"، یک
کلاینت
میتواند
به سادگی با
نفرستادن HELO
یا EHLO از reject_rhsbl_helo
عبور کند).
توجه: همواره خطمشیهای استفاده از سرویسهای اعتبارسنجی را رعایت کنید. از تحلیلکنندههای عمومی یا ISP خودداری کنید، مگر اینکه پرسوجوها از کلید API اختصاصی شما استفاده کنند (برای نحوه جلوگیری از افشای کلید API در پاسخهای سرور SMTP به rbl_reply_maps مراجعه کنید).
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
- reject_unknown_helo_hostname (در Postfix < 2.3: reject_unknown_hostname)
- در صورتی که
نام میزبان
HELO یا EHLO فاقد
هرگونه
رکورد DNS A یا MX
باشد،
درخواست را
رد میکند.
پاسخ توسط پارامتر unknown_hostname_reject_code (پیشفرض: 450) یا unknown_helo_hostname_tempfail_action (پیشفرض: defer_if_permit) مشخص میشود. برای جزئیات به شرح پارامترهای مربوطه مراجعه کنید.
نکته: برای اعمال کامل این محدودیت، "smtpd_helo_required = yes" را مشخص کنید (بدون "smtpd_helo_required = yes"، یک کلاینت میتواند به سادگی با نفرستادن HELO یا EHLO از reject_unknown_helo_hostname عبور کند).
سایر محدودیتهای معتبر در این بستر:
- محدودیتهای عمومی قابل استفاده در بستر هر دستور SMTP، شرح داده شده ذیل smtpd_client_restrictions.
- محدودیتهای مختص نام میزبان یا آدرس شبکه کلاینت، شرح داده شده ذیل smtpd_client_restrictions.
- محدودیتهای
مختص
دستورات SMTP،
شرح داده
شده ذیل
smtpd_sender_restrictions یا smtpd_recipient_restrictions.
هنگامی که
محدودیتهای
فرستنده یا
گیرنده ذیل
smtpd_helo_restrictions فهرست
شوند، تنها
با "smtpd_delay_reject = yes"
اثرگذار
خواهند
بود، به
طوری که $smtpd_helo_restrictions
در زمان
دستور RCPT TO
ارزیابی
میشود.
مثالها:
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname smtpd_helo_restrictions = permit_mynetworks, reject_unknown_helo_hostname
smtpd_hide_client_session (default: no)
عدم درج اطلاعات نشست کلاینت SMTP در هدر Received: سرور SMTP در Postfix.
- تنظیم پیشفرض، "smtpd_hide_client_session = no"، باید برای سرویس MTA روی پورت 25 استفاده شود. این تنظیم اطلاعات الزامی بخش 4.4 از RFC 5321 را ارائه میدهد.
- تنظیم "smtpd_hide_client_session =
yes" میتواند
برای
سرویسهای
MUA روی
پورتهای 587
و 465 استفاده
شود. این
گزینه نام
میزبان و
آدرس IP
کلاینت SMTP،
جزئیات
نشست TLS،
جزئیات
ورود SASL، و
جزئیات
پروتکل SMTP را
پنهان
میکند.
بسته به تعداد گیرندگان، یک هدر Received: ویرایششده یکی از فرمهای زیر را خواهد داشت:
Received: by mail.example.com (Postfix) id postfix-queue-id
for <user@example.com>; Day, dd Mon yyyy hh:mm:ss tz-offset (zone)
Received: by mail.example.com (Postfix) id postfix-queue-id;
Day, dd Mon yyyy hh:mm:ss tz-offset (zone)
فرم ویرایششده، دریافت پیام از طریق SMTP را پنهان میکند و بنابراین مطابق با بخش 4.4 از RFC 5321 نیازی به ارائه عبارت FROM ندارد. فرم ویرایششده همچنان الزامات RFC 5322 را برآورده میکند.
این ویژگی در Postfix >= 3.10 در دسترس است.
smtpd_history_flush_threshold (default: 100)
حداکثر تعداد خطوط در تاریخچه دستورات سرور SMTP در Postfix پیش از تخلیه (flush) آن به هنگام دریافت EHLO، RSET یا پایان DATA.
smtpd_junk_command_limit (default: normal: 100, overload: 1)
تعداد دستورات بیهوده (NOOP، VRFY، ETRN یا RSET) که یک کلاینت SMTP راه دور میتواند ارسال کند، پیش از آنکه سرور SMTP در Postfix با هر دستور بیهوده شروع به افزایش شمارنده خطا کند. شمارنده دستورات بیهوده پس از تحویل ایمیل بازنشانی میشود. همچنین پارامترهای پیکربندی smtpd_error_sleep_time و smtpd_soft_error_limit را ببینید. به طور معمول حد پیشفرض 100 است، اما در شرایط بار بیش از حد به 1 تغییر میکند. در Postfix نسخه 2.5 و پیشین، سرور SMTP همیشه به طور پیشفرض تا 100 دستور بیهوده را مجاز میداند.
smtpd_log_access_permit_actions (default: empty)
فعالسازی لاگ اقدامات "permit" نامبرده در لیستهای دسترسی سرور SMTP (به طور پیشفرض، سرور SMTP اقدامات "reject" را لاگ میکند اما اقدامات "permit" را خیر). این ویژگی بر اقدامات مشروط مانند "defer_if_permit" تأثیری ندارد.
فهرستی از نام اقدامات "permit"، الگوهای "/file/name" یا "type:table" را که با ویرگول و/یا فاصله جدا شدهاند مشخص کنید. این فهرست از چپ به راست تطبیق داده میشود و جستجو در اولین تطابق متوقف میشود. یک الگوی "/file/name" با محتوای آن جایگزین میشود؛ جدول جستجوی "type:table" زمانی تطبیق مییابد که یک نام با کلید جستجو مطابقت داشته باشد (نتیجه جستجو نادیده گرفته میشود). خطوط طولانی را با شروع خط بعدی با فاصله ادامه دهید. برای مستثنی کردن یک نام از فهرست، "!pattern" را مشخص کنید.
مثالها:
/etc/postfix/main.cf:
# Log all "permit" actions.
smtpd_log_access_permit_actions = static:all
/etc/postfix/main.cf:
# Log "permit_dnswl_client" only.
smtpd_log_access_permit_actions = permit_dnswl_client
این ویژگی در Postfix نسخه 2.10 و بالاتر در دسترس است.
smtpd_milter_maps (default: empty)
جداول جستجو حاوی تنظیمات Milter به ازای هر آدرس IP کلاینت SMTP راه دور. نتیجه جستجو تنظیمات smtpd_milters را بازنویسی میکند و دارای همان ساختار نحوی است.
نکته: جداول جستجو نمیتوانند پاسخ خالی برگردانند. برای نشان دادن اینکه پشتیبانی Milter باید غیرفعال شود، نتیجه جستجوی DISABLE را مشخص کنید (بزرگی و کوچکی حروف اهمیتی ندارد).
مثال برای غیرفعال کردن Milterها برای کلاینتهای محلی:
/etc/postfix/main.cf:
smtpd_milter_maps = cidr:/etc/postfix/smtpd_milter_map
smtpd_milters = inet:host:port, { inet:host:port, ... }, ...
/etc/postfix/smtpd_milter_map:
# Disable Milters for local clients.
127.0.0.0/8 DISABLE
192.168.0.0/16 DISABLE
::/64 DISABLE
2001:db8::/32 DISABLE
این ویژگی در Postfix نسخه 3.2 و بالاتر در دسترس است.
smtpd_milters (default: empty)
فهرستی از برنامههای Milter (فیلتر ایمیل) برای ایمیلهای جدیدی که از طریق کارگزار smtpd(8) در Postfix دریافت میشوند. فاصله یا کاما را به عنوان جداکننده مشخص کنید. برای جزئیات، سند MILTER_README را ببینید.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
smtpd_min_data_rate (default: 500)
حداقل نرخ انتقال داده متنی ساده بر حسب بایت/ثانیه برای درخواستهای DATA و BDAT، زمانی که مهلتها با smtpd_per_request_deadline فعال شده باشند. پس از اینکه یک عملیات خواندن N بایت پیام متنی را منتقل کرد (احتمالاً پس از رمزگشایی TLS)، و پس از اینکه مهلت درخواست DATA یا BDAT به میزان زمان سپریشده آن عملیات خواندن کاهش یافت، مهلت درخواست DATA یا BDAT به اندازه N/smtpd_min_data_rate ثانیه افزایش مییابد. با این حال، مهلت هرگز فراتر از محدودیت زمانی تعیینشده با smtpd_timeout افزایش نخواهد یافت.
این قابلیت در Postfix نسخه 3.7 و بالاتر در دسترس است.
smtpd_noop_commands (default: empty)
فهرست دستورهایی که کارگزار SMTP در Postfix بدون انجام هرگونه بررسی نحوی و بدون تغییر وضعیت، به آنها با "250 Ok" پاسخ میدهد. این فهرست بر تمامی دستورهای توکار کارگزار SMTP در Postfix تقدم دارد.
smtpd_null_access_lookup_key (default: <>)
کلید جستجویی که به جای آدرس فرستنده پوچ (null) در جدولهای access(5) پروتکل SMTP استفاده میشود.
smtpd_peername_lookup (default: yes)
تلاش برای جستجوی نام میزبان کلاینت دوردست SMTP و راستیآزمایی تطابق نام با آدرس IP کلاینت. چنانچه نام کلاینت قابل جستجو یا راستیآزمایی نباشد، یا جستجوی نام غیرفعال شده باشد، روی "unknown" تنظیم میشود. غیرفعال کردن جستجوی نام، تاخیرهای ناشی از پرسوجوی DNS را کاهش داده و حداکثر نرخ تحویل ورودی را افزایش میدهد.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
smtpd_per_record_deadline (default: normal: no, overload: yes)
تغییر رفتار محدودیتهای زمانی smtpd_timeout و smtpd_starttls_timeout، از محدودیت زمانی برای هر فراخوانی سیستم خواندن یا نوشتن، به محدودیت زمانی برای ارسال یا دریافت یک رکورد کامل (یک خط دستور SMTP، خط پاسخ SMTP، خط محتوای پیام SMTP، یا پیام پروتکل TLS). این کار اثر مخرب مبداهای متخاصم را که دادهها را بایت به بایت ارسال میکنند، محدود میسازد.
نکته: هنگام فعال بودن مهلتهای به ازای هر رکورد، مهلت زمانی کوتاه ممکن است برای TLS روی اتصالات شبکه بسیار کند مشکل ایجاد کند. دلیل این است که یک پیام پروتکل TLS میتواند تا ۱۶ کیلوبایت طول داشته باشد (در TLSv1)، و کل پیام پروتکل TLS باید درون مهلت به ازای هر رکورد ارسال یا دریافت شود.
این قابلیت در Postfix نسخههای 2.9-3.6 در دسترس است. در نگارشهای قدیمیتر Postfix، رفتار بهگونهای است که گویی این پارامتر روی "no" تنظیم شده است. Postfix نسخه 3.7 و بالاتر از smtpd_per_request_deadline استفاده میکنند.
smtpd_per_request_deadline (default: normal: no, overload: yes)
تغییر رفتار محدودیتهای زمانی smtpd_timeout و smtpd_starttls_timeout، از محدودیت زمانی برای هر فراخوانی خواندن یا نوشتن متن ساده یا TLS، به یک محدودیت زمانی ترکیبی برای دریافت یک درخواست کامل SMTP و ارسال یک پاسخ کامل SMTP. مهلت زمانی تنها زمان صرفشده در انتظار فراخوانیهای خواندن یا نوشتن متن ساده یا TLS را محدود میکند، نه زمانی که در بخشهای دیگر سپری میشود. مهلت به ازای هر درخواست، اثر مخرب مبداهای متخاصم را که دادهها را بایت به بایت ارسال میکنند، محدود میسازد.
برای نحوه مدیریت مهلت به ازای هر درخواست در طول فاز DATA و BDAT، پارامتر smtpd_min_data_rate را ببینید.
نکته: هنگام فعال بودن مهلتهای به ازای هر درخواست، محدودیت زمانی کوتاه ممکن است برای TLS روی اتصالات شبکه بسیار کند مشکل ایجاد کند. دلیل این است که یک پیام پروتکل TLS میتواند تا ۱۶ کیلوبایت طول داشته باشد (در TLSv1)، و کل پیام پروتکل TLS باید درون مهلت به ازای هر درخواست منتقل شود.
این قابلیت در Postfix نسخه 3.7 و بالاتر در دسترس است. قابلیتی ضعیفتر با نام smtpd_per_record_deadline در Postfix نسخههای 2.9-3.6 ارائه شده است. در نگارشهای قدیمیتر Postfix، رفتار بهگونهای است که گویی این پارامتر روی "no" تنظیم شده است.
این قابلیت در Postfix نسخه 3.7 و بالاتر در دسترس است.
smtpd_policy_service_default_action (default: 451 4.3.5 Server configuration problem)
اقدام پیشفرض هنگامی که یک درخواست سرویس خطمشی SMTPD با شکست مواجه میشود. "DUNNO" را تعیین کنید تا رفتاری مشابه با عدم ارسال درخواست سرویس خطمشی ناموفق SMTPD اعمال شود و پردازش سایر محدودیتهای دسترسی (در صورت وجود) ادامه یابد.
محدودیتها:
- این پارامتر میتواند هر مقداری را که یک پاسخ معتبر کارگزار خطمشی SMTPD (یا نتیجه جستجوی نگاشت access(5)) باشد تعیین کند. نگاشت access(5) یا کارگزار خطمشی در مقدار این پارامتر ممکن است نیازمند اعلان قبلی با تنظیم restriction_class باشد.
- اگر اقدام
تعیینشده،
درخواست
check_policy_service دیگری
را
فراخوانی
کند، آن
درخواست از
اقدام
پیشفرض
توکار
استفاده
خواهد کرد.
این قابلیت در Postfix نسخه 3.0 و بالاتر در دسترس است.
smtpd_policy_service_max_idle (default: 300s)
زمانی که پس از آن یک اتصال بیکار سرویس خطمشی SMTPD بسته میشود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه پسوند تکحرفی اختیاری که واحد زمانی را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtpd_policy_service_max_ttl (default: 1000s)
زمانی که پس از آن یک اتصال فعال سرویس خطمشی SMTPD بسته میشود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه پسوند تکحرفی اختیاری که واحد زمانی را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtpd_policy_service_policy_context (default: empty)
اطلاعات اختیاری که کارگزار SMTP در Postfix در مشخصه "policy_context" یک درخواست سرویس خطمشی تعیین میکند (در اصل، برای اشتراک یک نقطه پایانی سرویس یکسان میان چندین کلاینت check_policy_service).
این قابلیت در Postfix نسخه 3.1 و بالاتر در دسترس است.
smtpd_policy_service_request_limit (default: 0)
حداکثر تعداد درخواستها به ازای هر اتصال سرویس خطمشی SMTPD، یا صفر (بدون محدودیت). هنگامی که یک اتصال به این حد برسد، اتصال بسته شده و درخواست بعدی روی اتصالی جدید ارسال خواهد شد. این روش راهکاری جایگزین برای جلوگیری از تاخیرهای بازیابی خطا با کارگزارهای خطمشی است که قادر به حفظ یک اتصال پایدار نیستند.
این قابلیت در Postfix نسخه 3.0 و بالاتر در دسترس است.
smtpd_policy_service_retry_delay (default: 1s)
تاخیر میان تلاشها برای ارسال مجدد یک درخواست ناموفق سرویس خطمشی SMTPD. مقداری بزرگتر از صفر مشخص کنید.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه پسوند تکحرفی اختیاری که واحد زمانی را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix نسخه 3.0 و بالاتر در دسترس است.
smtpd_policy_service_timeout (default: 100s)
محدودیت زمانی برای اتصال، نوشتن یا دریافت از یک کارگزار خطمشی واگذارشده SMTPD.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه پسوند تکحرفی اختیاری که واحد زمانی را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtpd_policy_service_try_limit (default: 2)
حداکثر تعداد تلاشها برای ارسال یک درخواست سرویس خطمشی SMTPD پیش از انصراف. مقداری بزرگتر از صفر مشخص کنید.
این قابلیت در Postfix نسخه 3.0 و بالاتر در دسترس است.
smtpd_proxy_ehlo (default: $myhostname)
نحوه معرفی کارگزار SMTP در Postfix به فیلتر پروکسی. بهطور پیشفرض، از نام میزبان Postfix استفاده میشود.
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtpd_proxy_filter (default: empty)
نام میزبان و پورت TCP کارگزار پروکسی فیلتر ایمیل. پروکسی تمامی ایمیلها را از کارگزار SMTP در Postfix دریافت کرده و قرار است نتیجه را به یک فرآیند دیگر کارگزار SMTP در Postfix تحویل دهد.
عبارت "host:port" یا "inet:host:port" را برای نقطه پایانی TCP، یا "unix:pathname" را برای نقطه پایانی سوکت دامنه یونیکس مشخص کنید. میزبان میتواند به عنوان یک آدرس IP یا نام نمادین تعیین شود؛ هیچ پرسوجوی MX انجام نمیشود. هنگامی که "host" یا "host:" تعیین نشده باشد، ماشین محلی فرض میشود. تفسیر نام مسیر نسبت به دایرکتوری صف Postfix صورت میگیرد.
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است.
پیشوندهای "inet:" و "unix:" در Postfix نسخه 2.3 و بالاتر در دسترس هستند.
smtpd_proxy_options (default: empty)
فهرستی از گزینهها که نحوه ارتباط کارگزار SMTP در Postfix با فیلتر محتوای پیش از صف (before-queue) را کنترل میکنند. صفر یا چند مورد از گزینههای زیر را، جداشده با کاما یا فضای خالی، مشخص کنید.
- speed_adjust
- تا زمانی که کل یک پیام دریافت نشده است، به فیلتر محتوای پیش از صف متصل نشوید. این کار تعداد فرآیندهای همزمان فیلتر محتوای پیش از صف را کاهش میدهد.
نکته ۱: یک فیلتر نباید گیرندگان یک پیام چندگیرندهای را بهصورت انتخابی رد کند. رد کردن همه گیرندگان بلامانع است، همانگونه که پذیرش همه گیرندگان مجاز است.
نکته ۲:
این قابلیت
حداقل
میزان فضای
آزاد صف را
به اندازه
$message_size_limit افزایش
میدهد.
فضای اضافی
جهت ذخیره
پیام در یک
فایل موقت
مورد نیاز
است.
این قابلیت در Postfix نسخه 2.7 و بالاتر در دسترس است.
smtpd_proxy_timeout (default: 100s)
محدودیت زمانی برای اتصال به یک فیلتر پروکسی و ارسال یا دریافت اطلاعات. هنگامی که یک اتصال با شکست مواجه میشود کلاینت پیامی خطای عمومی دریافت کرده، در حالی که اطلاعات دقیقتر در فایل maillog ثبت میشود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه پسوند تکحرفی اختیاری که واحد زمانی را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtpd_recipient_limit (default: 1000)
حداکثر تعداد گیرندگانی که کارگزار SMTP در Postfix به ازای هر درخواست تحویل پیام میپذیرد.
smtpd_recipient_overshoot_limit (default: 1000)
تعداد گیرندگانی که یک کلاینت دوردست SMTP میتواند مازاد بر حد مشخصشده با $smtpd_recipient_limit ارسال کند، پیش از آنکه کارگزار SMTP در Postfix شمارنده خطای هر نشست را به ازای هر گیرنده مازاد افزایش دهد.
smtpd_recipient_restrictions (default: see postconf -d output)
محدودیتهای اختیاری که کارگزار SMTP در Postfix در زمینه دستور RCPT TO کلاینت، پس از smtpd_relay_restrictions اعمال میکند. برای بررسی زمینه و زمان ارزیابی، SMTPD_ACCESS_README، بخش "Delayed evaluation of SMTP access restriction lists" را ببینید.
در نگارشهای Postfix پیش از 2.10، قواعد مجوز رله و مسدودسازی هرزنامه زیر smtpd_recipient_restrictions تجمیع شده بودند که منجر به پیکربندیهای مستعد خطا میشد. از نسخه 2.10 در Postfix، قواعد مجوز رله ترجیحاً با smtpd_relay_restrictions پیادهسازی میشوند تا سیاست سهلانگار مسدودسازی هرزنامه ذیل smtpd_recipient_restrictions دیگر منجر به سیاست سهلانگار رله ایمیل نگردد.
جهت سازگاری با گذشته، سیستمهایی که از نسخههای پیش از 2.10 به نسخههای جدیدتر مهاجرت میکنند میتوانند smtpd_relay_restrictions را روی مقدار خالی تنظیم کنند و از smtpd_recipient_restrictions دقیقاً مانند گذشته استفاده نمایند.
مهم: پارامتر smtpd_relay_restrictions یا smtpd_recipient_restrictions باید حداقل یکی از محدودیتهای زیر را مشخص کند. در غیر این صورت Postfix از دریافت ایمیل امتناع خواهد کرد:
reject, reject_unauth_destination
defer, defer_if_permit, defer_unauth_destination
فهرستی از محدودیتها را که با کاما و/یا فضای خالی جدا شدهاند مشخص کنید. خطوط طولانی را با شروع خط بعدی با فضای خالی ادامه دهید. محدودیتها به ترتیب مشخصشده اعمال میشوند؛ اولین محدودیتی که تطبیق یابد ملاک خواهد بود.
محدودیتهای زیر مختص آدرس گیرندهای هستند که همراه با دستور RCPT TO دریافت میشود.
- check_recipient_access type:table
- جستجوی
پایگاهداده
access(5)
مشخصشده
برای آدرس
تفکیکشده
RCPT TO و اجرای
اقدام
متناظر.
- check_recipient_a_access type:table
- جستجوی
پایگاهداده
access(5)
مشخصشده
برای
آدرسهای IP
دامنه RCPT TO و
اجرای
اقدام
متناظر.
نکته: نتیجه
"OK" به دلایل
ایمنی مجاز
نیست. در
عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
فهرستهای
انکار
استفاده
کنید. این
قابلیت در Postfix
نسخه 3.0 و
بالاتر در
دسترس است.
- check_recipient_mx_access type:table
- جستجوی
پایگاهداده
access(5)
مشخصشده
برای
میزبانهای
MX دامنه RCPT TO و
اجرای
اقدام
متناظر. در
صورت عدم
یافتن
رکورد MX،
رکوردهای A
یا AAAA را
جستجو
میکند،
درست مانند
رفتاری که
کلاینت SMTP در
Postfix دارد.
نکته: نتیجه
"OK" به دلایل
ایمنی مجاز
نیست. در
عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
فهرستهای
انکار
استفاده
کنید. این
قابلیت در Postfix
نسخه 2.1 و
بالاتر در
دسترس است.
- check_recipient_ns_access type:table
- جستجوی
پایگاهداده
access(5)
مشخصشده
برای
سرورهای DNS
دامنه RCPT TO و
اجرای
اقدام
متناظر.
نکته: نتیجه
"OK" به دلایل
ایمنی مجاز
نیست. در
عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
فهرستهای
انکار
استفاده
کنید. این
قابلیت در Postfix
نسخه 2.1 و
بالاتر در
دسترس است.
- permit_auth_destination
- مجاز دانستن درخواست در صورتی که یکی از موارد زیر برقرار باشد:
- سیستم Postfix یک هدایتکننده ایمیل است: دامنه تفکیکشده RCPT TO با $relay_domains یا زیردامنهای از آن مطابقت دارد، و آدرس حاوی مسیریابی مشخصشده توسط فرستنده (user@elsewhere@domain) نیست،
- سیستم Postfix
مقصد نهایی
است: دامنه
تفکیکشده
RCPT TO با $mydestination، $inet_interfaces،
$proxy_interfaces، $virtual_alias_domains، یا
$virtual_mailbox_domains مطابقت
دارد، و
آدرس حاوی
مسیریابی
مشخصشده
توسط
فرستنده
(user@elsewhere@domain) نیست.
- permit_mx_backup
- مجاز دانستن درخواست در صورتی که سیستم ایمیل محلی یک MX پشتیبان برای دامنه RCPT TO باشد، یا دامنه یک مقصد مجاز باشد (برای تعریف، permit_auth_destination را ببینید).
- ایمنی: permit_mx_backup آدرسهایی را که حاوی اطلاعات مسیریابی ارائهشده توسط فرستنده هستند (مانند: user@elsewhere@domain) نمیپذیرد.
- ایمنی: اگر دسترسی با permit_mx_backup_networks محدود نشده باشد، permit_mx_backup میتواند در معرض سوءاستفاده قرار گیرد.
- ایمنی: از نسخه 2.3 در Postfix، هنگامی که سیستم ایمیل محلی یک MX اصلی برای دامنه گیرنده باشد، permit_mx_backup دیگر آدرس را نمیپذیرد. استثنا: permit_mx_backup آدرس را در صورتی که مشخصکننده یک مقصد مجاز باشد میپذیرد (برای تعریف، permit_auth_destination را ببینید).
- محدودیت: در
نسخههای Postfix
پیش از 2.0 در
صورت بروز
مشکل موقت
در جستجوی
DNS، ممکن است
ایمیل رد
شود.
- reject_non_fqdn_recipient
- رد کردن
درخواست
هنگامی که
آدرس RCPT TO
دامنهای
را مشخص
میکند که
طبق
الزامات RFC
در قالب نام
دامنه
کاملاً
واجد شرایط
(FQDN) نیست.
پارامتر non_fqdn_reject_code کد پاسخ را برای درخواستهای ردشده مشخص میکند (پیشفرض: 504).
- reject_rhsbl_recipient rbl_domain=d.d.d.d
- رد کردن
درخواست
هنگامی که
دامنه RCPT TO با
رکورد A به
صورت "d.d.d.d"
ذیل rbl_domain
فهرست شده
باشد (فقط
در Postfix نسخه 2.1 و
بالاتر). هر
"d" یک عدد
یا الگویی
درون "[]" است
که شامل یک
یا چند عدد
جداشده با
";" یا
محدودههای
عدد..عدد
است (Postfix نسخه 2.8
و بالاتر).
در صورتی که
"=d.d.d.d" مشخص
نشده باشد،
درخواست
زمانی رد
میشود که
دامنه RCPT TO با
هر رکورد A
ذیل rbl_domain
فهرست شده
باشد.
پارامتر maps_rbl_reject_code کد پاسخ را برای درخواستهای ردشده مشخص میکند (پیشفرض: 554)؛ پارامتر default_rbl_reply پاسخ پیشفرض کارگزار را مشخص میکند؛ و پارامتر rbl_reply_maps جدولهای حاوی پاسخهای کارگزار را که بر اساس rbl_domain نمایهگذاری شدهاند مشخص میسازد.
نکته: همواره به سیاستهای استفاده از سرویسهای ارزیابی اعتبار احترام بگذارید. از تحلیلگرهای عمومی یا ISP بپرهیزید، مگر اینکه پرسوجوها با کلید API یکتای شما ارسال شوند (برای نحوه جلوگیری از افشای کلید API در پاسخهای کارگزار SMTP، پارامتر rbl_reply_maps را ببینید).
این قابلیت در Postfix نسخه 2.0 و بالاتر در دسترس است.
- reject_unauth_destination
- درخواست رد میشود مگر اینکه یکی از موارد زیر برقرار باشد:
- Postfix بازپخشکننده ایمیل باشد: دامنه تحلیلشده در RCPT TO با $relay_domains یا یکی از زیردامنههای آن مطابقت دارد و فاقد مسیریابی تعیینشده توسط فرستنده (user@elsewhere@domain) است،
- Postfix مقصد
نهایی باشد:
دامنه
تحلیلشده
در RCPT TO با $mydestination،
$inet_interfaces، $proxy_interfaces، $virtual_alias_domains
یا $virtual_mailbox_domains
مطابقت
دارد و فاقد
مسیریابی
تعیینشده
توسط
فرستنده
(user@elsewhere@domain) است.
پارامتر relay_domains_reject_code کد پاسخ را برای درخواستهای رد شده مشخص میکند (پیشفرض: 554).
- defer_unauth_destination
- درخواستهای
مشابه reject_unauth_destination
را با یک کد
خطای موقت
رد میکند.
این ویژگی
در Postfix نسخه 2.10 و
بالاتر در
دسترس است.
- reject_unknown_recipient_domain
- رد کردن
درخواست
هنگامی که Postfix
مقصد نهایی
برای دامنه
گیرنده
نیست، و
دامنه RCPT TO
دارای ۱)
فاقد
رکوردهای DNS MX
و DNS A باشد یا ۲)
دارای یک
رکورد MX
ناقص یا
معیوب
مانند
رکوردی با
نام میزبان
MX با طول صفر
باشد (Postfix نسخه
2.3 و بالاتر).
پاسخ توسط پارامتر unknown_address_reject_code (پیشفرض: 450)، unknown_address_tempfail_action (پیشفرض: defer_if_permit) یا 556 (nullmx، در Postfix 3.0 و بالاتر) مشخص میشود. برای جزئیات به شرح پارامترهای مربوطه مراجعه کنید.
- reject_unlisted_recipient (with Postfix version 2.0: check_recipient_maps)
- رد کردن
درخواست
هنگامی که
آدرس RCPT TO در
فهرست
گیرندگان
معتبر برای
کلاس دامنه
مربوطه
فهرست نشده
باشد. برای
جزئیات به
توضیحات
پارامتر
smtpd_reject_unlisted_recipient
مراجعه
کنید. این
ویژگی در Postfix
نسخه 2.1 و
بالاتر در
دسترس است.
- reject_unverified_recipient
- رد کردن
درخواست
هنگامی که
مشخص است
ایمیل به
آدرس RCPT TO
برگشت
میخورد (bounce)،
یا زمانی که
مقصد آدرس
گیرنده
قابل دسترس
نیست.
اطلاعات
اعتبارسنجی
آدرس توسط
کارگزار verify(8)
مدیریت
میشود؛
برای
جزئیات به
فایل ADDRESS_VERIFICATION_README
مراجعه
کنید.
پارامتر unverified_recipient_reject_code کد پاسخ عددی را هنگام مشخص بودن برگشت آدرس تعیین میکند (پیشفرض: 450، زمانی که اطمینان دارید این کار ایمن است آن را به 550 تغییر دهید).
پارامتر unverified_recipient_defer_code کد پاسخ عددی را زمانی که کاوش آدرس به دلیل یک مشکل موقت با شکست مواجه میشود تعیین میکند (پیشفرض: 450).
پارامتر unverified_recipient_tempfail_action اقدام لازم پس از شکست کاوش آدرس به دلیل یک مشکل موقت را تعیین میکند (پیشفرض: defer_if_permit).
این ویژگی برای آدرسهای دارای نام مستعار با "enable_original_recipient = no" با خطا مواجه میشود (Postfix <= 3.2).
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
سایر محدودیتهایی که در این زمینه معتبر هستند:
- محدودیتهای عمومی که میتوانند در زمینه هر دستور SMTP استفاده شوند، که تحت smtpd_client_restrictions شرح داده شدهاند.
- محدودیتهای
خاص
دستورات SMTP
که تحت
smtpd_client_restrictions، smtpd_helo_restrictions و
smtpd_sender_restrictions شرح
داده
شدهاند.
مثال:
# The Postfix before 2.10 default mail relay policy. Later Postfix # versions implement this preferably with smtpd_relay_restrictions. smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
smtpd_reject_filter_maps (default: empty)
یک فیلتر اختیاری که میتواند پاسخ رد را از خود کارگزار SMTP مربوط به Postfix یا از برنامهای که از طریق کارگزار SMTP مربوط به Postfix پاسخ میدهد، جایگزین کند. فیلتر قبل از افزودن پانوشتهای اختیاری رد اعمال میشود. معمولاً، این فیلتر یک جدول regexp: یا pcre: است که سمت چپ آن یک الگو و سمت راست آن متن جایگزین را مشخص میکند.
ورودی، پاسخ کارگزار است که با کد پاسخ 4XX یا 5XX آغاز میشود (RFC 5321 را ببینید)، و معمولاً پس از آن یک کد وضعیت بهبودیافته (RFC 3463 را ببینید) و متن میآید. فیلتر متن جایگزین را برمیگرداند یا عدم تطابق را نشان میدهد. از این ویژگی نمیتوان برای تبدیل پاسخ رد به غیررد یا برعکس استفاده کرد.
محدودیت: smtpd_reject_filter_maps متنی را که پیش از ارسال پاسخ کارگزار SMTP مربوط به Postfix به کلاینت SMTP دوردست ثبت شده است، جایگزین نخواهد کرد. برای کمک به تحلیل فایل لاگ، کارگزار SMTP مربوط به Postfix هم پاسخ دستنخورده (که در زیر به عنوان "reject filter in" ثبت شده) و هم پاسخ جایگزین (که در زیر به عنوان "reject filter out" ثبت شده) را لاگ میکند.
مثال:
/etc/postfix/main.cf:
smtpd_reject_filter_maps = regexp:/etc/postfix/smtpd_reject_filter
/etc/postfix/smtpd_reject_filter:
# Replace soft reject with hard reject.
/^451 4(\.6\.0 Alias expansion error)/ 550 5${1}
# Silly rule for demo purposes. /^(4.+[^.])\.*$/ $1. See you later.
/var/log/maillog:
NOQUEUE: reject filter in: 451 4.6.0 Alias expansion error
NOQUEUE: reject filter out: 550 5.6.0 Alias expansion error
این ویژگی در Postfix نسخه 3.11 یا بالاتر در دسترس است.
smtpd_reject_footer (default: empty)
اطلاعات اختیاری که پس از هر پاسخ 4XX یا 5XX کارگزار SMTP مربوط به Postfix پیوست میشود.
مثال زیر از "\c" در ابتدای الگو استفاده میکند (پشتیبانیشده در Postfix نسخه 2.10 و بالاتر) تا شکست خط میان متن پاسخ و متن پانوشت را نادیده بگیرد. در نسخههای پیشین Postfix، متن پانوشت همیشه در یک خط جدید آغاز میشود، و "\c" به صورت لفظی چاپ میشود.
/etc/postfix/main.cf:
smtpd_reject_footer = \c. For assistance, call 800-555-0101.
Please provide the following information in your problem report:
time ($localtime), client ($client_address) and server
($server_name).
پاسخ کارگزار:
550-5.5.1 <user@example> Recipient address rejected: User unknown. For assistance, call 800-555-0101. Please provide the following information in your problem report: time (Jan 4 15:42:00), client (192.168.1.248) and server (mail1.example.com).
نکته: متن بالا برای آسانتر کردن یافتن رکوردهای فایل لاگ Postfix برای یک نشست ناموفق SMTP در نظر گرفته شده است. خود متن در فایل maillog کارگزار SMTP مربوط به Postfix ثبت نمیشود.
حتماً متن را تا حد ممکن کوتاه نگه دارید. متن طولانی ممکن است پیش از ثبت در فایل maillog کلاینت SMTP دوردست یا قبل از بازگردانده شدن به فرستنده در اعلان وضعیت تحویل (delivery status notification) کوتاه و قطع شود.
متن الگو مشمول بسط پارامتر پیکربندی Postfix یعنی $name قرار نمیگیرد. در عوض، این ویژگی از تعداد محدودی از ویژگیهای $name در متن پانوشت پشتیبانی میکند. این ویژگیها با مقدار فعلی خود برای نشست SMTP جایگزین میشوند.
نکته: در متن پانوشتی که از smtpd_reject_footer_maps مبتنی بر regexp: یا pcre: جستجو میشود، $$name را مشخص کنید؛ در غیر این صورت کارگزار Postfix از متن پانوشت استفاده نخواهد کرد و در عوض یک هشدار لاگ میکند.
- client_address
- آدرس IP
کلاینت که
در فایل maillog
ثبت میشود.
- client_port
- پورت TCP
کلاینت که
در فایل maillog
ثبت میشود.
- localtime
- زمان محلی
سرور (Mmm dd hh:mm:ss) که
در فایل maillog
ثبت میشود.
- server_name
- مقدار myhostname
کارگزار.
این ویژگی
برای
سایتهایی
با چندین MTA
(شاید پشت
یک
توزیعکننده
بار) ارائه
شده است،
جایی که نام
سرور
میتواند
به تیم
پشتیبانی
کمک کند تا
سریعاً
فایلهای
لاگ مناسب
را پیدا
کنند.
نکات:
- سایر ویژگیها مانند فرستنده، گیرنده یا پارامترهای main.cf پشتیبانی نمیشوند.
- به دلایل
امنیتی،
متنی که با
$smtpd_expansion_filter مطابقت
نداشته
باشد
سانسور
میشود.
این قابلیت از توالی دو کاراکتری \n به عنوان درخواستی برای شکست خط در متن پانوشت پشتیبانی میکند. Postfix به طور خودکار پس از هر شکست خط، کد پاسخ سه رقمی SMTP (و کد وضعیت بهبودیافته اختیاری) را از پیام رد اولیه Postfix درج میکند.
برای دور زدن نرمافزارهای ایمیلی که پاسخهای چندخطی را به اشتباه مدیریت میکنند، توالی دو کاراکتری \c را در ابتدای الگو مشخص کنید. این کار شکست خط میان متن پاسخ و متن پانوشت را لغو میکند (Postfix نسخه 2.10 و بالاتر).
این ویژگی در Postfix نسخه 2.8 و بالاتر در دسترس است.
smtpd_reject_footer_maps (default: empty)
جدولهای جستجو، ایندکسشده بر اساس پاسخ کامل 4xx یا 5xx کارگزار SMTP مربوط به Postfix، همراه با الگوهای پانوشت رد. برای جزئیات به smtpd_reject_footer مراجعه کنید.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله یا ویرگول جدا شده باشند. جدولها به ترتیب مشخصشده تا زمان یافتن یک تطابق جستجو خواهند شد.
این ویژگی در Postfix نسخه 3.4 و بالاتر در دسترس است.
smtpd_reject_unlisted_recipient (default: yes)
درخواست اینکه کارگزار SMTP مربوط به Postfix ایمیلها را برای آدرسهای گیرنده ناشناخته رد کند، حتی زمانی که هیچ محدودیت دسترسی صریح reject_unlisted_recipient مشخص نشده باشد. این کار از پر شدن صف Postfix با پیامهای غیرقابل تحویل MAILER-DAEMON جلوگیری میکند.
یک آدرس زمانی «ناشناخته» تلقی میشود که ۱) با یک نام مستعار virtual(5) یا نگاشت canonical(5) مطابقت نداشته باشد، و ۲) آدرس برای کلاس آدرس خود معتبر نباشد. برای تعریفی از اعتبارسنجی آدرس مبتنی بر کلاس، ADDRESS_CLASS_README را ببینید.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtpd_reject_unlisted_sender (default: no)
درخواست اینکه کارگزار SMTP مربوط به Postfix ایمیلهای دریافتی از آدرسهای فرستنده ناشناخته را رد کند، حتی اگر محدودیت دسترسی صریح reject_unlisted_sender مشخص نشده باشد. این امر میتواند از انفجار ایمیلهای جعلشده ناشی از کرمها یا ویروسها بکاهد.
یک آدرس زمانی «ناشناخته» تلقی میشود که ۱) با یک نام مستعار virtual(5) یا نگاشت canonical(5) مطابقت نداشته باشد، و ۲) آدرس برای کلاس آدرس خود معتبر نباشد. برای تعریفی از اعتبارسنجی آدرس مبتنی بر کلاس، ADDRESS_CLASS_README را ببینید.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtpd_relay_before_recipient_restrictions (default: see postconf -d output)
ارزیابی smtpd_relay_restrictions پیش از smtpd_recipient_restrictions. از نظر تاریخی، smtpd_relay_restrictions پس از smtpd_recipient_restrictions ارزیابی میشد که متناقض با رفتار مستند شده بود.
پیشزمینه: قابلیت smtpd_relay_restrictions اساساً برای اعمال خطمشی بازپخش ایمیل طراحی شده است، در حالی که smtpd_recipient_restrictions اساساً برای اعمال خطمشی مسدودسازی هرزنامه طراحی شده است. هر دو هنگام پاسخ دادن به دستور RCPT TO ارزیابی میشوند و هر دو از ویژگیهای یکسانی پشتیبانی میکنند.
این ویژگی در Postfix نسخه 3.6 و بالاتر در دسترس است.
smtpd_relay_restrictions (default: permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination)
محدودیتهای دسترسی برای کنترل بازپخش ایمیل که کارگزار SMTP مربوط به Postfix در زمینه دستور RCPT TO، قبل از smtpd_recipient_restrictions اعمال میکند. برای بررسی زمینه و زمان ارزیابی، بخش "Delayed evaluation of SMTP access restriction lists" در سند SMTPD_ACCESS_README را ببینید.
در نسخههای Postfix پیش از 2.10، قوانین مربوط به مجوز بازپخش و مسدودسازی هرزنامه در زیر smtpd_recipient_restrictions ادغام شده بودند که منجر به پیکربندیهای مستعد خطا میشد. از نسخه 2.10 Postfix، ترجیحاً قوانین مجوز بازپخش با smtpd_relay_restrictions پیادهسازی میشوند، به طوری که یک سیاست مسدودسازی هرزنامه آسانگیر در smtpd_recipient_restrictions دیگر منجر به یک سیاست بازپخش ایمیل آسانگیر نخواهد شد.
برای سازگاری با نسخههای پیشین، سیستمهایی که از نسخههای Postfix قبل از 2.10 مهاجرت میکنند، میتوانند smtpd_relay_restrictions را روی مقدار خالی تنظیم کرده و دقیقاً مانند قبل از smtpd_recipient_restrictions استفاده کنند.
بهطور پیشفرض، کارگزار SMTP مربوط به Postfix موارد زیر را میپذیرد:
- ایمیلهای دریافتی از کلاینتهایی که آدرس IP آنها با $mynetworks مطابقت دارد، یا:
- ایمیلهای دریافتی از کلاینتهایی که با SASL احراز هویت شدهاند، یا:
- ایمیلها به مقصد مقصدهای دوری که با $relay_domains مطابقت دارند، به جز آدرسهایی که حاوی مسیریابی مشخصشده توسط فرستنده هستند (user@elsewhere@domain)، یا:
- ایمیلها
به مقصدهای
محلی که با
$inet_interfaces یا $proxy_interfaces،
$mydestination، $virtual_alias_domains یا
$virtual_mailbox_domains مطابقت
دارند.
مهم: یا پارامتر smtpd_relay_restrictions یا smtpd_recipient_restrictions باید حداقل یکی از محدودیتهای زیر را مشخص کند. در غیر این صورت Postfix از دریافت ایمیل خودداری خواهد کرد:
reject, reject_unauth_destination
defer, defer_if_permit, defer_unauth_destination
فهرستی از محدودیتها را مشخص کنید که با کاما و/یا فاصله از یکدیگر جدا شدهاند. خطوط طولانی را با آغاز کردن خط بعدی با فاصله ادامه دهید. همان محدودیتهایی در دسترس هستند که تحت smtpd_recipient_restrictions مستند شدهاند.
این ویژگی در Postfix نسخه 2.10 و بالاتر در دسترس است.
smtpd_restriction_classes (default: empty)
نامهای مستعار تعریفشده توسط کاربر برای گروههایی از محدودیتهای دسترسی. این نامهای مستعار را میتوان در smtpd_recipient_restrictions و غیره، و همچنین در سمت راست جدول access(5) مربوط به Postfix مشخص کرد.
یک کاربرد عمده برای پیادهسازی کنترل UCE به ازای هر گیرنده است. برای مثالهای دیگر به سند RESTRICTION_CLASS_README مراجعه کنید.
smtpd_sasl_application_name (default: smtpd)
نام برنامهای که کارگزار SMTP مربوط به Postfix برای مقداردهی اولیه سرور SASL استفاده میکند. این نام فایل پیکربندی SASL را کنترل میکند. مقدار پیشفرض smtpd است که با یک فایل پیکربندی SASL به نام smtpd.conf مطابقت دارد.
این ویژگی در Postfix نسخه 2.1 و 2.2 در دسترس است. از Postfix 2.3 به smtpd_sasl_path تغییر نام یافت.
smtpd_sasl_auth_enable (default: no)
فعالسازی احراز هویت SASL در کارگزار SMTP پستفیکس (Postfix). بهطور پیشفرض، کارگزار SMTP پستفیکس از احراز هویت استفاده نمیکند.
اگر یک کلاینت SMTP دوردست احراز هویت شود، محدودیت دسترسی permit_sasl_authenticated میتواند برای مجاز کردن دسترسی بازپخش (relay) به این صورت استفاده شود:
# With Postfix 2.10 and later, the mail relay policy is
# preferably specified under smtpd_relay_restrictions.
smtpd_relay_restrictions =
permit_mynetworks, permit_sasl_authenticated, ...
# With Postfix before 2.10, the relay policy can be
# specified only under smtpd_recipient_restrictions.
smtpd_recipient_restrictions =
permit_mynetworks, permit_sasl_authenticated, ...
برای رد کردن تمام اتصالهای SMTP از کلاینتهای احراز هویتنشده، مقدار "smtpd_delay_reject = yes" (که مقدار پیشفرض است) را مشخص کرده و استفاده کنید از:
smtpd_client_restrictions = permit_sasl_authenticated, reject
برای جزئیات پیکربندی و نحوهٔ عملکرد SASL، فایل SASL_README را ببینید.
smtpd_sasl_authenticated_header (default: no)
گزارش نام کاربری احراز هویتشده با SASL در هدر پیام Received مربوط به smtpd(8).
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
smtpd_sasl_exceptions_networks (default: empty)
کلاینتهای SMTP دوردستی که کارگزار SMTP پستفیکس به آنها پشتیبانی AUTH را ارائه نمیدهد.
برخی کلاینتها (دستکم Netscape 4) باگی دارند که موجب میشود هر زمان که AUTH ارائه شود، فارغ از ضروری بودن یا نبودن، نام کاربری و گذرواژه بخواهند. برای دور زدن این مشکل، مثلاً $mynetworks را مشخص کنید تا از ارائهٔ AUTH توسط Postfix به کلاینتهای محلی جلوگیری شود.
فهرستی از الگوهای network/netmask را که با کاما و/یا نویسهٔ فاصلهساز از هم جدا شدهاند مشخص کنید. ماسک (mask)، تعداد بیتها در بخش شبکهٔ یک آدرس میزبان را مشخص میکند. همچنین میتوانید الگوهای "/file/name" یا "type:table" را مشخص کنید. یک الگوی "/file/name" با محتویات آن جایگزین میشود؛ یک جدول جستجوی "type:table" زمانی تطبیق مییابد که یک مدخل جدول با رشتهٔ جستجو مطابقت کند (نتیجهٔ جستجو نادیده گرفته میشود). خطوط طولانی را با شروع کردن خط بعدی با نویسهٔ فاصلهساز ادامه دهید. برای مستثنی کردن یک آدرس یا بلوک شبکه از فهرست، عبارت "!pattern" را مشخص کنید. قالب "!/file/name" تنها در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
نکته: اطلاعات آدرسهای IP نسخه 6 باید درون [] در مقدار smtpd_sasl_exceptions_networks و در فایلهای مشخصشده با "/file/name" قرار گیرند. آدرسهای IP نسخه 6 شامل نویسهٔ ":" هستند و در غیر این صورت با الگوی "type:table" اشتباه گرفته خواهند شد.
مثال:
smtpd_sasl_exceptions_networks = $mynetworks
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است.
smtpd_sasl_local_domain (default: empty)
نام قلمرو (realm) محلی احراز هویت SASL در کارگزار SMTP پستفیکس.
بهطور پیشفرض، نام قلمرو محلی احراز هویت، یک رشتهٔ تهی (null string) است.
مثالها:
smtpd_sasl_local_domain = $mydomain smtpd_sasl_local_domain = $myhostname
smtpd_sasl_mechanism_filter (default: !external, static:rest)
در صورت خالی نبودن، فیلتری برای نامهای مکانیزم SASL است که کارگزار SMTP پستفیکس در پاسخ EHLO اعلان خواهد کرد. بهطور پیشفرض، کارگزار SMTP پستفیکس مکانیزم EXTERNAL را اعلان نخواهد کرد، زیرا پشتیبانی از آن در Postfix پیادهسازی نشده است.
نامهای مکانیزم، الگوهای "/file/name" یا جدولهای جستجوی "type:table" را که با کاما یا نویسهٔ فاصلهساز جدا شدهاند مشخص کنید. نتیجهٔ سمت راست حاصل از جستجوهای "type:table" نادیده گرفته میشود. برای مستثنی کردن یک نام مکانیزم از فهرست، "!pattern" را مشخص کنید.
مثالها:
smtpd_sasl_mechanism_filter = !external, !gssapi, static:rest smtpd_sasl_mechanism_filter = login, plain smtpd_sasl_mechanism_filter = /etc/postfix/smtpd_mechs
این قابلیت در Postfix نسخه 3.6 و بالاتر در دسترس است.
smtpd_sasl_path (default: smtpd)
اطلاعات وابسته به پیادهسازی که کارگزار SMTP پستفیکس به پیادهسازی پلاگین SASL انتخابشده با smtpd_sasl_type منتقل میکند. معمولاً این پارامتر نام یک فایل پیکربندی یا نقطهٔ تلاقی (rendezvous point) را مشخص میکند.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است. در نسخههای پیشین smtpd_sasl_application_name نامیده میشد.
smtpd_sasl_response_limit (default: 12288)
حداکثر طول پاسخ کلاینت SASL به چالش (challenge) سرور. هنگامی که «پاسخ اولیه» کلاینت طولانیتر از محدودیت معمول دستورات SMTP باشد، کلاینت باید از ارسال پاسخ اولیه خود صرفنظر کرده و منتظر یک چالش خالی از سمت سرور بماند؛ سپس میتواند آنچه قرار بود «پاسخ اولیه» باشد را به عنوان پاسخی به چالش خالی سرور ارسال کند. RFC4954 سرور را ملزم میکند که پاسخهای کلاینت را تا حداقل 12288 بایت (octet) از متن کدگذاریشده با base64 بپذیرد. بنابراین مقدار پیشفرض، حداقل مقدار قابل قبول برای این پارامتر نیز محسوب میشود.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است. نسخههای پیشین از "line_length_limit" استفاده میکنند، که ممکن است برای پاسخهای بزرگتر کلاینت (مانند احراز هویت GSSAPI کاربران Windows AD که عضو گروههای متعددی هستند) نیاز به افزایش داشته باشد.
smtpd_sasl_security_options (default: noanonymous)
گزینههای امنیتی SASL کارگزار SMTP پستفیکس؛ از Postfix نسخه 2.3 به بعد، فهرست قابلیتهای موجود به پیادهسازی سرور SASL بستگی دارد که با smtpd_sasl_type انتخاب میشود.
قابلیتهای امنیتی زیر برای پیادهسازی سرور SASL نوع cyrus تعریف شدهاند:
محدود کردن مکانیزمهای احراز هویتی که کارگزار SMTP پستفیکس به کلاینت ارائه خواهد داد. فهرست مکانیزمهای احراز هویت موجود وابسته به سیستم است.
صفر یا چند مورد از موارد زیر را مشخص کنید:
- noplaintext
- روشهایی
را که از
گذرواژههای
متن ساده (plaintext)
استفاده
میکنند
غیرمجاز
میکند.
- noactive
- روشهای
آسیبپذیر
در برابر
حملهٔ فعال
(غیردیکشنری)
را غیرمجاز
میکند.
- nodictionary
- روشهای
آسیبپذیر
در برابر
حملهٔ
غیرفعال
(دیکشنری)
را غیرمجاز
میکند.
- noanonymous
- روشهایی
را که احراز
هویت
ناشناس (anonymous)
را مجاز
میدانند
غیرمجاز
میکند.
- forward_secrecy
- تنها
روشهایی
را مجاز
میکند که
از رازداری
پیشرو (forward secrecy)
پشتیبانی
کنند (تنها
Dovecot).
- mutual_auth
- تنها
روشهایی
را مجاز
میکند که
احراز هویت
متقابل
فراهم
میکنند (در
Cyrus SASL نسخه 1
موجود
نیست).
بهطور پیشفرض، کارگزار SMTP پستفیکس گذرواژههای متن ساده را میپذیرد اما ورودهای ناشناس را نمیپذیرد.
هشدار: به نظر میرسد کلاینتها روشهای احراز هویت را به ترتیبی که سرور اعلان کرده است امتحان میکنند (مانند PLAIN ANONYMOUS CRAM-MD5)؛ این بدان معناست که در صورت غیرفعال کردن گذرواژههای متن ساده، کلاینتها بهصورت ناشناس وارد میشوند، حتی زمانی که باید بتوانند از CRAM-MD5 استفاده کنند. بنابراین، در صورت غیرفعال کردن ورودهای متن ساده، ورودهای ناشناس را نیز غیرفعال کنید. پستفیکس با ورود ناشناس همانند عدم احراز هویت رفتار میکند.
مثال:
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_service (default: smtp)
نام سرویسی که به پلاگین SASL انتخابشده با smtpd_sasl_type و smtpd_sasl_path ارسال میشود.
این قابلیت در Postfix نسخه 2.11 و بالاتر در دسترس است. نسخههای پیشین طوری رفتار میکنند که گویی "smtp" مشخص شده است.
smtpd_sasl_tls_security_options (default: $smtpd_sasl_security_options)
گزینههای امنیتی احراز هویت SASL که کارگزار SMTP پستفیکس برای نشستهای SMTP رمزگذاریشده با TLS استفاده میکند.
این قابلیت در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtpd_sasl_type (default: cyrus)
نوع پلاگین SASL که کارگزار SMTP پستفیکس باید برای احراز هویت استفاده کند. انواع موجود با دستور "postconf -a" فهرست میشوند.
این قابلیت در Postfix نسخه 2.3 و بالاتر در دسترس است.
smtpd_sender_login_maps (default: empty)
جدول جستجوی اختیاری شامل نامهای کاربری SASL که مالک آدرسهای فرستندهٔ پاکت (envelope sender یعنی MAIL FROM) هستند.
نکته: برای
الزام
انطباق
آدرس هدر From:
با آدرس
فرستندهٔ
پاکت (MAIL FROM)، از
یک فیلتر
خارجی
مانند Milter
برای
سرویسهای
submission یا submissions
(سابقاً smtps)
استفاده
کنید. برای
مثال: https://github.com/magcks/milterfrom
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با نویسهٔ فاصلهساز یا کاما جدا شدهاند. جدولها به ترتیب مشخصشده تا زمان یافتن یک تطابق جستجو خواهند شد. در جستجوها از فایلهای ایندکسشده مانند DB یا DBM، یا از جدولهای شبکهای مانند NIS، LDAP یا SQL، عملیاتهای جستجوی زیر با آدرس فرستندهٔ user@domain انجام میشوند:
- 1) user@domain
- این جستجوی
جدول همیشه
انجام
میشود و
بالاترین
اولویت را
دارد.
- 2) user
- این جستجوی
جدول تنها
زمانی
انجام
میشود که
بخش domain آدرس
فرستنده با
$myorigin، $mydestination، $inet_interfaces یا
$proxy_interfaces تطبیق
داشته باشد.
- 3) @domain
- این جستجوی
جدول در آخر
انجام
میشود و
کمترین
اولویت را
دارد.
در تمام موارد، نتیجهٔ جستجوی جدول باید یا "یافت نشد" (not found) یا فهرستی از نامهای کاربری SASL جداشده با کاما و/یا نویسهٔ فاصلهساز باشد.
smtpd_sender_restrictions (default: empty)
محدودیتهای اختیاری که کارگزار SMTP پستفیکس در زمینهٔ (context) دستور MAIL FROM کلاینت اعمال میکند. برای بررسی زمینه و زمان ارزیابی، راهنمای SMTPD_ACCESS_README، بخش "Delayed evaluation of SMTP access restriction lists" را ببینید.
پیشفرض، مجاز دانستن همهچیز است.
فهرستی از محدودیتها را که با کاما و/یا نویسهٔ فاصلهساز جدا شدهاند مشخص کنید. خطوط طولانی را با شروع کردن خط بعدی با نویسهٔ فاصلهساز ادامه دهید. محدودیتها به ترتیب مشخصشده اعمال میشوند؛ اولین محدودیتی که مطابقت داشته باشد اعمال میگردد.
محدودیتهای زیر مختص آدرس فرستندهٔ دریافتشده با دستور MAIL FROM هستند.
- check_sender_access type:table
- پایگاه
دادهٔ access(5)
مشخصشده
را برای
آدرس MAIL FROM
جستجو کرده
و اقدام
متناظر را
اجرا
میکند.
- check_sender_a_access type:table
- پایگاه
دادهٔ access(5)
مشخصشده
را برای
آدرسهای IP
دامنهٔ MAIL FROM
جستجو کرده
و اقدام
متناظر را
اجرا
میکند.
نکته:
نتیجهٔ "OK"
به دلایل
ایمنی مجاز
نیست. در
عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
لیستهای
مسدودی (denylists)
استفاده
کنید. این
قابلیت در Postfix
نسخه 3.0 و
بالاتر در
دسترس است.
- check_sender_mx_access type:table
- پایگاه
دادهٔ access(5)
مشخصشده
را برای
میزبانهای
MX دامنهٔ MAIL FROM
جستجو کرده
و اقدام
متناظر را
اجرا
میکند. اگر
هیچ رکورد MX
یافت نشود،
همانند
رفتار
کلاینت SMTP
پستفیکس،
رکوردهای A
یا AAAA را
جستجو
میکند.
نکته:
نتیجهٔ "OK"
به دلایل
ایمنی مجاز
نیست. در
عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
لیستهای
مسدودی
استفاده
کنید. این
قابلیت در Postfix
نسخه 2.1 و
بالاتر در
دسترس است.
- check_sender_ns_access type:table
- پایگاه
دادهٔ access(5)
مشخصشده
را برای
سرورهای DNS
دامنهٔ MAIL FROM
جستجو کرده
و اقدام
متناظر را
اجرا
میکند.
نکته:
نتیجهٔ "OK"
به دلایل
ایمنی مجاز
نیست. در
عوض، از DUNNO
برای
مستثنی
کردن
میزبانهای
خاص از
لیستهای
مسدودی
استفاده
کنید. این
قابلیت در Postfix
نسخه 2.1 و
بالاتر در
دسترس است.
- reject_authenticated_sender_login_mismatch
- رد کردن
درخواست در
صورتی که
کلاینت با SASL
احراز هویت
شده باشد،
اما یا آدرس
MAIL FROM در $smtpd_sender_login_maps
فهرست نشده
باشد، یا
نام کاربری
SASL مالک آن
آدرس نباشد.
این گزینه مانع از آن میشود که کلاینت احراز هویتشده از یک آدرس MAIL FROM که صراحتاً مالک آن نیست استفاده کند.
نکته: برای الزام انطباق آدرس هدر From: با آدرس فرستندهٔ پاکت (MAIL FROM)، از یک فیلتر خارجی مانند Milter برای سرویسهای submission یا submissions (سابقاً smtps) استفاده کنید. برای مثال: https://github.com/magcks/milterfrom
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است.
- reject_known_sender_login_mismatch
- هنگامی که
کلاینت با SASL
احراز هویت
شده باشد،
در صورتی که
آدرس MAIL FROM در
$smtpd_sender_login_maps فهرست
شده باشد
اما نام
کاربری SASL
مالک آن
آدرس
نباشد،
درخواست را
رد میکند.
هنگامی که کلاینت با SASL احراز هویت نشده باشد، در صورتی که SASL فعال بوده و آدرس MAIL FROM در $smtpd_sender_login_maps فهرست شده باشد، درخواست را رد میکند.
این گزینه از هر آدرس MAIL FROM که در $smtpd_sender_login_maps فهرست شده باشد محافظت میکند، در حالی که همچنان به کلاینت اجازه میدهد از هر آدرس MAIL FROM فهرستنشده استفاده کند.
نکته: برای الزام انطباق آدرس هدر From: با آدرس فرستندهٔ پاکت (MAIL FROM)، از یک فیلتر خارجی مانند Milter برای سرویسهای submission یا submissions (سابقاً smtps) استفاده کنید. برای مثال: https://github.com/magcks/milterfrom
این قابلیت در Postfix نسخه 2.11 و بالاتر در دسترس است.
- reject_non_fqdn_sender
- رد کردن
درخواست
هنگامی که
آدرس MAIL FROM
دامنهای
را مشخص کند
که مطابق
الزامات RFC
به صورت
دامنه
کاملاً
واجد شرایط
(FQDN) نباشد.
پارامتر non_fqdn_reject_code کد پاسخ را برای درخواستهای رد شده مشخص میکند (پیشفرض: 504).
- reject_rhsbl_sender rbl_domain=d.d.d.d
- رد کردن
درخواست
هنگامی که
دامنهٔ MAIL FROM
با رکورد A
به صورت
"d.d.d.d" تحت rbl_domain
فهرست شده
باشد (تنها
در Postfix نسخه 2.1 و
بالاتر). هر
"d" یک عدد
است، یا یک
الگو درون
"[]" که شامل
یک یا چند
عدد یا
بازهٔ
عدد..عدد
جداشده با
";" است (Postfix
نسخه 2.8 و
بالاتر).
اگر هیچ
"=d.d.d.d" مشخص
نشده باشد،
هر زمان که
دامنهٔ MAIL FROM
با هر رکورد
A تحت rbl_domain
فهرست شده
باشد
درخواست را
رد میکند.
پارامتر maps_rbl_reject_code کد پاسخ را برای درخواستهای رد شده مشخص میکند (پیشفرض: 554)؛ پارامتر default_rbl_reply پاسخ پیشفرض سرور را تعیین میکند؛ و پارامتر rbl_reply_maps جدولهای پاسخ سرور را که با rbl_domain نمایهسازی شدهاند مشخص میکند.
نکته: همیشه به سیاستهای استفاده از سرویسهای اعتبارسنجی احترام بگذارید. از تحلیلکنندههای عمومی یا ISP پرهیز کنید، مگر اینکه پرسوجوها از کلید API اختصاصی شما استفاده کنند (برای چگونگی جلوگیری از افشای کلید API در پاسخهای سرور SMTP، مستندات rbl_reply_maps را ببینید).
این قابلیت در Postfix نسخه 2.0 و بالاتر در دسترس است.
- reject_sender_login_mismatch
- از Postfix 2.1 به
بعد، این یک
نام مستعار
(alias) برای
"reject_authenticated_sender_login_mismatch,
reject_unauthenticated_sender_login_mismatch"
است.
- reject_unauthenticated_sender_login_mismatch
- رد درخواست
هنگامی که SASL
فعال است،
نشانی MAIL FROM در
$smtpd_sender_login_maps فهرست
شده، اما
کلاینت با SASL
احراز هویت
نشده است.
با فعال بودن SASL، این ویژگی از استفادهٔ کلاینت احراز هویتنشده از هر نشانی MAIL FROM که در $smtpd_sender_login_maps فهرست شده باشد، جلوگیری میکند.
نکته: برای الزام به اینکه نشانی سرآیند :From با نشانی فرستندهٔ پاکت (MAIL FROM) مطابقت داشته باشد، از یک فیلتر خارجی مانند Milter برای سرویسهای submission یا submissions (که پیشتر smtps نامیده میشد) استفاده کنید. برای نمونه: https://github.com/magcks/milterfrom
این ویژگی در Postfix نسخهٔ 2.1 و بالاتر در دسترس است.
- reject_unknown_sender_domain
- رد درخواست
زمانی که Postfix
مقصد نهایی
برای نشانی
فرستنده
نیست و
دامنهٔ MAIL FROM ۱)
فاقد رکورد
DNS MX و رکورد DNS A
باشد، یا ۲)
دارای یک
رکورد MX
ناهنجار
باشد مانند
رکوردی با
نام میزبان
MX با طول صفر
(Postfix نسخهٔ 2.3 و
بالاتر).
پاسخ ارسالی توسط پارامتر unknown_address_reject_code (پیشفرض: 450)، unknown_address_tempfail_action (پیشفرض: defer_if_permit)، یا 550 (nullmx، در Postfix نسخهٔ 3.0 و بالاتر) مشخص میشود. برای جزئیات به توضیحات پارامترهای مربوطه مراجعه کنید.
- reject_unlisted_sender
- رد درخواست
هنگامی که
نشانی MAIL FROM در
فهرست
گیرندگان
معتبر برای
کلاس
دامنهاش
وجود ندارد.
برای
جزئیات به
توضیحات
پارامتر
smtpd_reject_unlisted_sender
مراجعه
کنید. این
ویژگی در Postfix 2.1
و بالاتر در
دسترس است.
- reject_unverified_sender
- رد درخواست
هنگامی که
مشخص است
ایمیل
ارسالی به
نشانی MAIL FROM
برگشت
میخورد (bounce)،
یا زمانی که
مقصد نشانی
فرستنده در
دسترس نیست.
اطلاعات
اعتبارسنجی
نشانی توسط
سرور verify(8)
مدیریت
میشود؛
برای
جزئیات به
فایل ADDRESS_VERIFICATION_README
مراجعه
کنید.
پارامتر unverified_sender_reject_code کد پاسخ عددی را در زمانی که مشخص است نشانی برگشت میخورد، تعیین میکند (پیشفرض: 450؛ زمانی که اطمینان پیدا کردید تغییر آن ایمن است، به 550 تغییر دهید).
پارامتر unverified_sender_defer_code کد پاسخ عددی را در صورت شکست کاوش نشانی به دلیل یک مشکل موقت مشخص میکند (پیشفرض: 450).
پارامتر unverified_sender_tempfail_action اقدام پس از شکست کاوش نشانی به دلیل یک مشکل موقت را تعیین میکند (پیشفرض: defer_if_permit).
این ویژگی برای نشانیهای دارای نام مستعار با "enable_original_recipient = no" از کار میافتد (Postfix نسخهٔ <= 3.2).
این ویژگی در Postfix نسخهٔ 2.1 و بالاتر در دسترس است.
سایر محدودیتهایی که در این زمینه معتبر هستند:
- محدودیتهای عمومی قابل استفاده در هر زمینهٔ فرمان SMTP، شرحدادهشده ذیل smtpd_client_restrictions.
- محدودیتهای خاص فرمان SMTP شرحدادهشده ذیل smtpd_client_restrictions و smtpd_helo_restrictions.
- محدودیتهای
خاص فرمان SMTP
شرحدادهشده
ذیل smtpd_recipient_restrictions.
هنگامی که
محدودیتهای
گیرنده ذیل
smtpd_sender_restrictions فهرست
میشوند،
تنها با "smtpd_delay_reject
= yes"
تأثیرگذارند،
به طوری که
$smtpd_sender_restrictions در
زمان اجرای
دستور RCPT TO
ارزیابی
میشود.
مثالها:
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_sender_restrictions = reject_unknown_sender_domain,
check_sender_access lmdb:/etc/postfix/access
برخی سیستمها به جای :lmdb از :cdb، :hash یا :dbm استفاده میکنند.
پس از تغییر فایل access، دستور "postmap /etc/postfix/access" را برای ساخت (مجدد) فایل ایندکسشده با نوع پیشفرض اجرا کنید. برای تعیین یک نوع صریح، "postmap type:/etc/postfix/access" را اجرا کنید.
نوع پیشفرض فایل ایندکسشده با پارامتر default_database_type پیکربندی میشود. برای مشاهدهٔ فهرست انواع صریح در دسترس، دستور "postconf -m" را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه اعمال خواهند شد. برای حذف این تأخیر از "postfix reload" استفاده کنید.
smtpd_service_name (default: smtpd)
سرویس داخلی که postscreen(8) اتصالات مجاز را به آن تحویل میدهد. در نسخههای آینده ممکن است کلاسهای متفاوتی از سرویس SMTP وجود داشته باشد.
این ویژگی در Postfix 2.8 در دسترس است.
smtpd_soft_error_limit (default: 10)
تعداد خطاهایی که کلاینت SMTP دوردست مجاز است بدون تحویل ایمیل مرتکب شود، پیش از آنکه سرور SMTP در Postfix تمام پاسخهای خود را کند نماید.
- در Postfix نسخهٔ 2.1 و بالاتر، هنگامی که تعداد خطاها بیشتر از $smtpd_soft_error_limit باشد، سرور SMTP در Postfix تمام پاسخها را به اندازهٔ $smtpd_error_sleep_time به تأخیر میاندازد.
- در Postfix نسخهٔ 2.0 و پیشتر، هنگامی که تعداد خطاها بیشتر از $smtpd_soft_error_limit باشد، سرور SMTP در Postfix تمام پاسخها را به اندازهٔ مقدار بزرگتر بین (تعداد خطاها) ثانیه یا $smtpd_error_sleep_time به تأخیر میاندازد.
- در Postfix نسخهٔ 2.0
و پیشتر،
هنگامی که
تعداد
خطاها کمتر
یا مساوی
$smtpd_soft_error_limit باشد،
سرور SMTP در Postfix
پاسخهای 4XX
و 5XX را به
میزان $smtpd_error_sleep_time
به تأخیر
میاندازد.
smtpd_starttls_timeout (default: see postconf -d output)
محدودیت زمانی برای عملیات نوشتن و خواندن سرور SMTP در Postfix در طول مراحل دستتکانی آغازین و پایانی TLS. مقدار پیشفرض کنونی وابسته به بار کاری (stress) است. پیش از Postfix نسخهٔ 2.8، این مقدار بر روی 300s ثابت بود.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtpd_timeout (default: normal: 300s, overload: 10s)
هنگامی که سرور SMTP در Postfix قصد ارسال پاسخ سرور SMTP را دارد، مدت زمانی که سرور منتظر تکمیل عملیات نوشتن در شبکهٔ زیرین میماند؛ و هنگامی که سرور SMTP در Postfix قصد دریافت درخواست کلاینت SMTP را دارد، مدت زمانی که منتظر تکمیل عملیات خواندن از شبکهٔ زیرین میماند. برای نحوهٔ اعمال این محدودیت زمانی، smtpd_per_request_deadline را ببینید (در Postfix نسخهٔ 2.9-3.6 به smtpd_per_record_deadline مراجعه کنید).
در حالت عادی، محدودیت پیشفرض 300s است، اما تحت بار کاری بالا (overload) تنها به 10s کاهش مییابد. در Postfix نسخهٔ 2.5 و پیشتر، سرور SMTP همواره به طور پیشفرض از محدودیت زمانی 300s استفاده میکرد.
نکته: در صورتی که محدودیتهای زمانی SMTP را روی مقادیر بسیار بزرگی تنظیم کنید، ممکن است ناچار به بهروزرسانی پارامتر سراسری ipc_timeout شوید.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
smtpd_tls_CAfile (default: empty)
فایلی شامل گواهیهای CA (با قالب PEM) مربوط به CAهای ریشه که برای امضای گواهیهای کلاینت SMTP دوردست یا گواهیهای CA میانی مورد اعتماد هستند. این گواهیها پیش از ورود سرور smtpd(8) به زندان chroot در حافظه بارگذاری میشوند. اگر تعداد ریشههای مورد اعتماد زیاد است، استفاده از smtpd_tls_CApath را مد نظر قرار دهید، اما توجه داشته باشید که در صورت اجرای سرور smtpd(8) به صورت chroot، دایرکتوری مذکور باید در زندان chroot موجود باشد. این فایل همچنین ممکن است برای تقویت زنجیرهٔ اعتماد گواهی سرور به کار رود، اما بهترین حالت گنجاندن مستقیم تمام گواهیهای لازم در فایل گواهی سرور است.
برای استفادهٔ انحصاری از گواهیهای مراجع صدور گواهی پیشفرض عرضهشده توسط سیستم، "smtpd_tls_CAfile = /path/to/system_CA_file" را مشخص کنید.
برای جلوگیری از الحاق CAهای پیشفرض عرضهشده توسط سیستم و اعتماد به گواهیهای شخص ثالث، "tls_append_default_CA = no" را تعیین کنید.
به طور پیشفرض (smtpd_tls_ask_ccert را ببینید)، گواهیهای کلاینت درخواست نمیشوند و smtpd_tls_CAfile باید خالی بماند. چنانچه از گواهیهای کلاینت استفاده میکنید، نامهای متمایز (DNهای) مراجع صدور گواهیِ فهرستشده در smtpd_tls_CAfile در پیام درخواست گواهی کلاینت به کلاینت SMTP دوردست ارسال میشود. برنامههای MUA دارای چند گواهی کلاینت ممکن است از فهرست مراجع صدور گواهی ترجیحی برای انتخاب گواهی کلاینت صحیح استفاده کنند. ممکن است بخواهید CA یا CAهای «ترجیحی» خود را در این فایل قرار داده و سایر CAهای مورد اعتماد را در $smtpd_tls_CApath نصب کنید.
مثال:
smtpd_tls_CAfile = /etc/postfix/CAcert.pem
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtpd_tls_CApath (default: empty)
دایرکتوری شامل گواهیهای CA (با قالب PEM) مربوط به CAهای ریشه که برای امضای گواهیهای کلاینت SMTP دوردست یا گواهیهای CA میانی مورد اعتماد هستند. ایجاد پیوندهای «hash» لازم را فراموش نکنید، به عنوان نمونه با "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs". برای استفاده از smtpd_tls_CApath در حالت chroot، این دایرکتوری (یا نسخهای از آن) باید داخل زندان chroot قرار داشته باشد.
برای استفادهٔ انحصاری از گواهیهای مراجع صدور گواهی پیشفرض عرضهشده توسط سیستم، "smtpd_tls_CApath = /path/to/system_CA_directory" را مشخص کنید.
برای جلوگیری از الحاق CAهای پیشفرض عرضهشده توسط سیستم و اعتماد به گواهیهای شخص ثالث، "tls_append_default_CA = no" را مشخص کنید.
به طور پیشفرض (smtpd_tls_ask_ccert را ببینید)، گواهیهای کلاینت درخواست نمیشوند و smtpd_tls_CApath باید خالی بماند. بر خلاف smtpd_tls_CAfile، نامهای متمایز (DNهای) مراجع صدور گواهی نصبشده در $smtpd_tls_CApath در پیام درخواست گواهی کلاینت گنجانده نمیشوند. برنامههای MUA با چندین گواهی کلاینت ممکن است از فهرست مراجع صدور گواهی ترجیحی جهت انتخاب گواهی کلاینت صحیح استفاده کنند. ممکن است ترجیح دهید CA یا CAهای «ترجیحی» خود را در $smtpd_tls_CAfile قرار داده و باقی CAهای مورد اعتماد را در $smtpd_tls_CApath نصب کنید.
مثال:
smtpd_tls_CApath = /etc/postfix/certs
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtpd_tls_always_issue_session_ids (default: yes)
اجبار سرور SMTP در Postfix به صدور شناسهٔ نشست TLS، حتی هنگامی که کش کردن نشستهای TLS خاموش باشد (smtpd_tls_session_cache_database خالی باشد). این رفتار با نسخههای قبل از Postfix 2.3 سازگار است.
در Postfix 2.3 و بالاتر، سرور SMTP در Postfix میتواند هنگام غیرفعال بودن کش نشستهای TLS، تولید شناسهٔ نشست را غیرفعال کند. این امر مانع از کش کردن نشستهایی توسط کلاینتهای SMTP دوردست میشود که تقریباً به طور قطع امکان استفادهٔ مجدد ندارند.
به طور پیشفرض، سرور SMTP در Postfix همیشه شناسههای نشست TLS را تولید میکند. این رفتار برای دور زدن نقص شناختهشدهای در برنامههای کلاینت ایمیل مانند MS Outlook است و همچنین ممکن است از بروز مشکلات سازگاری با سایر MTAها جلوگیری کند.
مثال:
smtpd_tls_always_issue_session_ids = no
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
smtpd_tls_ask_ccert (default: no)
درخواست گواهی کلاینت از کلاینت SMTP دوردست. این اطلاعات برای رله کردن ایمیل مبتنی بر گواهی، به عنوان نمونه با ویژگی permit_tls_clientcerts، مورد نیاز است.
برخی کلاینتها مانند Netscape، چنانچه هیچ گواهی در دسترسی نباشد (برای فهرست CAها در $smtpd_tls_CAfile) یا خطا میدهند یا چند گواهی کلاینت مختلف را برای انتخاب پیشنهاد میکنند. این حالت ممکن است مزاحمت ایجاد کند، بنابراین این گزینه به طور پیشفرض بر روی "off" قرار دارد.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtpd_tls_auth_only (default: no)
هنگامی که رمزنگاری TLS در سرور SMTP در Postfix اختیاری است، احراز هویت SASL را روی اتصالات رمزنگارینشده اعلام یا قبول نکن.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtpd_tls_ccert_verifydepth (default: 9)
عمق اعتبارسنجی برای گواهیهای کلاینت SMTP دوردست. در صورتی که CA صادرکننده در یک فایل CA محلی فهرست شده باشد، عمق ۱ کافی خواهد بود.
عمق اعتبارسنجی پیشفرض جهت سازگاری با رفتار نسخههای قبلی Postfix برابر با 9 (پیشفرض OpenSSL) است. پیش از Postfix 2.5، مقدار پیشفرض 5 بود، اما محدودیت عملاً اعمال نمیشد. اگر این مقدار را روی عددی غیرپیشفرض و کمتر تنظیم کنید، گواهیهایی با زنجیرههای اعتماد طولانیتر ممکن است در اعتبارسنجی رد شوند. زنجیرههای گواهی با ۱ یا ۲ مرجع صدور گواهی (CA) متداول هستند، زنجیرههای عمیقتر نادرتر بوده و هر عددی بین ۵ و ۹ در عمل کفایت میکند. چنانچه مثلاً به گواهیهای امضاشده مستقیم توسط یک CA صادرکننده اعتماد دارید اما به CAهایی که به آنها تفویض اختیار شده اعتماد ندارید، میتوانید عدد کمتری انتخاب کنید.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtpd_tls_cert_file (default: empty)
فایل حاوی گواهی RSA سرور SMTP در Postfix با قالب PEM. این فایل همچنین میتواند حاوی کلید خصوصی RSA سرور SMTP در Postfix باشد. در Postfix >= 3.4، روش ترجیحی برای پیکربندی کلیدها و گواهیهای سرور از طریق پارامتر "smtpd_tls_chain_files" است.
میزبانهای MX عمومی اینترنت که فاقد گواهی امضاشده توسط یک CA «معتبر» هستند، باید یک گواهی خودامضا یا امضاشده توسط CA خصوصی تولید کرده و آمادهٔ ارائهٔ آن به اکثر کلاینتها باشند. کلاینت قادر به احراز هویت سرور نخواهد بود، اما مگر اینکه در حال اجرای Postfix 2.3 یا نرمافزارهای مشابه باشد، همچنان بر دریافت گواهی سرور پافشاری خواهد کرد.
برای سرورهایی که میزبان MX عمومی اینترنت نیستند، Postfix از پیکربندیهای بدون گواهی پشتیبانی میکند. این امر مستلزم بهکارگیری سایفرهای ناشناس (anonymous TLS ciphers) است که توسط کلاینتهای معمولی SMTP پشتیبانی نمیشوند. از آنجا که برخی کلاینتها ممکن است پس از شکست دستتکانی TLS به متن ساده بازگشت نکنند (fall back نکنند)، سرور SMTP در Postfix فاقد گواهی قادر به دریافت ایمیل از برخی کلاینتهای فعال در حوزهٔ TLS نخواهد بود. به منظور جلوگیری از پیکربندیهای تصادفی بدون گواهی، Postfix عملکرد بدون گواهی را تنها زمانی مجاز میداند که مدیر سیستم صراحتاً "smtpd_tls_cert_file = none" را تنظیم کرده باشد. این کار تضمین میکند که پیکربندیهای جدید سرور SMTP در Postfix به طور تصادفی TLS را بدون گواهی فعال نکنند.
توجه داشته باشید که گواهیهای سرور در TLS 1.3 اختیاری نیستند. برای اجرا بدون گواهی، باید پروتکل TLS 1.3 را با درج '!TLSv1.3' در "smtpd_tls_protocols" و احتمالاً همچنین در "smtpd_tls_mandatory_protocols" غیرفعال کنید. روش سادهتر این است که صرفاً یک زنجیرهٔ گواهی پیکربندی شود. اجرای بدون گواهی توصیه نمیشود.
هر دو نوع گواهی RSA و DSA پشتیبانی میشوند. در صورت وجود هر دو نوع، سایفرِ بهکاررفته تعیین میکند که کدام گواهی به کلاینت تحویل داده شود. برای کلاینتهای Netscape و OpenSSL بدون انتخابهای سایفر خاص، گواهی RSA ارجحیت دارد.
برای فعال کردن امکان اعتبارسنجی گواهی سرور SMTP در Postfix توسط کلاینت SMTP دوردست، گواهیهای CA صادرکننده باید در اختیار کلاینت قرار گیرند. لازم است گواهیهای مورد نیاز را در فایل گواهی سرور قرار دهید؛ ابتدا گواهی سرور، سپس CA(های) صادرکننده (ترتیب پایین به بالا).
مثال: گواهی "server.example.com" توسط "intermediate CA" صادر شده که خود دارای گواهی "root CA" است. فایل server.pem را با دستور "cat server_cert.pem intermediate_CA.pem root_CA.pem > server.pem" بسازید.
چنانچه مایلید گواهیهای کلاینت صادرشده توسط این CAها را نیز اعتبارسنجی نمایید، میتوانید گواهیهای CA را به smtpd_tls_CAfile بیفزایید؛ در این صورت، نیازی به درج آنها در smtpd_tls_cert_file، smtpd_tls_dcert_file (منسوخ) یا smtpd_tls_eccert_file نخواهد بود.
گواهی مشخصشده در این بخش باید به عنوان گواهی سرور SSL قابل استفاده باشد و در آزمون "... openssl verify -purpose sslserver" موفق شود.
مثال:
smtpd_tls_cert_file = /etc/postfix/server.pem
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtpd_tls_chain_files (default: empty)
فهرستی از یک یا چند فایل PEM، که هر یک حاوی یک یا چند کلید خصوصی است و بلافاصله پس از هر کلید، زنجیره گواهی مربوط به آن قرار میگیرد. نام فایلها با کاما و/یا فاصله خالی از یکدیگر جدا میشوند. این پارامتر جایگزین تنظیمات قدیمی فایلهای کلید و گواهی مخصوص الگوریتمهای خاص شده و آنها را منسوخ میکند. هنگامی که این پارامتر خالی نباشد، پارامترهای قدیمی نادیده گرفته میشوند و در صورت خالی نبودن هر یک از آنها، یک هشدار ثبت میشود.
با افزایش تعداد الگوریتمهای کلید خصوصی—که از OpenSSL 1.1.1 شامل DSA (منسوخشده)، RSA، ECDSA، Ed25519 و Ed448 میشوند—استفاده از پارامترهای مجزا برای پیکربندی کلید و زنجیره گواهی هر الگوریتم، به طور فزایندهای غیرعملی شده است. از این رو، Postfix اکنون از ذخیرهسازی چندین کلید و زنجیرههای گواهی مربوطه در یک فایل واحد یا در مجموعهای از فایلها پشتیبانی میکند.
هر کلید باید بلافاصله قبل از گواهی متناظر خود قرار گیرد، که میتواند بهصورت اختیاری توسط گواهیهای صادرکننده اضافی که زنجیره گواهی آن کلید را کامل میکنند، دنبال شود. هنگامی که چند فایل مشخص میشوند، معادل یک فایل واحد هستند که از ادغام پشتسرهم آن فایلها با همان ترتیب مشخصشده تشکیل شده باشد. بنابراین، گرچه یک کلید همیشه باید قبل از گواهی و زنجیره صادرکننده خود بیاید، میتواند در فایلی جداگانه قرار گیرد، به شرطی که آن فایل بلافاصله پیش از فایل حاوی زنجیره گواهی مربوطه فهرست شده باشد. پس از ادغام همه فایلها، توالی اشیاء PEM باید بدین صورت باشد: key1, cert1, [chain1], key2, cert2, [chain2], ..., keyN, certN, [chainN].
ذخیره کلید خصوصی در همان فایل حاوی گواهی مربوطه مطمئنتر است. با قرار گرفتن کلید و گواهی در فایلهای جداگانه، این احتمال وجود دارد که حین تعویض دورهای کلید (rollover)، یکی از پردازشهای Postfix کلید خصوصی و گواهی را از فایلهای مجزایی بارگیری کند که با یکدیگر تطابق ندارند. خطاهای عملیاتی گوناگون حتی ممکن است به یک پیکربندی معیوب پایدار منجر شوند که در آن گواهی با کلید خصوصی همخوانی ندارد.
فایل یا فایلها باید حداکثر حاوی یک کلید از هر نوع باشند. برای مثال، اگر دو یا چند کلید RSA و زنجیرههای مربوط به آنها فهرست شوند، بسته به نسخه OpenSSL یا تنها آخرین کلید استفاده خواهد شد یا خطای پیکربندی تشخیص داده میشود. توجه داشته باشید که اگرچه "Ed25519" و "Ed448" الگوریتمهای مجزا به شمار میروند، اما منحنیهای مختلف ECDSA (معمولاً یکی از prime256v1، secp384r1 یا secp521r1) به عنوان پارامترهای گوناگون یک الگوریتم واحد "ECDSA" در نظر گرفته میشوند، بنابراین در حال حاضر پیکربندی کلیدها برای بیش از یک منحنی ECDSA امکانپذیر نیست.
الگوریتم RSA همچنان دارای گستردهترین پشتیبانی است. در حال حاضر (اواخر ۲۰۱۸)، پشتیبانی از ECDSA رایج است اما هنوز فراگیر نشده، و پشتیبانی از Ed25519 و Ed448 عمدتاً وجود ندارد. بنابراین، بهطور کلی باید یک کلید RSA پیکربندی شود، و در صورت تمایل میتوان کلیدهای اضافی برای الگوریتمهای دیگر را نیز در کنار آن قرار داد.
مثال (فایلهای جداگانه برای هر کلید و زنجیره گواهی مربوطه):
/etc/postfix/main.cf:
smtpd_tls_chain_files =
${config_directory}/ed25519.pem,
${config_directory}/ed448.pem,
${config_directory}/rsa.pem
/etc/postfix/ed25519.pem:
-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
...
nC0egv51YPDWxEHom4QA
-----END CERTIFICATE-----
/etc/postfix/ed448.pem:
-----BEGIN PRIVATE KEY-----
MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
...
pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
-----END CERTIFICATE-----
/etc/postfix/rsa.pem:
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
...
ahQkZ3+krcaJvDSMgvu0tDc=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
...
Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
-----END CERTIFICATE-----
مثال (تمام کلیدها و گواهیها در یک فایل واحد):
/etc/postfix/main.cf:
smtpd_tls_chain_files = ${config_directory}/chains.pem
/etc/postfix/chains.pem:
-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIEJfbbO4BgBQGBg9NAbIJaDBqZb4bC4cOkjtAH+Efbz3
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIBKzCB3qADAgECAhQaw+rflRreYuUZBp0HuNn/e5rMZDAFBgMrZXAwFDESMBAG
...
nC0egv51YPDWxEHom4QA
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MEcCAQAwBQYDK2VxBDsEOQf+m0P+G0qi+NZ0RolyeiE5zdlPQR8h8y4jByBifpIe
LNler7nzHQJ1SLcOiXFHXlxp/84VZuh32A==
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIBdjCB96ADAgECAhQSv4oP972KypOZPNPF4fmsiQoRHzAFBgMrZXEwFDESMBAG
...
pQcWsx+4J29e6YWH3Cy/CdUaexKP4RPCZDrPX7bk5C2BQ+eeYOxyThMA
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDc4QusgkahH9rL
...
ahQkZ3+krcaJvDSMgvu0tDc=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIC+DCCAeCgAwIBAgIUIUkrbk1GAemPCT8i9wKsTGDH7HswDQYJKoZIhvcNAQEL
...
Rirz15HGVNTK8wzFd+nulPzwUo6dH2IU8KazmyRi7OGvpyrMlm15TRE2oyE=
-----END CERTIFICATE-----
این ویژگی در Postfix نسخه 3.4 و بالاتر در دسترس است.
smtpd_tls_cipherlist (default: empty)
کنترل منسوخشده مربوط به Postfix < 2.3 برای فهرست رمزهای TLS در سرور SMTP کارگزار Postfix. با انتخاب یک فهرست رمز غیرپیشفرض، احتمال بروز مشکلات سازگاری و تعاملپذیری بسیار بالا میرود. برای میزبانهای MX در اینترنت عمومی، از فهرست رمزهای TLS غیرپیشفرض استفاده نکنید. کلاینتهایی که دستتکانی TLS را آغاز میکنند، اما نمیتوانند بر سر یک رمز مشترک به توافق برسند، ممکن است قادر به ارسال هیچ ایمیلی به سرور SMTP نباشند. استفاده از یک فهرست رمز محدود ممکن است برای یک MSA اختصاصی یا یک هاب ایمیل داخلی مناسبتر باشد؛ جایی که امکان اعمال کنترل بر نرمافزار TLS و تنظیمات کلاینتهای متصلشونده وجود دارد.
نکته: در اطراف مقدار پارامتر از علامت نقلقول "" استفاده نکنید.
این ویژگی در Postfix نسخه 2.2 در دسترس است. در Postfix 2.3 و بالاتر استفاده نمیشود؛ به جای آن از smtpd_tls_mandatory_ciphers استفاده کنید.
smtpd_tls_ciphers (default: medium)
حداقل درجه رمزنگاری (cipher grade) پروتکل TLS که سرور SMTP در Postfix همراه با رمزنگاری فرصتطلبانه (opportunistic TLS) استفاده خواهد کرد. انواع رمزهای فهرستشده در smtpd_tls_exclude_ciphers از تعریف اولیه درجه رمز انتخابی مستثنی میشوند. مقدار پیشفرض برای انتشارهای Postfix پس از اواسط سال ۲۰۱۵ برابر با "medium" و برای نسخههای قدیمیتر "export" است.
هنگامی که TLS اجباری باشد، درجه رمز از طریق پارامتر پیکربندی smtpd_tls_mandatory_ciphers انتخاب میشود؛ برای جزئیات نحو به آن پارامتر مراجعه کنید.
این ویژگی در Postfix 2.6 و بالاتر در دسترس است. در نسخههای قبلی Postfix تنها پارامتر smtpd_tls_mandatory_ciphers پیادهسازی شده است، و TLS فرصتطلبانه همواره از رمزهای "export" یا بهتر (یعنی تمام رمزها) استفاده میکند.
smtpd_tls_dcert_file (default: empty)
فایل حاوی گواهی DSA سرور SMTP در Postfix در قالب PEM. این فایل ممکن است شامل کلید خصوصی DSA سرور SMTP در Postfix نیز باشد. الگوریتم DSA منسوخ شده است و نباید استفاده شود.
برای جزئیات بیشتر به توضیحات زیر smtpd_tls_cert_file مراجعه کنید.
مثال:
smtpd_tls_dcert_file = /etc/postfix/server-dsa.pem
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtpd_tls_dh1024_param_file (default: empty)
فایل حاوی پارامترهای DH که سرور SMTP در Postfix باید با رمزهای غیراکسپورت EDH استفاده کند.
در Postfix >= 3.7، که با OpenSSL نسخه 3.0.0 یا بالاتر ساخته شده باشد، اگر مقدار پارامتر خالی یا "auto" باشد، انتخاب پارامتر DH به کتابخانه OpenSSL محول میشود که پارامترهای مناسب را بر اساس دستتکانی TLS انتخاب میکند. این گزینه احتمالاً بیشترین سازگاری را با کلاینتهای SMTP که از کتابخانههای مختلف TLS استفاده میکنند به همراه خواهد داشت، و هنگام استفاده از Postfix >= 3.7 ساختهشده با OpenSSL 3.0.0 پارامترهای محلی سفارشی دیگر توصیه نمیشوند.
انتخاب مبتنی بر بهترین تجارب، استفاده از یک عدد اول ۲۰۴۸ بیتی است. این موضوع علیرغم وجود "1024" تاریخی در نام پارامتر، بدون اشکال است. وسوسه نشوید که از مقادیر بسیار بزرگتر استفاده کنید؛ کارایی به سرعت افت میکند و همچنین ممکن است تعامل با برخی کلاینتهای رایج SMTP مختل شود. از Postfix 3.1، عدد اول پیشفرض کامپایلشده ۲۰۴۸ بیتی است و تولید پارامترهای سفارشی DH کاملاً ضروری نیست، هرچند شاید تا حدی مفید باشد.
به جای استفاده از دقیقاً همان مجموعههای پارامتر ارائهشده همراه با سایر بستههای TLS، تولید مجموعه پارامترهای اختصاصی با دستوراتی مشابه موارد زیر ایمنتر است:
openssl dhparam -out /etc/postfix/dh2048.pem 2048 openssl dhparam -out /etc/postfix/dh1024.pem 1024 # As of Postfix 3.6, export-grade 512-bit DH parameters are no longer # supported or needed. openssl dhparam -out /etc/postfix/dh512.pem 512
به اشتراک گذاشتن پارامترهای یکسان DH میان چندین نمونه Postfix ایمن است. در صورت تمایل، میتوانید برای هر نمونه پارامترهای مجزا تولید کنید.
اگر مایلید از رمزهایی که رازداری پیشرو (forward secrecy) ارائه میدهند بیشترین بهره را ببرید، بخش Getting started در سند FORWARD_SECRECY_README را مشاهده کنید. این سند کامل، تمام اطلاعات مربوط به پشتیبانی Postfix از رازداری پیشروی کامل ("perfect" forward secrecy) را بهطور یکپارچه در یک جا ارائه میکند: رازداری پیشرو چیست، نحوه تغییر تنظیمات، و مواردی که هنگام استفاده Postfix از رمزهای دارای رازداری پیشرو انتظار مشاهده آن را دارید.
مثال:
smtpd_tls_dh1024_param_file = /etc/postfix/dh2048.pem
این ویژگی در Postfix نسخه 2.2 و بالاتر در دسترس است.
smtpd_tls_dh512_param_file (default: empty)
فایل حاوی پارامترهای DH که سرور SMTP در Postfix باید با رمزهای دارای درجه صادراتی EDH استفاده کند. درجه رمز پیشفرض سرور SMTP در نسخههای Postfix پس از اواسط سال ۲۰۱۵ برابر با "medium" است و در نتیجه مجموعههای رمز درجه صادراتی بهطور پیشفرض به کار گرفته نمیشوند.
در Postfix >= 3.6 تبادل کلید دیفی-هلمن با درجه صادراتی دیگر پشتیبانی نمیشود و این پارامتر بدون هیچ هشداری نادیده گرفته میشود.
همچنین به توضیحات ذیل پارامتر پیکربندی smtpd_tls_dh1024_param_file مراجعه کنید.
مثال:
smtpd_tls_dh512_param_file = /etc/postfix/dh_512.pem
این ویژگی در Postfix 2.2 و بالاتر در دسترس است، اما در Postfix 3.6 و بالاتر نادیده گرفته میشود.
smtpd_tls_dkey_file (default: $smtpd_tls_dcert_file)
فایل حاوی کلید خصوصی DSA سرور SMTP در Postfix در قالب PEM. این فایل میتواند با فایل گواهی DSA سرور SMTP در Postfix که با $smtpd_tls_dcert_file مشخص شده ادغام شود. الگوریتم DSA منسوخ شده است و نباید استفاده شود.
کلید خصوصی باید بدون عبارت عبور (pass-phrase) در دسترس باشد، یعنی نباید رمزنگاری شده باشد. مجوزهای فایل باید تنها دسترسی خواندن را به حساب کاربری مدیر سیستم ("root") بدهند و هیچ دسترسی دیگری به سایر افراد اعطا نکنند.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
smtpd_tls_eccert_file (default: empty)
فایل حاوی گواهی ECDSA سرور SMTP در Postfix در قالب PEM. این فایل میتواند حاوی کلید خصوصی ECDSA سرور SMTP در Postfix نیز باشد. در Postfix >= 3.4 روش پیشنهادی برای پیکربندی کلیدها و گواهیهای سرور از طریق پارامتر "smtpd_tls_chain_files" است.
برای جزئیات بیشتر به توضیحات زیر smtpd_tls_cert_file مراجعه کنید.
مثال:
smtpd_tls_eccert_file = /etc/postfix/ecdsa-scert.pem
این ویژگی در Postfix نسخه 2.6 و بالاتر، در صورتی که Postfix با OpenSSL نسخه 1.0.0 یا بالاتر کامپایل و پیوند داده شده باشد در دسترس است.
smtpd_tls_eckey_file (default: $smtpd_tls_eccert_file)
فایل حاوی کلید خصوصی ECDSA سرور SMTP در Postfix در قالب PEM. این فایل میتواند با فایل گواهی ECDSA سرور SMTP در Postfix که با $smtpd_tls_eccert_file مشخص شده ادغام شود. در Postfix >= 3.4 روش پیشنهادی برای پیکربندی کلیدها و گواهیهای سرور از طریق پارامتر "smtpd_tls_chain_files" است.
کلید خصوصی باید بدون عبارت عبور (pass-phrase) در دسترس باشد، یعنی نباید رمزنگاری شده باشد. مجوزهای فایل باید فقط دسترسی خواندن را به حساب کاربری مدیر ارشد سیستم ("root") داده و به هیچ فرد دیگری هیچ دسترسیای ندهند.
این ویژگی در Postfix نسخه 2.6 و بالاتر، در صورتی که Postfix با OpenSSL نسخه 1.0.0 یا بالاتر کامپایل و پیوند داده شده باشد در دسترس است.
smtpd_tls_eecdh_grade (default: see postconf -d output)
درجه امنیتی سرور SMTP در Postfix برای تبادل کلید موقت منحنی بیضوی دیفی-هلمن (EECDH). از Postfix 3.6، مقدار این پارامتر همواره نادیده گرفته میشود و Postfix طوری عمل میکند که گویی مقدار auto (که در زیر توضیح داده شده) انتخاب شده است.
این ویژگی از Postfix 3.6 به بعد استفاده نمیشود. آن را مشخص نکنید.
گزینههای موجود عبارتند از:
- auto
- استفاده از
ترجیحدادهشدهترین
منحنی که
توسط هر دو
سمت کلاینت
و سرور
پشتیبانی
میشود. این
تنظیم
نیازمند Postfix >= 3.2
کامپایل و
پیوند داده
شده با OpenSSL >= 1.0.2
است. این
مقدار،
تنظیم
پیشفرض
تحت شرایط
فوق است (و
تنها
تنظیمی است
که در Postfix >= 3.6
استفاده
میشود).
- none
- عدم
استفاده از
EECDH. رمزهای
مبتنی بر
تبادل کلید
EECDH غیرفعال
خواهند شد.
این گزینه
مقدار
پیشفرض در
Postfix نسخههای
2.6 و 2.7 است.
- strong
- استفاده از
EECDH با
تقریباً
۱۲۸ بیت
امنیت و با
بار
پردازشی
معقول. این
مقدار
پیشفرض در
نگارشهای
۲.۸ تا ۳.۵
نرمافزار
Postfix است.
- ultra
- استفاده از
EECDH با
تقریباً
۱۹۲ بیت
امنیت و با
بار
پردازشی
تقریباً دو
برابر
بیشتر از ECC
با توان ۱۲۸
بیت.
اگر میخواهید حداکثر بهره را از رمزهایی ببرید که رازداری پیشرو (forward secrecy) ارائه میدهند، بخش Getting started در سند FORWARD_SECRECY_README را ببینید. سند کامل تمام اطلاعات مربوط به پشتیبانی Postfix از رازداری پیشروی «کامل» ("perfect" forward secrecy) را بهطور یکپارچه در یک جا ارائه میدهد: رازداری پیشرو چیست، تنظیمات را چگونه تغییر دهید، و هنگام استفاده Postfix از رمزهای دارای رازداری پیشرو چه انتظاری باید داشته باشید.
این ویژگی در Postfix نگارش ۲.۶ و بالاتر، در صورتی که با OpenSSL نسخهٔ ۱.۰.۰ یا بالاتر بر روی پلتفرمهایی که الگوریتمهای EC توسط توزیعکننده غیرفعال نشده باشند، کامپایل و پیوند داده شده باشد در دسترس است.
smtpd_tls_enable_rpk (default: no)
هنگام درخواست یا الزام احراز هویت کلاینت، درخواست میکند که کلاینتهای راه دور SMTP به جای گواهی X.509 یک کلید عمومی خام بر اساس RFC7250 ارسال کنند. این ویژگی در صورتی که پشتیبانی از کلید عمومی خام در پیادهسازی محلی TLS وجود نداشته باشد، نادیده گرفته میشود.
سرور SMTP در Postfix زمانی که "smtpd_tls_enable_rpk = yes" باشد اما کلاینت راه دور SMTP گواهی ارسال کند، و اثر انگشت کلید عمومی گواهی با جدول check_ccert_access مطابقت نداشته باشد، در حالی که اثر انگشت خود گواهی با جدول check_ccert_access مطابقت دارد، یک هشدار ثبت میکند. کلاینت راه دور SMTP در صورتی که پس از بهروزرسانی پیادهسازی TLS خود با قابلیت پشتیبانی از کلید عمومی خام، به جای گواهی شروع به ارسال کلید عمومی خام کند، دسترسی خود را از دست خواهد داد.
سرور SMTP در Postfix همیشه به جای گواهی یک کلید عمومی خام ارسال میکند، در صورتی که توسط کلاینت راه دور SMTP تقاضا شده باشد و پیادهسازی محلی TLS از کلیدهای عمومی خام پشتیبانی کند. اگر کلاینت یک شناسهٔ نام سرور با افزونهٔ TLS از نوع SNI ارسال کند و tls_server_sni_maps پیکربندی شده باشد، سرور کلید عمومی خام را از گواهی مشخصشده استخراج خواهد کرد.
دستورهای نمونه برای محاسبهٔ خلاصه اثر انگشت (digest) از نوع SHA256 گواهی و کلید عمومی:
# SHA256 digest of the first certificate in "cert.pem" $ openssl x509 -in cert.pem -outform DER | openssl dgst -sha256 -c
# SHA256 digest of the SPKI of the first certificate in "cert.pem"
$ openssl x509 -in cert.pem -pubkey -noout |
openssl pkey -pubin -outform DER | openssl dgst -sha256 -c
# SHA256 digest of the SPKI of the first private key in "pkey.pem"
$ openssl pkey -in pkey.pem -pubout -outform DER |
openssl dgst -sha256 -c
این ویژگی در Postfix نگارش ۳.۹ و بالاتر در دسترس است.
smtpd_tls_exclude_ciphers (default: empty)
فهرستی از رمزها یا انواع رمز برای مستثنی کردن از فهرست رمزهای سرور SMTP در تمام سطوح امنیتی TLS. مستثنی کردن رمزهای معتبر میتواند مشکلات سازگاری متقابل ایجاد کند. رمزها را مستثنی نکنید مگر آنکه واقعاً ضروری باشد. این فهرست، cipherlist استاندارد OpenSSL نیست؛ بلکه فهرست سادهای است که با فاصلههای سفید و/یا کاما از هم جدا شدهاند. عناصر شامل یک رمز منفرد یا یک یا چند ویژگی رمز جدا شده با «+» هستند، که در این صورت فقط رمزهایی که با all (تمام) ویژگیها همخوانی دارند مستثنی میشوند.
مثالها (برخی از اینها مشکل ایجاد خواهند کرد):
smtpd_tls_exclude_ciphers = aNULL smtpd_tls_exclude_ciphers = MD5, DES smtpd_tls_exclude_ciphers = DES+MD5 smtpd_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5 smtpd_tls_exclude_ciphers = kEDH+aRSA
تنظیم اول رمزهای ناشناس (anonymous) را غیرفعال میکند. تنظیم بعدی رمزهایی را که از الگوریتم خلاصهٔ MD5 یا الگوریتم رمزنگاری (تک) DES استفاده میکنند، غیرفعال میسازد. تنظیم بعد از آن رمزهایی را که MD5 و DES را با هم استفاده میکنند غیرفعال میکند. تنظیم بعدی دو رمز "AES256-SHA" و "DES-CBC3-MD5" را غیرفعال مینماید. تنظیم آخر رمزهایی را که از تبادل کلید "EDH" همراه با احراز هویت RSA استفاده میکنند غیرفعال میکند.
این ویژگی در Postfix نگارش ۲.۳ و بالاتر در دسترس است.
smtpd_tls_fingerprint_digest (default: see postconf -d output)
الگوریتم خلاصهٔ پیام (message digest) برای ساخت اثر انگشت گواهی کلاینت SMTP راه دور یا اثر انگشت کلید عمومی (Postfix ۲.۹ و بالاتر) برای check_ccert_access و permit_tls_clientcerts.
الگوریتم پیشفرض در Postfix >= 3.6 و با تنظیم compatibility_level روی ۳.۶ یا بالاتر برابر با sha256 است. در Postfix <= 3.5 الگوریتم پیشفرض md5 است.
الگوریتم منطبق بر بهترین شیوهها در حال حاضر sha256 است. پیشرفتهای اخیر در تحلیل رمز توابع درهمسازی منجر به منسوخ شدن md5 و sha1 به نفع sha256 شده است. با این حال، تا زمانی که حملهٔ «پیشتصویر دوم» (second pre-image) شناختهشدهای علیه الگوریتمهای قدیمیتر وجود نداشته باشد، استفاده از آنها در این زمینه هرچند توصیه نمیشود، اما کماکان محتملاً امن است.
اگرچه الگوریتمهای خلاصهٔ بیشتری معمولاً در libcrypto از OpenSSL موجود هستند، تنها مواردی که توسط libssl در مجموعههای رمز SSL به کار میروند در دسترس Postfix قرار دارند. احتمالاً پشتیبانی از md5، sha1، sha256 و sha512 را خواهید یافت.
برای یافتن اثر انگشت یک فایل گواهی مشخص با یک الگوریتم خلاصهٔ معین، این دستور را اجرا کنید:
$ openssl x509 -noout -fingerprint -digest -in certfile.pem
متن سمت راست علامت «=» همان اثر انگشت مورد نظر است. برای نمونه:
$ openssl x509 -noout -fingerprint -sha256 -in cert.pem SHA256 Fingerprint=D4:6A:AB:19:24:...:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A
برای استخراج اثر انگشت کلید عمومی از یک گواهی X.509، باید کلید عمومی را از گواهی استخراج کرده و خلاصهٔ مناسب کدبندی DER (ASN.1) آن را محاسبه کنید. در OpenSSL گزینهٔ «-pubkey» از دستور «x509» کلید عمومی را همواره در قالب «PEM» استخراج میکند. ما خروجی را با لوله (pipe) به دستور دیگر OpenSSL ارسال میکنیم که کلید را به DER تبدیل کرده و سپس به دستور «dgst» میفرستد تا اثر انگشت محاسبه شود.
مثال:
$ openssl x509 -in cert.pem -noout -pubkey |
openssl pkey -pubin -outform DER |
openssl dgst -sha256 -c
(stdin)= 64:3f:1f:f6:e5:1e:d4:2a:56:8b:fc:09:1a:61:98:b5:bc:7c:60:58
سرور و کلاینت SMTP در Postfix هنگام تنظیم loglevel مربوط به TLS روی ۲ یا بالاتر، اثر انگشت گواهی طرف مقابل (برگ / leaf) و اثر انگشت کلید عمومی را ثبت میکنند.
مثال: جدول دسترسی گواهی کلاینت با اثر انگشتهای sha256:
/etc/postfix/main.cf:
smtpd_tls_fingerprint_digest = sha256
smtpd_client_restrictions =
check_ccert_access lmdb:/etc/postfix/access,
reject
/etc/postfix/access:
# Action folded to next line...
AF:88:7C:AD:51:95:6F:36:96:...:01:FB:2E:48:CD:AB:49:25:A2:3B
OK
85:16:78:FD:73:6E:CE:70:E0:...:5F:0D:3C:C8:6D:C4:2C:24:59:E1
permit_auth_destination
به جای lmdb: برخی سیستمها از cdb:، hash: یا dbm: استفاده میکنند.
پس از ویرایش فایل access دستور "postmap /etc/postfix/access" را برای (باز)ساخت فایل شاخصبندیشدهٔ نوع پیشفرض اجرا کنید. برای تعیین نوع صریح، "postmap type:/etc/postfix/access" را اجرا نمایید.
نوع پیشفرض فایل شاخصبندیشده با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن نوعهای صریح در دسترس، دستور "postconf -m" را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه اعمال خواهند شد. برای رفع این تاخیر از "postfix reload" استفاده کنید.
این ویژگی در Postfix نگارش ۲.۵ و بالاتر در دسترس است.
smtpd_tls_key_file (default: $smtpd_tls_cert_file)
فایل حاوی کلید خصوصی RSA سرور SMTP در Postfix با قالب PEM. این فایل ممکن است با فایل گواهی RSA سرور SMTP در Postfix که با $smtpd_tls_cert_file مشخص شده ادغام شود. در Postfix >= 3.4 شیوهٔ ارجح برای پیکربندی کلیدها و گواهیهای سرور از طریق پارامتر "smtpd_tls_chain_files" است.
کلید خصوصی باید بدون عبارت عبور (passphrase) در دسترس باشد، یعنی نباید رمزنگاری شده باشد. دسترسیهای فایل باید اجازهٔ دسترسی فقطخواندنی (read-only) را به حساب کاربری ریشه سیستم ("root") بدهد و هیچ دسترسی به افراد دیگر ندهد.
smtpd_tls_loglevel (default: 0)
فعالسازی ثبت گزارشهای تکمیلی فعالیتهای TLS در سرور SMTP مربوط به Postfix. هر سطح ثبت گزارش شامل اطلاعاتی که در سطوح پایینتر ثبت میشوند نیز هست.
- 0
غیرفعالسازی
ثبت
گزارشهای
فعالیت TLS.
- 1 ثبت تنها
یک پیام
خلاصه
هنگام
تکمیل
دستتکانی
TLS - در صورتی
که تأیید
گواهی
کلاینت
الزامی
نباشد،
خطاهای
اعتبارسنجی
زنجیرهٔ
اعتماد
گواهی
کلاینت ثبت
نمیشود. در
Postfix ۲.۸ و
قبلتر،
پیام
خلاصه،
اطلاعات
خلاصهٔ
گواهی طرف
مقابل و
بدون قید و
شرط خطاهای
اعتبارسنجی
زنجیرهٔ
اعتماد ثبت
میشوند.
- 2 همچنین
فعالسازی
گزارشدهی
مفصل (verbose) در
کتابخانهٔ
TLS مربوط به
Postfix، ثبت
عملیات
حافظهٔ
پنهان
نشستها (session
cache)، و
فعالسازی
ثبت گزارش
روند
پیشرفت
دستتکانی
SSL در OpenSSL.
- 3 همچنین
ثبت تخلیهٔ
هگزادسیمال
و ASCII از
فرایند
مذاکرهٔ TLS.
- 4 همچنین
ثبت تخلیهٔ
هگزادسیمال
و ASCII از کل
ارسال پس از
STARTTLS.
از "smtpd_tls_loglevel = 2" یا بالاتر مگر در موارد بروز مشکل استفاده نکنید. استفاده از loglevel 4 اکیداً نهی میشود.
این ویژگی در Postfix نگارش ۲.۲ و بالاتر در دسترس است.
smtpd_tls_mandatory_ciphers (default: medium)
حداقل درجهٔ رمز TLS که سرور SMTP در Postfix هنگام رمزنگاری اجباری TLS استفاده خواهد کرد. درجهٔ پیشفرض ("medium") به اندازهٔ کافی قوی است به طوری که هرگونه مزیت ناشی از محدود کردن سراسری نشستهای TLS به یک درجهٔ سختگیرانهتر محتملاً ناچیز است، به ویژه با توجه به اینکه بسیاری از پیادهسازیها هنوز هیچ رمز قویتری (درجهٔ "high") ارائه نمیدهند، در حالی که آنهایی که ارائه میدهند، همیشه از رمزهای درجهٔ "high" استفاده خواهند کرد. بنابراین اصرار بر رمزهای درجهٔ "high" معمولاً نتیجهٔ عکس میدهد. مجاز دانستن رمزهای "export" یا "low" نوعاً ایدهٔ خوبی نیست، زیرا سیستمهای محدود به این موارد تنها محدود به مرورگرهای منسوخ هستند. هیچ کلاینت شناختهشدهٔ SMTP وجود ندارد که حداقل از یک رمز با درجهٔ "medium" یا "high" پشتیبانی نکند.
درجههای رمز زیر پشتیبانی میشوند:
- high
- فقط رمزهای
OpenSSL درجهٔ "HIGH"
را فعال
میکند.
فهرست
رمزهای
زیربنایی
از طریق
پارامتر
پیکربندی
tls_high_cipherlist مشخص
میشود، که
اکیداً
توصیه
میشود آن
را تغییر
ندهید.
- medium
- رمزهای OpenSSL با
درجهٔ "MEDIUM"
یا قویتر
را فعال
میکند.
اینها از
کلیدهای
رمزنگاری
حجم متقارن
۱۲۸ بیتی یا
طولانیتر
استفاده
میکنند.
این حداقل
توان
پیشفرض
برای
رمزنگاری
اجباری TLS
است. فهرست
رمزهای
زیربنایی
از طریق
پارامتر
پیکربندی
tls_medium_cipherlist مشخص
میشود، که
اکیداً
توصیه
میشود آن
را تغییر
ندهید.
- null
- فقط رمزهای
OpenSSL نوع "NULL" را
فعال
میکند؛
اینها
احراز هویت
را بدون
رمزنگاری
فراهم
میکنند.
این تنظیم
تنها در
شرایط
نادری
مناسب است
که تمام
کلاینتها
برای
استفاده از
رمزهای NULL
آماده
باشند
(معمولاً در
کلاینتهای
TLS فعال نیست).
فهرست
رمزهای
زیربنایی
از طریق
پارامتر
پیکربندی
tls_null_cipherlist مشخص
میشود، که
اکیداً
توصیه
میشود آن
را تغییر
ندهید.
- low
- رمزهای OpenSSL با
درجهٔ "LOW" یا
قویتر را
فعال
میکند. در Postfix
>= 3.8 این درجه
رمز همواره
یکسان با
"medium" است.
نگارشهای
اخیر OpenSSL از
هیچ رمز
درجهٔ "LOW"
پشتیبانی
نمیکنند.
در
انتشارهای
پیشین Postfix
فهرست
رمزهای
زیربنایی
از طریق
پارامتر
پیکربندی
tls_low_cipherlist مشخص
میشد، که
اکیداً
توصیه
میشد آن را
تغییر
ندهید. از
این درجهٔ
رمز منسوخ
نباید
استفاده
شود.
- export
- رمزهای OpenSSL با
درجهٔ "EXPORT"
یا قویتر
را فعال
میکند. در Postfix
>= 3.8 این درجه
رمز همواره
یکسان با
"medium" است.
نگارشهای
اخیر OpenSSL از
هیچ رمز
درجهٔ "EXPORT"
پشتیبانی
نمیکنند.
در
انتشارهای
پیشین Postfix
فهرست
رمزهای
زیربنایی
از طریق
پارامتر
پیکربندی
tls_export_cipherlist مشخص
میشد، که
اکیداً
توصیه
میشد آن را
تغییر
ندهید. از
این درجهٔ
رمز منسوخ
نباید
استفاده
شود.
انواع رمز فهرستشده در smtpd_tls_mandatory_exclude_ciphers یا smtpd_tls_exclude_ciphers از تعریف پایهٔ درجهٔ رمز انتخابشده مستثنی میشوند. برای کنترلهای رمزی که در مورد TLS فرصتطلبانه (opportunistic) اعمال میشوند، smtpd_tls_ciphers را ببینید.
فهرستهای رمز زیربنایی برای درجههایی غیر از "null" شامل رمزهای ناشناس (anonymous) نیز هستند، اما اینها در صورتی که سرور به گونهای پیکربندی شده باشد که گواهی کلاینت SMTP راه دور را درخواست کند، به طور خودکار فیلتر میشوند. بسیار بعید است که برای مستثنی کردن رمزهای ناشناس نیازی به اقدام خاصی داشته باشید، آنها در صورت نیاز به طور خودکار مستثنی میشوند. اگر ملزم هستید رمزهای ناشناس را حتی زمانی که Postfix به گواهیهای طرف مقابل نیاز ندارد یا از آنها استفاده نمیکند مستثنی کنید، مقدار "smtpd_tls_exclude_ciphers = aNULL" را تنظیم نمایید. برای مستثنی کردن رمزهای ناشناس فقط زمانی که TLS اجباری است، مقدار "smtpd_tls_mandatory_exclude_ciphers = aNULL" را قرار دهید.
این ویژگی در Postfix نگارش ۲.۳ و بالاتر در دسترس است.
smtpd_tls_mandatory_exclude_ciphers (default: empty)
فهرست تکمیلی از رمزها یا انواع رمز برای مستثنی کردن از فهرست رمزهای سرور SMTP در Postfix در سطوح امنیتی اجباری TLS. این فهرست علاوه بر موارد مستثنیشدهٔ فهرستشده با smtpd_tls_exclude_ciphers عمل میکند (برای جزئیات نحو به آن مراجعه کنید).
این ویژگی در Postfix نگارش ۲.۳ و بالاتر در دسترس است.
smtpd_tls_mandatory_protocols (default: see postconf -d output)
پروتکلهای TLS پذیرفتهشده توسط سرور SMTP در Postfix با رمزنگاری اجباری TLS. اگر فهرست خالی باشد، سرور از تمام نگارشهای موجود پروتکل TLS پشتیبانی میکند. مقدار غیرخالی فهرستی از نامهای پروتکلها برای گنجاندن یا مستثنی کردن است که با فاصلههای سفید، کاما یا دونقطه از هم جدا شدهاند.
نامهای معتبر پروتکل (ببینید: SSL_get_version(3)) عبارتند از "SSLv2"، "SSLv3"، "TLSv1"، "TLSv1.1"، "TLSv1.2" و "TLSv1.3". از Postfix ۳.۶ به بعد، مقدار پیشفرض ">=TLSv1" است که TLS 1.0 را به عنوان پایینترین نگارش پشتیبانیشدهٔ پروتکل TLS تعیین میکند (پایین را ببینید). انتشارهای قدیمیتر از نحو استثنای "!" استفاده میکنند که آن نیز در ادامه توضیح داده شده است.
از Postfix ۳.۶، شیوهٔ ارجح برای محدود کردن دامنهٔ پروتکلهای قابل قبول، تعیین پایینترین نگارش قابل قبول پروتکل TLS و/یا بالاترین نگارش قابل قبول پروتکل TLS است. برای تعیین حد پایین، عنصری به شکل ">=version" اضافه کنید که در آن version یا یکی از نامهای پروتکل TLS فهرستشده در بالا است، یا یک عدد هگزادسیمال متناظر با نگارش مورد نظر پروتکل TLS (عدد 0301 برای TLS 1.0، 0302 برای TLS 1.1، و غیره). برای حد بالا از "<=version" استفاده کنید. نباید هیچ فاصلهٔ سفیدی بین نمادهای ">=" یا "<=" و نام یا شمارهٔ پروتکل وجود داشته باشد.
شمارههای هگزادسیمال پروتکل امکان مشخص کردن محدودههای پروتکل را برای نگارشهای TLS که برای OpenSSL شناختهشده هستند اما ممکن است برای Postfix شناختهشده نباشند، فراهم میکند. آنها را نمیتوان با نحو قدیمی استثنا استفاده کرد. پیشوندهای ابتدایی "0" یا "0x" پشتیبانی میشوند، اما الزامی نیستند. بنابراین، "301"، "0301"، "0x301" و "0x0301" همگی معادل "TLSv1" هستند. نگارشهای هگزادسیمال ناشناخته برای OpenSSL در تنظیم حد بالا یا پایین ناموفق خواهند بود و یک هشدار ثبت میشود. نگارشهای هگزادسیمال تنها زمانی باید استفاده شوند که Postfix با نگارش آیندهای از OpenSSL پیوند خورده باشد که از TLS 1.4 یا بالاتر پشتیبانی میکند، اما Postfix هنوز از نام نمادین برای آن نگارش پروتکل پشتیبانی نمیکند.
مثال هگزادسیمال (Postfix >= 3.6):
# Allow only TLS 1.2 through (hypothetical) TLS 1.4, once supported # in some future version of OpenSSL (presently a warning is logged). smtpd_tls_mandatory_protocols = >=TLSv1.2, <=0305 # Allow only TLS 1.2 and up: smtpd_tls_mandatory_protocols = >=0x0303
در Postfix < 3.6 هیچ پشتیبانی از حداقل یا حداکثر نگارش وجود ندارد و دامنهٔ پروتکل از طریق مستثنی کردن پروتکلها پیکربندی میشود. برای الزامی کردن حداقل TLS 1.0، مقدار "smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3" را قرار دهید. فهرست کردن پروتکلها برای گنجاندن، به جای پروتکلها برای مستثنی کردن، پشتیبانی میشود اما توصیه نمیشود. قالب استثنا با رابط زیربنایی OpenSSL تطابق دقیقتری دارد.
پشتیبانی از "TLSv1.3" در OpenSSL 1.1.1 معرفی شد. غیرفعال کردن این پروتکل از طریق "!TLSv1.3" از Postfix ۳.۴ (یا انتشارهای وصلهٔ >= 3.0.14، 3.1.10، 3.2.7 و 3.3.2) پشتیبانی میشود.
مثال:
# Preferred syntax with Postfix >= 3.6: smtpd_tls_mandatory_protocols = >=TLSv1.2, <=TLSv1.3 # Legacy syntax: smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
این ویژگی در Postfix نگارش ۲.۳ و بالاتر در دسترس است.
smtpd_tls_protocols (default: see 'postconf -d' output)
پروتکلهای TLS پذیرفتهشده توسط سرور SMTP مربوط به Postfix در رمزنگاری فرصتطلبانه TLS. اگر این فهرست خالی باشد، سرور از تمام نسخههای دردسترس پروتکل TLS پشتیبانی میکند. مقدار غیرخالی، فهرستی از نامهای پروتکلها برای لحاظ کردن یا مستثنی کردن است که با فاصله، ویرگول یا دونقطه جدا میشوند.
نامهای معتبر پروتکل (ببینید: SSL_get_version(3)) عبارتند از "SSLv2"، "SSLv3"، "TLSv1"، "TLSv1.1"، "TLSv1.2" و "TLSv1.3". از Postfix 3.6 به بعد، مقدار پیشفرض ">=TLSv1" است که TLS 1.0 را به عنوان کمترین نسخه پروتکل TLS پشتیبانیشده تعیین میکند (پایین را ببینید). نگارشهای قدیمیتر از ساختار نگارشی استثنا کردن با "!" استفاده میکنند که آن نیز در ادامه توضیح داده شده است.
از Postfix 3.6 به بعد، روش ترجیحی برای محدود کردن دامنه پروتکلهای قابلقبول، تعیین کمترین نسخه مجاز پروتکل TLS و/یا بیشترین نسخه مجاز پروتکل TLS است. برای تعیین حد پایین، عنصری با ساختار ">=version" اضافه کنید که در آن version یکی از نامهای پروتکل TLS ذکرشده در بالا، یا یک عدد هگزادسیمال متناظر با نسخه پروتکل TLS موردنظر است (0301 برای TLS 1.0، 0302 برای TLS 1.1 و غیره). برای حد بالا، از "<=version" استفاده کنید. نباید هیچ فاصلهای بین نمادهای ">=" یا "<=" و نام یا شماره پروتکل وجود داشته باشد.
شمارههای هگزادسیمال پروتکل امکان مشخص کردن حدود پروتکل برای نسخههایی از TLS را فراهم میکنند که برای OpenSSL شناختهشده هستند اما ممکن است برای Postfix شناختهشده نباشند. از آنها نمیتوان با ساختار سنتی استثناسازی استفاده کرد. پیشوندهای "0" یا "0x" پشتیبانی میشوند، اما الزامی نیستند. بنابراین، مقادیر "301"، "0301"، "0x301" و "0x0301" همگی معادل "TLSv1" هستند. نسخههای هگزادسیمال ناشناخته برای OpenSSL در تنظیم حد بالا یا پایین ناموفق خواهند بود و یک هشدار ثبت میشود. نسخههای هگزادسیمال فقط باید زمانی استفاده شوند که Postfix با نگارش آیندهای از OpenSSL پیوند خورده باشد که از TLS 1.4 یا بالاتر پشتیبانی میکند، اما Postfix هنوز از یک نام نمادین برای آن نسخه پروتکل پشتیبانی نمیکند.
مثال هگزادسیمال (Postfix >= 3.6):
# Allow only TLS 1.0 through (hypothetical) TLS 1.4, once supported # in some future version of OpenSSL (presently a warning is logged). smtpd_tls_protocols = >=TLSv1, <=0305 # Allow only TLS 1.0 and up: smtpd_tls_protocols = >=0x0301
در Postfix < 3.6 پشتیبانی از نسخه حداقل یا حداکثر وجود ندارد و محدوده پروتکل از طریق استثنا کردن پروتکلها پیکربندی میشود. برای الزام حداقل TLS 1.0، مقدار "smtpd_tls_protocols = !SSLv2, !SSLv3" را تنظیم کنید. فهرست کردن پروتکلها جهت گنجاندن، بهجای استثنا کردن آنها، پشتیبانی میشود اما توصیه نمیشود. ساختار استثنا کردن تطابق دقیقتری با واسط زیربنایی OpenSSL دارد.
پشتیبانی از "TLSv1.3" در OpenSSL 1.1.1 معرفی شد. غیرفعال کردن این پروتکل از طریق "!TLSv1.3" از Postfix 3.4 به بعد (یا نگارشهای وصلهخورده >= 3.0.14، 3.1.10، 3.2.7 و 3.3.2) پشتیبانی میشود.
مثال:
# Preferred syntax with Postfix >= 3.6: smtpd_tls_protocols = >=TLSv1, <=TLSv1.3 # Legacy syntax: smtpd_tls_protocols = !SSLv2, !SSLv3
این قابلیت در Postfix 2.6 و بالاتر در دسترس است.
smtpd_tls_received_header (default: no)
درخواست میکند که سرور SMTP مربوط به Postfix سرایندهای پیام Received: تولید کند که حاوی اطلاعاتی درباره پروتکل و الگوریتم رمزگذاری (cipher) استفادهشده، و همچنین CommonName کلاینت راه دور SMTP و CommonName صادرکننده گواهی کلاینت باشد. این گزینه بهطور پیشفرض غیرفعال است، زیرا این اطلاعات ممکن است هنگام انتقال در میان دیگر سرورهای ایمیل تغییر کنند. تنها اطلاعاتی که توسط مقصد نهایی ثبت شده باشند قابل اعتماد هستند.
این قابلیت در Postfix 2.2 و بالاتر در دسترس است.
smtpd_tls_req_ccert (default: no)
در صورت اجباری بودن رمزنگاری TLS، برای اجازه دادن به برقراری ارتباطهای TLS، یک گواهی معتبر کلاینت راه دور SMTP را الزامی میکند. این گزینه متضمن "smtpd_tls_ask_ccert = yes" است.
هنگامی که رمزنگاری TLS اختیاری باشد، این تنظیم نادیده گرفته شده و یک هشدار در لاگ ایمیل نوشته میشود.
این قابلیت در Postfix 2.2 و بالاتر در دسترس است.
smtpd_tls_security_level (default: empty)
سطح امنیت SMTP TLS برای سرور SMTP مربوط به Postfix؛ هنگامی که مقداری غیرخالی مشخص شود، این پارامتر اولویت بالاتری نسبت به پارامترهای منسوخشده smtpd_use_tls و smtpd_enforce_tls خواهد داشت. در صورت تعیین "smtpd_tls_wrappermode = yes"، این پارامتر نادیده گرفته میشود.
یکی از سطوح امنیتی زیر را مشخص کنید:
- none
- از TLS
استفاده
نخواهد شد.
- may
- رمزنگاری
فرصتطلبانه
TLS (Opportunistic TLS):
پشتیبانی
از STARTTLS را به
کلاینتهای
راه دور SMTP
اعلام
میکند،
اما
کلاینتها
را به
استفاده از
رمزنگاری TLS
ملزم
نمیکند.
- encrypt
- رمزنگاری
اجباری TLS:
پشتیبانی
از STARTTLS را به
کلاینتهای
راه دور SMTP
اعلام کرده
و تمام
دستورات
متنساده
را بهجز
HELO، EHLO، XCLIENT،
STARTTLS، NOOP، QUIT و (Postfix >=
3.9) HELP رد
میکند. طبق
RFC 2487، این
مقدار
نباید برای
سرورهای SMTP
با ارجاع
عمومی به
کار رود. در
عوض، باید
روی
سرورهای
اختصاصی
مانند submission
(درگاه 587)
استفاده
شود.
نکته ۱: سطوح "fingerprint"، "verify" و "secure" در اینجا پشتیبانی نمیشوند. سرور SMTP مربوط به Postfix یک هشدار ثبت کرده و بهجای آنها از "encrypt" استفاده میکند. برای اعتبارسنجی گواهیهای کلاینت راه دور SMTP، برای توضیحات قابلیتهای smtpd_tls_ask_ccert، smtpd_tls_req_ccert و permit_tls_clientcerts به مستند TLS_README مراجعه کنید.
نکته ۲: مقداردهی "smtpd_tls_security_level = encrypt" به معنای "smtpd_tls_auth_only = yes" خواهد بود.
نکته ۳: هنگام فراخوانی از طریق "sendmail -bs"، کارگزار Postfix به دلیل دسترسی ناکافی برای خواندن کلید خصوصی سرور، هرگز STARTTLS را ارائه نخواهد داد. این رفتار عمدی است.
این قابلیت در Postfix 2.3 و بالاتر در دسترس است.
smtpd_tls_session_cache_database (default: empty)
نام فایل حاوی حافظه موقت (cache) اختیاری نشست TLS سرور SMTP مربوط به Postfix. نوعی از پایگاهداده را مشخص کنید که از پیمایش پشتیبانی کند، مانند btree یا sdbm؛ نیازی به پشتیبانی از دسترسی همروند نیست. اگر فایل وجود نداشته باشد، ایجاد میشود. دیمن smtpd(8) از این پارامتر مستقیماً استفاده نمیکند، بلکه کش بهصورت غیرمستقیم در دیمن tlsmgr(8) پیادهسازی شده است. این بدان معناست که بازنویسی این پارامتر در master.cf برای هر نمونه smtpd بیاثر خواهد بود. توجه داشته باشید که هر یک از پایگاههای داده کش پشتیبانیشده توسط دیمن tlsmgr(8): $smtpd_tls_session_cache_database، $smtp_tls_session_cache_database (و در Postfix 2.3 و بالاتر $lmtp_tls_session_cache_database) باید جداگانه ذخیره شوند. در حال حاضر ذخیره چند کش در یک پایگاهداده واحد امکانپذیر نیست.
نکته: پایگاههای داده dbm مناسب نیستند؛ اشیای نشست TLS بیش از حد بزرگ هستند.
از نگارش 2.5 به بعد، Postfix هنگام باز کردن این فایل دیگر از دسترسیهای ریشه (root) استفاده نمیکند. این فایل اکنون باید در data_directory متعلق به Postfix ذخیره شود. برای تسهیل مهاجرت، تلاش برای باز کردن فایل تحت دایرکتوری غیر متعلق به Postfix، به data_directory مربوط به Postfix هدایت شده و یک هشدار ثبت میشود.
از Postfix 2.11 به بعد، سازوکار ترجیحی برای ازسرگیری نشست، بلیتهای نشست TLS طبق RFC 5077 است که نیازی به ذخیرهسازی سمت سرور ندارند. در نتیجه، برای Postfix >= 2.11 این پارامتر بهطور کلی باید خالی بماند. بلیتهای نشست TLS نیازمند کتابخانه OpenSSL (حداقل نسخه 0.9.8h) هستند که پشتیبانی کامل از این افزونه TLS را ارائه دهد. همچنین ببینید: smtpd_tls_session_cache_timeout.
مثالها:
smtpd_tls_session_cache_database = lmdb:/var/lib/postfix/smtpd_scache smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
این قابلیت در Postfix 2.2 و بالاتر در دسترس است.
smtpd_tls_session_cache_timeout (default: 3600s)
مدت زمان انقضای اطلاعات حافظه موقت نشست TLS سرور SMTP مربوط به Postfix. پاکسازی کش بهطور دورهای هر $smtpd_tls_session_cache_timeout ثانیه انجام میشود. همانند $smtpd_tls_session_cache_database، این پارامتر در دیمن tlsmgr(8) پیادهسازی شده و بنابراین امکان بازنویسی آن در master.cf برای هر نمونه smtpd وجود ندارد.
از Postfix 2.11 به بعد، این مقدار نمیتواند از ۱۰۰ روز فراتر رود. اگر کمتر یا مساوی با ۰ تنظیم شود، کش نشست نهتنها از طریق پایگاهداده، بلکه از طریق بلیتهای نشست TLS طبق RFC 5077 (که نیازی به ذخیرهسازی سمت سرور ندارند) نیز غیرفعال میشود. اگر روی مقداری مثبت کمتر از ۲ دقیقه تنظیم شود، حداقل مقدار یعنی ۲ دقیقه بهجای آن استفاده خواهد شد. بلیتهای نشست TLS نیازمند کتابخانه OpenSSL (حداقل نسخه 0.9.8h) هستند که از این افزونه TLS بهطور کامل پشتیبانی کند.
یک مقدار زمانی غیرمنفی مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix 2.2 و بالاتر در دسترس است و در Postfix 2.11 برای پشتیبانی از بلیت نشست TLS بهروزرسانی شده است.
smtpd_tls_wrappermode (default: no)
اجرای سرور SMTP مربوط به Postfix در حالت "wrapper" برای TLS، بهجای استفاده از دستور STARTTLS.
اگر میخواهید از این سرویس پشتیبانی کنید، پورت ویژهای را در master.cf فعال کرده و "-o smtpd_tls_wrappermode=yes" را در خط فرمان سرور SMTP مشخص کنید. پورت 465 (submissions، که پیشتر smtps نامیده میشد) برای این منظور رزرو شده است.
این قابلیت در Postfix 2.2 و بالاتر در دسترس است.
smtpd_upstream_proxy_protocol (default: empty)
نام پروتکل پراکسی مورد استفاده توسط عامل پراکسی اختیاریِ پیش از smtpd (before-smtpd). هنگامی که یک عامل پراکسی استفاده میشود، این پروتکل اطلاعات آدرس و پورت محلی و راه دور را انتقال میدهد. برای فعالسازی پروتکل haproxy مقدار "smtpd_upstream_proxy_protocol = haproxy" را تعیین کنید؛ نگارش 2 در Postfix 3.5 و بالاتر پشتیبانی میشود.
نکته: برای استفاده از پراکسی nginx با smtpd(8)، پروتکل XCLIENT را با smtpd_authorized_xclient_hosts فعال کنید. این کار از احراز هویت SASL در عامل پراکسی پشتیبانی میکند (Postfix 2.9 و بالاتر).
این قابلیت در Postfix 2.10 و بالاتر در دسترس است.
smtpd_upstream_proxy_timeout (default: 5s)
مهلت زمانی برای پروتکل پراکسی مشخصشده با پارامتر smtpd_upstream_proxy_protocol.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این قابلیت در Postfix 2.10 و بالاتر در دسترس است.
smtpd_use_tls (default: no)
رمزنگاری فرصتطلبانه TLS: پشتیبانی از STARTTLS را به کلاینتهای راه دور SMTP اعلام میکند، اما استفاده از رمزنگاری TLS را برای کلاینتها اجباری نمیکند.
نکته: هنگام فراخوانی از طریق "sendmail -bs"، کارگزار Postfix به دلیل دسترسی ناکافی به کلید خصوصی سرور، هرگز STARTTLS را ارائه نخواهد داد. این رفتار عمدی است.
این قابلیت از Postfix 3.9 منسوخ شده است. بهجای آن smtpd_tls_security_level را مشخص کنید.
این قابلیت در Postfix 2.2 و بالاتر در دسترس است. در Postfix 2.3 و بالاتر بهجای آن از smtpd_tls_security_level استفاده کنید.
smtputf8_autodetect_classes (default: sendmail, verify)
تشخیص میدهد که آیا پیام برای کلاسهای مبدأ ایمیل مشخصشده، به پشتیبانی از SMTPUTF8 نیاز دارد یا خیر. این یک راهکار برای دور زدن مشکلات «مرغ و تخممرغ» در هنگام راهاندازی اولیه SMTPUTF8 در محیطهایی با جریانهای ایمیل از پیش موجود حاوی UTF8 است. این جریانهای ایمیل نباید به این دلیل که Postfix ناگهان از تحویل چنین ایمیلهایی به MTAهای پاییندستی که فاقد پشتیبانی از SMTPUTF8 هستند خودداری میکند، دچار اختلال شوند.
مشکل این است که Postfix نمیتواند صرفاً به اظهار فرستنده مبنی بر نیاز پیام به پشتیبانی از SMTPUTF8 تکیه کند، زیرا ممکن است UTF8 حین پردازش محلی وارد شود (برای مثال، نام هاست کلاینت در سرایند Received: مربوط به Postfix، افزودن @$myorigin یا .$mydomain به نشانی ناقص، بازنویسی نشانی، بسط نامهای مستعار (alias)، گیرندگان خودکار رونوشت پنهان (BCC)، بازپخش محلی، و تغییرات اعمالشده توسط بررسیهای سرایند یا برنامههای Milter).
در حال حاضر، مقدار پیشفرض این است که تشخیص خودکار "SMTPUTF8 required" تنها برای ارسالهای خط فرمان sendmail مربوط به Postfix و کاوشهای اعتبارسنجی نشانی فعال باشد. این وضعیت ممکن است زمانی که پشتیبانی از SMTPUTF8 در سطح جهانی فراگیر شود، تغییر کند. با این حال، سایتهایی که محتوای UTF8 را از طریق پردازش محلی اضافه میکنند (بالا را ببینید) باید نیاز به پشتیبانی SMTPUTF8 را برای همه ایمیلها بهطور خودکار تشخیص دهند.
یک یا چند مورد از موارد زیر را مشخص کنید:
- sendmail
- ارسال از
طریق دستور
sendmail(1) مربوط
به Postfix.
- smtpd
- ایمیل
دریافتشده
با دیمن smtpd(8).
- qmqpd
- ایمیل
دریافتشده
با دیمن qmqpd(8).
- forward
- فوروارد
کردن محلی
یا نامهای
مستعار.
هنگامی که
پیامی با "SMTPUTF8
required" دریافت
شود، پیام
فورواردشده
(نام
مستعار)
همواره
دارای "SMTPUTF8 required"
خواهد بود.
- bounce
- ارسال توسط
دیمن bounce(8).
هنگامی که
پیامی با "SMTPUTF8
required" دریافت
شود، اعلان
وضعیت
تحویل
همواره
دارای "SMTPUTF8 required"
خواهد بود.
- notify
- اعلان مدیر
سیستم (postmaster) از
طریق دیمن
smtp(8) یا smtpd(8).
- verify
- کاوش
اعتبارسنجی
نشانی از
طریق دیمن
verify(8).
- all
- فعالسازی
تشخیص
خودکار SMTPUTF8
برای تمامی
ایمیلها.
این قابلیت در Postfix 3.0 و بالاتر در دسترس است.
smtputf8_enable (default: yes)
پشتیبانی مقدماتی از SMTPUTF8 را برای پروتکلهای توصیفشده در RFC 6531، RFC 6532 و RFC 6533 فعال میکند. این امر نیازمند کامپایل Postfix با قابلیت پشتیبانی از این پروتکلها است.
این قابلیت در Postfix 3.0 و بالاتر در دسترس است.
socketmap_max_reply_size (default: 100000)
حداکثر اندازه مجاز پاسخ دریافتی از سرور socketmap، بدون احتساب کپسولهسازی netstring.
این قابلیت در Postfix >= 3.10 در دسترس است.
soft_bounce (default: no)
شبکه ایمنی برای نگهداشتن ایمیل در صف، در مواردی که در حالت عادی به فرستنده بازگردانده (bounce) میشد. این پارامتر برگشتهای تولیدشده بهصورت محلی را غیرفعال میکند، رفتار در مواجهه با پاسخهای منفی سرورهای راه دور، فیلترهای محتوا یا افزونهها را تغییر میدهد، و با تبدیل کدهای پاسخ 5xx به 4xx، از رد دائمی ایمیل توسط سرور SMTP مربوط به Postfix جلوگیری میکند. با این حال، soft_bounce راهکاری برای خطاهای بازنویسی آدرس یا اشتباهات مسیریابی ایمیل نیست.
نکته: "soft_bounce = yes" در برخی موارد با دستکاری پاسخهای سرور پیادهسازی میشود. بنابراین، پاسخی که Postfix لاگ میکند ممکن است با پاسخی که در عمل ارسال یا دریافت میکند متفاوت باشد.
مثال:
soft_bounce = yes
stale_lock_time (default: 500s)
مدت زمانی که پس از آن قفل انحصاری منقضیشده فایل صندوق پستی حذف میشود. این گزینه برای تحویل به فایل یا صندوق پستی به کار میرود.
یک مقدار زمانی غیرصفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
stress (default: empty)
این قابلیت در سند STRESS_README مستند شده است.
این قابلیت در Postfix 2.5 و بالاتر در دسترس است.
strict_7bit_headers (default: no)
رد کردن ایمیلهایی که در سرایندهای پیام دارای متن 8-bit هستند. این کار مانع دریافت ایمیل از برنامههای ضعیف پیادهسازیشده میشود.
این قابلیت نباید روی یک سرور ایمیل با کاربرد عمومی فعال شود، چرا که ممکن است ایمیلهای معتبر را نیز رد کند.
این قابلیت در Postfix 2.0 و بالاتر در دسترس است.
strict_8bitmime (default: no)
فعالسازی همزمان هر دو پارامتر strict_7bit_headers و strict_8bitmime_body.
این قابلیت نباید روی یک سرور ایمیل با کاربرد عمومی فعال شود، چرا که ممکن است ایمیلهای معتبر را نیز رد کند.
این قابلیت در Postfix 2.0 و بالاتر در دسترس است.
strict_8bitmime_body (default: no)
رد کردن متن بدنه پیام 8-بیتی فاقد اطلاعات کدگذاری محتوای 8-بیتی MIME. این کار پیامهای ارسالشده از سوی برنامههای با نگارش ضعیف را مسدود میکند.
متأسفانه، این گزینه درخواستهای تأیید majordomo را هنگامی که حاوی ایمیل 8-بیتی معتبر MIME باشند رد میکند، و همچنین برگشتیها (bounce) از سوی میلرهایی که محتوای 8-بیتی را در MIME کپسولهسازی نمیکنند (برای نمونه برگشتیهای qmail یا نگارشهای قدیمی Postfix) را رد مینماید.
این قابلیت نباید روی سرور ایمیل با کاربرد عمومی فعال شود، زیرا احتمال دارد ایمیلهای معتبر را رد کند.
این قابلیت در Postfix نسخه 2.0 و بالاتر در دسترس است.
strict_mailbox_ownership (default: yes)
به تعویق انداختن تحویل زمانی که مالک فایل صندوق پستی، گیرنده آن نباشد. مقدار پیشفرض با نگارشهای قبلی سازگار نیست.
این قابلیت در Postfix نسخه 2.5.3 و بالاتر در دسترس است.
strict_mime_encoding_domain (default: no)
رد کردن ایمیلهای دارای اطلاعات Content-Transfer-Encoding: نامعتبر برای نوع محتواهای MIME از نوع message/* یا multipart/*. این کار ایمیلهای نرمافزارهای ضعیف را مسدود میکند.
این قابلیت نباید روی سرور ایمیل با کاربرد عمومی فعال شود، چرا که ایمیل را تنها پس از یک تخلف رد میکند.
این قابلیت در Postfix نسخه 2.0 و بالاتر در دسترس است.
strict_rfc821_envelopes (default: no)
الزام به اینکه آدرسهای دریافتشده در دستورهای SMTP MAIL FROM و RCPT TO درون <> محصور باشند و شامل توضیحات یا عبارات به سبک RFC 822 نباشند. این تنظیم ایمیلهای نرمافزارهای ضعیف را متوقف میکند.
به صورت پیشفرض، سرور SMTP در Postfix نحو RFC 822 را در آدرسهای MAIL FROM و RCPT TO میپذیرد.
strict_smtputf8 (default: no)
فعالسازی اعمال سختگیرانهتر پروتکل SMTPUTF8. سرور SMTP در Postfix آدرسهای فرستنده یا گیرنده UTF8 را تنها زمانی میپذیرد که کلاینت یک تراکنش ایمیل SMTPUTF8 را درخواست کرده باشد.
این قابلیت در Postfix نسخه 3.0 و بالاتر در دسترس است.
sun_mailtool_compatibility (default: no)
قابلیت منسوخ سازگاری با SUN mailtool. به جای آن از "mailbox_delivery_lock = dotlock" استفاده کنید.
swap_bangpath (default: yes)
فعالسازی بازنویسی "site!user" به "user@site". این مورد در صورت اتصال سیستم شما به شبکههای UUCP ضروری است. این گزینه به طور پیشفرض فعال است.
نکته: در Postfix نسخه 2.2، بازنویسی آدرس سرآیند پیام تنها زمانی رخ میدهد که یکی از شرایط زیر برقرار باشد:
- پیام با دستور sendmail(1) مربوط به Postfix دریافت شده باشد،
- پیام از یک کلاینت شبکه که با $local_header_rewrite_clients تطبیق دارد دریافت شده باشد،
- پیام از
شبکه
دریافت شده
باشد و
پارامتر
remote_header_rewrite_domain یک
مقدار
غیرخالی
مشخص کرده
باشد.
برای دریافت رفتار پیش از Postfix نسخه 2.2، مقدار "local_header_rewrite_clients = static:all" را تعیین کنید.
مثال:
swap_bangpath = no
syslog_facility (default: mail)
بخش (facility) لاگگیری Postfix در syslog. یک بخش را مطابق با آنچه در syslog.conf(5) تعریف شده تعیین کنید. بخش پیشفرض "mail" است.
هشدار: تنظیم غیر پیشفرض syslog_facility تنها پس از راهاندازی اولیه کامل فرایند Postfix اعمال میشود. خطاها در حین راهاندازی اولیه فرایند با بخش پیشفرض ثبت میشوند؛ برای نمونه خطاهای تجزیه آرگومانهای خط فرمان و خطاهای دسترسی به فایل پیکربندی main.cf در Postfix.
syslog_name (default: see postconf -d output)
پیشوندی که به ابتدای نام فرایند در رکوردهای syslog اضافه میشود؛ به گونهای که برای نمونه "smtpd" تبدیل به "prefix/smtpd" میشود.
هشدار: تنظیم غیر پیشفرض syslog_name تنها پس از راهاندازی اولیه کامل فرایند Postfix اعمال میشود. خطاها در طول راهاندازی فرایند با نام پیشفرض ثبت خواهند شد؛ مانند خطاها هنگام تجزیه آرگومانهای خط فرمان و خطاها حین دسترسی به فایل پیکربندی main.cf در Postfix.
tcp_windowsize (default: 0)
یک راهکار اختیاری برای روترهایی که مقیاسبندی پنجره TCP (TCP window scaling) را مختل میکنند. برای فعالسازی این قابلیت مقداری > 0 و < 65536 تعیین کنید. در سرورهای TCP در Postfix (smtpd(8), qmqpd(8))، این قابلیت توسط دیمن master(8) پیادهسازی شده است.
جهت تغییر این پارامتر بدون متوقف ساختن Postfix، ابتدا باید تمام سرورهای TCP در Postfix را متوقف کنید:
# postconf -e master_service_disable=inet # postfix reload
این کار بلافاصله کلیه فرایندهایی را که اتصالات شبکه میپذیرند متوقف میکند. سپس، سرورهای TCP را در Postfix با مقدار بهروزشده tcp_windowsize فعال کنید:
# postconf -e tcp_windowsize=65535 master_service_disable= # postfix reload
اگر این مراحل را روی سامانه فعال Postfix نادیده بگیرید، تغییرات tcp_windowsize تنها برای کلاینتهای TCP در Postfix (smtp(8)، lmtp(8)) اعمال خواهد شد.
این قابلیت در Postfix نسخه 2.6 و بالاتر در دسترس است.
tls_append_default_CA (default: no)
پیوست کردن گواهیهای مرجع صدور گواهی (CA) پیشفرض ارائهشده توسط سیستم به گواهیهای مشخصشده با *_tls_CApath یا *_tls_CAfile. مقدار پیشفرض "no" است؛ این کار مانع از اعتماد Postfix به گواهیهای متفرقه و اعطای مجوز رله به آنها با permit_tls_all_clientcerts میشود.
این قابلیت در Postfix نگارشهای 2.4.15، 2.5.11، 2.6.8، 2.7.2 و نسخههای پس از آن در دسترس است. برای سازگاری با نگارشهای پیشین و جلوگیری از اختلال در اعتبارسنجی گواهی در سایتهایی که از permit_tls_all_clientcerts استفاده نمیکنند، مقدار "tls_append_default_CA = yes" را مشخص کنید.
tls_config_file (default: default)
فایل پیکربندی اختیاری حاوی تنظیمات پایه OpenSSL. برنامه OpenSSL هرگونه تنظیمات SSL موجود در فایل پیکربندی را برای نام برنامه انتخابشده (رجوع کنید به tls_config_name) یا در صورت عدم تعیین نام برنامه یا نبود بخش پیکربندی مربوطه، نام پیشفرض توکار "openssl_conf" بارگذاری میکند.
در نگارشهای 1.1.1 و 1.1.1a از OpenSSL، برنامهها (از جمله Postfix) نمیتوانند فایل پیکربندی جایگزین مشخص کنند یا از بارگذاری فایل پیکربندی پیشفرض صرفنظر نمایند.
در OpenSSL نسخه 1.1.1b یا بالاتر، این پارامتر میتواند روی یکی از مقادیر زیر تنظیم شود:
- default (پیشفرض)
- بارگذاری
فایل
پیکربندی
سراسری
سیستم "openssl.cnf".
- none (توصیهشده، تنها در OpenSSL 1.1.1b یا بالاتر)
- این تنظیم
بارگذاری
فایل
سراسری "openssl.cnf"
سیستم را
غیرفعال
میکند.
- /absolute-path (تنها در OpenSSL 1.1.1b یا بالاتر)
- بارگذاری
فایل
پیکربندی
مشخصشده
توسط /absolute-path. با
این تنظیم،
عدم وجود
هرگونه
تنظیمات
برای tls_config_name
انتخابشده
در فایل، یک
خطا محسوب
میشود. هیچ
بازگشتی به
نام
پیشفرض
"openssl_conf" وجود
ندارد.
خرابیها در پردازش فایل پیکربندی پیشفرض توکار نادیده گرفته میشوند. هرگونه خطا در بارگذاری فایل پیکربندی غیر پیشفرض توسط Postfix شناسایی شده و منجر به غیرفعال شدن پشتیبانی TLS میگردد.
قالب فایل پیکربندی OpenSSL در اینجا فراتر از ارائه دو مثال شرح داده نشده است.
مثال: تنظیمات پیشفرض برای تمامی برنامهها.
# The name 'openssl_conf' is the default application name # The section name to the right of the '=' sign is arbitrary, # any name will do, so long as it refers to the desired section. # # The name 'system_default' selects the settings applied internally # by the SSL library as part of SSL object creation. Applications # can then apply any additional settings of their choice. # # In this example, TLS versions prior to 1.2 are disabled by default. # openssl_conf = system_wide_settings [system_wide_settings] ssl_conf = ssl_library_settings [ssl_library_settings] system_default = initial_ssl_settings [initial_ssl_settings] MinProtocol = TLSv1.2
مثال: تنظیمات سفارشی برای برنامهای به نام "postfix".
# The mapping from an application name to the corresponding configuration # section must appear near the top of the file, (in what is sometimes called # the "default section") prior to the start of any explicitly named # "[sections]". The named sections can appear in any order and don't nest. # postfix = postfix_settings [postfix_settings] ssl_conf = postfix_ssl_settings [postfix_ssl_settings] system_default = baseline_postfix_settings [baseline_postfix_settings] MinProtocol = TLSv1
مثال: تنظیمات گروهی سفارشی OpenSSL.
main.cf:
tls_config_file = ${config_directory}/openssl.cnf
tls_config_name = postfix
# Clear Postfix curve/group settings to let custom OpenSSL
# configuration settings take effect. For most users, the
# default Postfix settings are strongly recommended.
tls_eecdh_auto_curves =
tls_ffdhe_auto_groups =
openssl.cnf:
postfix = postfix_settings
[postfix_settings] ssl_conf = postfix_ssl_settings
[postfix_ssl_settings] system_default = baseline_postfix_settings
[baseline_postfix_settings] # New OpenSSL 3.5 syntax, for older releases consider # the Postfix default: # # Groups = X25519:X448:prime256v1:secp384r1:secp521r1:ffdhe2048:ffdhe3072 # Groups = ?X25519MLKEM768 / ?*X25519:?secp256r1 / ?X448:?secp384r1:?secp521r1 / ?ffdhe2048:?ffdhe3072
احتیاط: معمولاً بهتر است تنها از تنظیمات گروهی پیشفرض کامپایلشده OpenSSL استفاده شود و مقدار "tls_config_file = none" قرار گیرد. تنظیمات بیش از حد سختگیرانه سراسری TLS با سازوکار TLS فرصتطلبانه (opportunistic) در Postfix تداخل ایجاد میکند، جایی که محدودیت کمتر بهتر از تنزل به پروتکل ناامن و متنساده SMTP است.
این قابلیت در Postfix نگارشهای >= 3.9، 3.8.1، 3.7.6، 3.6.10 و 3.5.20 در دسترس است.
tls_config_name (default: empty)
نام برنامهای که Postfix به توابع راهاندازی کتابخانه OpenSSL ارسال میکند. این نام برای انتخاب «بخش» (section) پیکربندی دلخواه در فایل پیکربندی OpenSSL مشخصشده توسط پارامتر tls_config_file به کار میرود. در صورت خالی بودن، یا عدم وجود نام انتخابشده در فایل پیکربندی، نام برنامه پیشفرض ("openssl_conf") به عنوان جایگزین استفاده میشود.
این قابلیت در Postfix نسخه >= 3.9 در دسترس است.
tls_daemon_random_bytes (default: 32)
تعداد بایتهای شبهتصادفی که یک فرایند smtp(8) یا smtpd(8) از سرور tlsmgr(8) برای تعیین بذر (seed) تولیدکننده اعداد شبهتصادفی (PRNG) داخلی خود درخواست میکند. مقدار پیشفرض ۳۲ بایت (معادل ۲۵۶ بیت) برای تولید یک کلید نشست ۱۲۸ بیتی (یا ۱۶۸ بیتی) کفایت میکند.
این قابلیت در Postfix نسخه 2.2 و بالاتر در دسترس است.
tls_dane_digest_agility (default: on)
پیکربندی انعطافپذیری الگوریتم خلاصه RFC7671 DANE TLSA. این تنظیم را از مقدار پیشفرض تغییر ندهید.
برای رویههای صحیح چرخش کلید، به بخش 8 از RFC7671 مراجعه کنید.
این قابلیت در Postfix نگارشهای 2.11 تا 3.1 در دسترس است. Postfix نسخه 3.2 و بالاتر این پارامتر پیکربندی را نادیده گرفته و به گونهای عمل میکنند که گویی روی "on" تنظیم شده است.
tls_dane_digests (default: sha512 sha256)
الگوریتمهای خلاصه «نوع تطبیق» (matching type) در رکوردهای منبع DANE TLSA (بر اساس RFC 6698، RFC 7671، RFC 7672) به ترتیب نزولی اولویت. تمامی الگوریتمهای مشخصشده باید توسط کتابخانه زیربنایی OpenSSL پشتیبانی شوند، در غیر این صورت کلاینت SMTP در Postfix از امنیت DANE TLSA پشتیبانی نخواهد کرد.
فهرستی از نامهای خلاصه را که با کاما و/یا نویسه فاصله از هم جدا شدهاند مشخص کنید. پس از هر نام خلاصه میتواند پسوند اختیاری "=<number>" درج شود. برای نمونه، میتوان به جای "sha512" مقدار "sha512=2" و به جای "sha256" مقدار "sha256=1" را وارد کرد. عدد اختیاری باید با شماره نوع تطبیق TLSA تخصیصیافته توسط IANA برای الگوریتم مربوطه مطابقت داشته باشد: https://www.iana.org/assignments/dane-parameters/dane-parameters.xhtml#matching-types. سامانه Postfix این محدودیت را برای الگوریتمهایی که میشناسد اعمال خواهد کرد. الگوریتمهای تطبیق اضافی ثبتشده در IANA را میتوان با شمارههای صریح اضافه کرد، به شرطی که توسط OpenSSL پشتیبانی شوند.
موارد نامعتبر در فهرست، همراه با یک پیام هشدار در لاگ ثبت شده و پشتیبانی DANE را غیرفعال میکنند. رکوردهای TLSA RR که خلاصههایی خارج از این فهرست تعیین کنند با هشدار نادیده گرفته میشوند.
نکته: حذف sha256 از فهرست خلاصه توصیه نمیشود. این الگوریتم تنها الگوریتم اجباری جهت پیادهسازی در RFC 6698 است و انتظار میرود بسیاری از سرورها رکوردهای TLSA را تنها با خلاصه sha256 منتشر کنند. مگر در شرایطی که یکی از خلاصههای استاندارد دچار رخنه اساسی شده باشد و سرورها زمان کافی جهت بهروزرسانی رکوردهای TLSA خود در اختیار داشته باشند، نباید هیچیک از خلاصههای استاندارد را حذف کنید؛ صرفاً آنها را از قویترین به ضعیفترین مرتب نمایید.
این قابلیت در Postfix نسخه 2.11 و بالاتر در دسترس است.
tls_dane_trust_anchor_digest_enable (default: yes)
فعالسازی پشتیبانی از رکوردهای DNS مربوط به RFC 6698 (DANE TLSA) حاوی خلاصههای لنگر اعتماد (trust-anchor) با کاربرد گواهی "2". این تنظیم را از مقدار پیشفرض تغییر ندهید.
این قابلیت در Postfix نگارشهای 2.11 تا 3.1 در دسترس است. این قابلیت در Postfix 3.2 کنار گذاشته شده است، زیرا رکوردهای TLSA لنگر اعتماد اکنون به طور گسترده به کار گرفته میشوند و قابلیت اطمینان کافی دارند. Postfix 3.2 و بالاتر این پارامتر را نادیده گرفته و به گونهای عمل میکنند که گویی روی "yes" تنظیم شده است.
tls_disable_workarounds (default: see postconf -d output)
فهرست یا ماسک بیتی (bit-mask) از راهکارهای خطای OpenSSL جهت غیرفعالسازی.
جعبهابزار OpenSSL شامل مجموعهای از راهحلها برای مقابله با باگهای پیادهسازی SSL/TLS است. برنامههایی مانند Postfix که خواستار حداکثر سازگاری متقابل هستند، از کتابخانه OpenSSL میخواهند تا مجموعه کامل این راهحلهای توصیهشده را فعال کند.
گاهی مشخص میشود که یک راهحل موقت، خود عامل بروز آسیبپذیری امنیتی است و دیگر نباید مورد استفاده قرار گیرد. چنانچه ارتقای OpenSSL به نگارش رفعشده ممکن نباشد یا بهروزرسانی بهموقع ارائه نشود، یا در محیطهای ایزولهای که هیچ کلاینت یا سرور معیوبی در آنها حضور ندارد، غیرفعال کردن برخی یا تمام راهحلهای سازگاری OpenSSL مناسب خواهد بود. این پارامتر مشخص میکند که کدام راهحلهای خطا باید غیرفعال شوند.
اگر مقدار این پارامتر یک عدد صحیح طولانی هگزادسیمال باشد که با "0x" شروع میشود، راهحلهای متناظر با بیتهای تعیینشده در آن مقدار، از ماسک بیتی SSL_OP_ALL حذف میشوند (openssl/ssl.h و SSL_CTX_set_options(3) را ببینید). میتوانید بیتهای بیشتری نسبت به موارد موجود در SSL_OP_ALL تعیین کنید؛ بیتهای اضافه نادیده گرفته میشوند. تعیین مقدار 0xFFFFFFFF تمام راهحلهای خطا را در سامانههای ۳۲ بیتی غیرفعال میکند. این مقدار باید در سامانههای ۶۴ بیتی نیز کافی باشد، تا زمانی که OpenSSL پشتیبانی از سامانههای ۳۲ بیتی را پایان داده و استفاده از ۳۲ بیت بالایی ماسک ۶۴ بیتی را آغاز کند.
در غیر این صورت، این پارامتر فهرستی جداشده با فاصله یا کاما از راهحلهای خطای نامگذاریشده خاص است که از فهرست زیر انتخاب میشوند. این احتمال وجود دارد که نگارش OpenSSL شما حاوی راهحلهای خطای جدیدی باشد که پس از آخرین بهروزرسانی کد منبع Postfix اضافه شدهاند؛ در چنین شرایطی، غیرفعال کردن آنها تنها از طریق نحو هگزادسیمال فوق ممکن خواهد بود.
- CRYPTOPRO_TLSEXT_BUG
- جدید با
پشتیبانی
از GOST در OpenSSL 1.0.0.
- DONT_INSERT_EMPTY_FRAGMENTS
- ببینید:
SSL_CTX_set_options(3)
- LEGACY_SERVER_CONNECT
- ببینید:
SSL_CTX_set_options(3)
- MICROSOFT_BIG_SSLV3_BUFFER
- ببینید:
SSL_CTX_set_options(3)
- MICROSOFT_SESS_ID_BUG
- ببینید:
SSL_CTX_set_options(3)
- MSIE_SSLV2_RSA_PADDING
- همچنین با
نام مستعار
CVE-2005-2969 شناخته
میشود. Postfix 2.8
این راهحل
جایگزین را
بهطور
پیشفرض در
نسخههای OpenSSL
که ممکن است
پیش از
اصلاحیه
باشند
غیرفعال
میکند. در OpenSSL
0.9.7h و OpenSSL 0.9.8a اصلاح
شده است.
- NETSCAPE_CHALLENGE_BUG
- ببینید:
SSL_CTX_set_options(3)
- NETSCAPE_REUSE_CIPHER_CHANGE_BUG
- همچنین با
نام مستعار
CVE-2010-4180 شناخته
میشود. Postfix 2.8
این راهحل
جایگزین را
بهطور
پیشفرض در
نسخههای OpenSSL
که ممکن است
پیش از
اصلاحیه
باشند
غیرفعال
میکند. در OpenSSL
0.9.8q و OpenSSL 1.0.0c اصلاح
شده است.
- SSLEAY_080_CLIENT_DH_BUG
- ببینید:
SSL_CTX_set_options(3)
- SSLREF2_REUSE_CERT_TYPE_BUG
- ببینید:
SSL_CTX_set_options(3)
- TLS_BLOCK_PADDING_BUG
- ببینید:
SSL_CTX_set_options(3)
- TLS_D5_BUG
- ببینید:
SSL_CTX_set_options(3)
- TLS_ROLLBACK_BUG
- ببینید:
SSL_CTX_set_options(3). این
مورد در OpenSSL 0.9.7 و
بالاتر
غیرفعال
شده است.
هیچکس
نباید هنوز
از 0.9.6
استفاده
کند!
- TLSEXT_PADDING
- در Postfix >= 3.4.
ببینید:
SSL_CTX_set_options(3).
این ویژگی در Postfix 2.8 و بالاتر در دسترس است.
tls_eecdh_auto_curves (default: see postconf -d output)
فهرست اولویتبندیشده منحنیهای بیضوی که باید در کلاینت و سرور SMTP در Postfix فعال شوند. منحنیهای انتخابشده باید توسط OpenSSL پیادهسازی شده و برای استفاده در افزونهی «گروههای پشتیبانیشده» TLS استانداردسازی شده باشند (RFC8422، RFC8446 و RFC8447). حتماً دستکم «x25519» و «prime256v1» (نام OpenSSL برای «secp256r1» یا همان «P-256») را بگنجانید. فهرست پیشفرض برای بیشتر کاربران مناسب است.
در سمت کلاینت، اولین منحنی فهرستشده برای ساخت «اشتراک کلید» (keyshare) اولیه TLS 1.3 کلاینت استفاده خواهد شد. اگر این منحنی توسط سرور پشتیبانی نشود، دستتکانی TLS ممکن است پس از ارسال HelloRetryRequest (HRR) از سوی سرور مبنی بر مشخص کردن منحنی مناسب و متقابلاً پشتیبانیشده، به یک رفتوبرگشت اضافی نیاز داشته باشد.
سامانه Postfix نام منحنیهایی را که برای OpenSSL ناشناخته هستند، یا شناختهشده اما هنوز پیادهسازی نشدهاند، نادیده میگیرد. این امکان، «پیشبینی» پشتیبانی از منحنیهایی را که باید به محض در دسترس قرار گرفتن استفاده شوند، یا اعمال تنظیمات یکسان روی یک «مزرعه» سرور که در آن همه سرورها از منحنیهای یکسانی پشتیبانی نمیکنند، ممکن میسازد.
از Postfix 3.10 به بعد، در صورت کامپایل شدن با OpenSSL 3.0 یا بالاتر، نامهای «منحنی» میتوانند سازوکارهای عمومیتر کپسولهسازی کلید (KEM) باشند، و/یا ممکن است از یک «ارائهدهنده» (provider) خارجی (از طریق یک tls_config_file مناسب) بارگیری شوند.
همچنین پارامتر «tls_ffdhe_auto_groups» را ببینید که از سفارشیسازی فهرست گروههای FFDHE فعال در TLS 1.3 پشتیبانی میکند. این تنظیم در Postfix 3.8 معرفی شده است، زمانی که در برابر OpenSSL 3.0 یا بالاتر ساخته شده باشد.
پشتیبانی از رمزنگاری پساکوانتومی: OpenSSL 3.5 نحو پیکربندی جدیدی معرفی میکند که Postfix برای شبیهسازی آن تلاشی نخواهد کرد. با این حال، هنگامی که در برابر OpenSSL 3.5 یا بالاتر کامپایل شود، تنظیم پیشفرض Postfix تغییر جزئی در تنظیمات پیشفرض درونساخت OpenSSL است؛ این تنظیم صرفاً تولید اشتراک کلید پساکوانتومی ترکیبی X25519MLKEM768 را تا زمانی که صریحاً توسط سرور درخواست شود به تعویق میاندازد. این کار از بروز مشکلات سازگاری با برخی از سرورهای SMTP که قادر به پردازش پیام بزرگ Client Hello حاصل در TLS نیستند جلوگیری میکند.
اگر علیرغم پیشفرضهای اکیداً توصیهشده، به کنترل دقیقتری روی گروههای پشتیبانیشده نیاز دارید، در Postfix 3.6.17، 3.7.13، 3.8.8، 3.9.2 و بالاتر، هر دو پارامتر tls_eecdh_auto_curves و در صورت وجود tls_ffdhe_auto_groups را برابر با مقدار خالی قرار دهید تا انتخاب الگوریتم از طریق پیکربندی OpenSSL فعال شود. برای مشاهده یک نمونه پیکربندی به tls_config_file مراجعه کنید.
این ویژگی در Postfix 3.2 و بالاتر، هنگامی که با OpenSSL 1.0.2 یا بالاتر روی پلتفرمهایی که در آنها الگوریتمهای EC توسط توزیعکننده غیرفعال نشدهاند کامپایل و پیوند داده شده باشد در دسترس است.
tls_eecdh_strong_curve (default: prime256v1)
منحنی بیضوی مورداستفاده توسط سرور SMTP در Postfix برای تبادل کلید ECDH زودگذر با قدرت معقول. این منحنی زمانی توسط سرور SMTP در Postfix استفاده میشود که "smtpd_tls_eecdh_grade = strong" باشد. عبارت «قدرت معقول» به معنای امنیت تقریبی ۱۲۸ بیتی بر اساس بهترین حملات شناختهشده است. منحنی انتخابشده باید توسط OpenSSL پیادهسازی شده باشد (همانطور که توسط ecparam(1) با گزینه «-list_curves» گزارش میشود) و یکی از منحنیهای فهرستشده در بخش 5.1.1 از RFC 8422 باشد. بهطور کلی نباید این تنظیم را تغییر دهید. پیادهسازیهای کلاینت SMTP راه دور باید از این منحنی پشتیبانی کنند تا تبادل کلید EECDH صورت پذیرد. انتخاب منحنیهای صرفاً «نوظهور» که تنها توسط زیرمجموعه کوچکی از کلاینتها پشتیبانی میشوند کار عاقلانهای نیست.
این ویژگی از Postfix 3.6 به بعد استفاده نمیشود. مقداردهی نکنید.
منحنی پیشفرض «strong» در مجموعه NSA Suite B برای اطلاعات طبقهبندیشده تا سطح SECRET رتبهبندی شده است.
نکته: نامگذاری منحنیهای بیضوی استانداردسازی ضعیفی دارد؛ گروههای استاندارد مختلف نامهای متفاوتی را به همان منحنیهای زیربنایی اختصاص میدهند. منحنی با نام X9.62 معادل «prime256v1» تحت نام SECG معادل «secp256r1» نیز شناخته میشود، اما OpenSSL نام اخیر را به رسمیت نمیشناسد.
اگر میخواهید بیشترین بهره را از رمزهایی ببرید که رازداری پیشرو (forward secrecy) ارائه میدهند، بخش Getting started از سند FORWARD_SECRECY_README را ببینید. سند کامل تمامی اطلاعات مربوط به پشتیبانی Postfix از رازداری پیشرو «کامل» را بهطور یکپارچه در یک جا ارائه میدهد: رازداری پیشرو چیست، چگونه تنظیمات را بهینهسازی کنید، و زمانی که Postfix از رمزهای دارای رازداری پیشرو استفاده میکند چه انتظاری باید داشته باشید.
این ویژگی در Postfix 2.6 و بالاتر، هنگامی که با OpenSSL 1.0.0 یا بالاتر روی پلتفرمهایی که در آنها الگوریتمهای EC توسط توزیعکننده غیرفعال نشدهاند کامپایل و پیوند داده شده باشد در دسترس است.
tls_eecdh_ultra_curve (default: secp384r1)
منحنی بیضوی مورداستفاده توسط سرور SMTP در Postfix برای تبادل کلید ECDH زودگذر با حداکثر قدرت. این منحنی زمانی توسط سرور SMTP در Postfix استفاده میشود که "smtpd_tls_eecdh_grade = ultra" باشد. عبارت «حداکثر قدرت» به معنای امنیت تقریبی ۱۹۲ بیتی بر اساس بهترین حملات شناختهشده است. این استحکام بیشتر با هزینه پردازشی قابلتوجهی همراه است؛ بیشتر کاربران باید در عوض "smtpd_tls_eecdh_grade = strong" را تنظیم کنند. منحنی انتخابشده باید توسط OpenSSL پیادهسازی شده باشد (همانطور که توسط ecparam(1) با گزینه «-list_curves» گزارش میشود) و یکی از منحنیهای فهرستشده در بخش 5.1.1 از RFC 8422 باشد. بهطور کلی نباید این تنظیم را تغییر دهید. پیادهسازیهای کلاینت SMTP راه دور باید از این منحنی پشتیبانی کنند تا تبادل کلید EECDH صورت پذیرد. انتخاب منحنیهای صرفاً «نوظهور» که تنها توسط زیرمجموعه کوچکی از کلاینتها پشتیبانی میشوند کار عاقلانهای نیست.
این ویژگی از Postfix 3.6 به بعد استفاده نمیشود. مقداردهی نکنید.
این منحنی پیشفرض «ultra» در مجموعه NSA Suite B برای اطلاعات طبقهبندیشده تا سطح TOP SECRET رتبهبندی شده است.
اگر میخواهید بیشترین بهره را از رمزهایی ببرید که رازداری پیشرو ارائه میدهند، بخش Getting started از سند FORWARD_SECRECY_README را ببینید. سند کامل تمامی اطلاعات مربوط به پشتیبانی Postfix از رازداری پیشرو «کامل» را بهطور یکپارچه در یک جا ارائه میدهد: رازداری پیشرو چیست، چگونه تنظیمات را بهینهسازی کنید، و زمانی که Postfix از رمزهای دارای رازداری پیشرو استفاده میکند چه انتظاری باید داشته باشید.
این ویژگی در Postfix 2.6 و بالاتر، هنگامی که با OpenSSL 1.0.0 یا بالاتر روی پلتفرمهایی که در آنها الگوریتمهای EC توسط توزیعکننده غیرفعال نشدهاند کامپایل و پیوند داده شده باشد در دسترس است.
tls_export_cipherlist (default: see postconf -d output)
فهرست رمزنگاری (cipherlist) در OpenSSL برای رمزهای درجه «export» یا بالاتر. از Postfix 3.8 به بعد نادیده گرفته میشود. در نگارشهای پیشین Postfix، این پارامتر معنای تنظیم «export» را در smtpd_tls_ciphers، smtpd_tls_mandatory_ciphers، smtp_tls_ciphers، smtp_tls_mandatory_ciphers، lmtp_tls_ciphers و lmtp_tls_mandatory_ciphers مشخص میکرد. اکیداً توصیه میشود این تنظیم را تغییر ندهید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
tls_fast_shutdown_enable (default: yes)
راهکاری برای پیادهسازیهایی که هنگام بستن نشست TLS موجب معلق ماندن Postfix تا زمان اتمام مهلت زمانی (timeout) میشوند. با فعال بودن این گزینه، Postfix منتظر پاسخ همتای راه دور TLS به اعلان «close» در TLS نخواهد ماند. این رفتار برای TLSv1.0 و بالاتر توصیه میشود.
tls_ffdhe_auto_groups (default: see postconf -d output)
فهرست اولویتبندیشده گروههای تبادل کلید دیفی-هلمن زودگذر میدان متناهی (FFDHE) پشتیبانیشده توسط کلاینت و سرور SMTP در Postfix. نسخه OpenSSL 3.0 پشتیبانی از توافق کلید FFDHE را در TLS 1.3 اضافه میکند. در OpenSSL 1.1.1، توافق کلید TLS 1.3 تنها مبتنی بر منحنی بیضوی پشتیبانی میشد. پارامتر «tls_ffdhe_auto_groups» امکان پیکربندی فهرست گروههای FFDHE را فراهم میکند که کلاینت یا سرور Postfix در OpenSSL 3.0 و بالاتر فعال خواهند کرد. این پارامتر در صورتی که Postfix در برابر نسخههای قدیمیتر OpenSSL ساخته شده باشد هیچ تأثیری ندارد.
فهرست پیشفرض گروههای FFDHE که Postfix در OpenSSL 3.0 و بالاتر فعال میکند تنها شامل گروههای ۲۰۴۸ و ۳۰۷۲ بیتی است. گروههای FFDHE قویتر عملکرد ضعیفی دارند و گروههای EC برای همان سطح امنیت انتخاب بسیار بهتری هستند. Postfix نام گروههایی را که برای OpenSSL ناشناخته هستند، یا شناختهشده اما هنوز پیادهسازی نشدهاند نادیده میگیرد. گروههای FFDHE اساساً یک پشتیبان هستند، برای زمانی که یک همتا از تبادل کلید EC پشتیبانی نمیکند، یا تبادل کلید EC به دلایل اضطراری باید غیرفعال شود.
تنظیم این پارامتر به مقدار خالی، پشتیبانی FFDHE را در TLS 1.3 غیرفعال میکند، مگر اینکه گروههای FFDHE در تنظیم «tls_eecdh_auto_curves» گنجانده شده باشند؛ شاید بهطور غیرمستقیم، همانند کلیدواژه «DEFAULT» موجود در OpenSSL 3.5 یا بالاتر. در آن صورت، افزودن پیشوند «-» به هر نام گروه، تأثیر حذف آن از فهرست را خواهد داشت. فعال بودن توافق کلید FFDHE در TLS 1.2 و قبل از آن بستگی به این دارد که آیا هیچیک از رمزهای «kDHE» در فهرست رمزنگاری (cipherlist) گنجانده شدهاند یا خیر.
برعکس، خالی گذاشتن «tls_eecdh_auto_curves» توافق کلید EC در TLS 1.3 را در OpenSSL 3.0 و بالاتر غیرفعال میکند. اگر هر دو خالی تنظیم شوند، Postfix مطابق آنچه در مستندات «tls_eecdh_auto_curves» شرح داده شده، به اولویتهای OpenSSL رجوع خواهد کرد.
فهرست پیشفرض شامل «ffdhe2048» و «ffdhe3072» است. اگرچه در بیشتر موارد نباید نیازی باشد، اما اگر با سرور نامتعارفی مواجه شدید که از ECDHE پشتیبانی نمیکند و بر پارامترهای DHE بسیار قویتر از حد معقول اصرار دارد، میتوانید «ffdhe4096» را به فهرست اضافه کنید.
این ویژگی در Postfix 3.8 و بالاتر، هنگامی که با OpenSSL 3.0 یا بالاتر کامپایل و پیوند داده شده باشد در دسترس است.
tls_high_cipherlist (default: see postconf -d output)
فهرست رمزنگاری (cipherlist) در OpenSSL برای رمزهای درجه «high». این پارامتر معنای تنظیم «high» را در smtpd_tls_ciphers، smtpd_tls_mandatory_ciphers، smtp_tls_ciphers، smtp_tls_mandatory_ciphers، lmtp_tls_ciphers و lmtp_tls_mandatory_ciphers مشخص میکند. اکیداً توصیه میشود این تنظیم را تغییر ندهید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
tls_legacy_public_key_fingerprints (default: no)
ابزار کمکی مهاجرت موقت برای پایگاههایی که از اثرانگشتهای کلید عمومی گواهی همراه با Postfix 2.9.0..2.9.5 استفاده میکنند، که الگوریتم نادرستی به کار میبردند. این پارامتر هیچ تأثیری بر پشتیبانی از اثرانگشت گواهی که از Postfix 2.2 در دسترس بوده است ندارد.
تا زمان مهاجرت از فایلهای پیکربندی دارای اثرانگشتهای نادرست کلید عمومی گواهی در Postfix 2.9.0..2.9.5 به اثرانگشتهای صحیح مورداستفاده در Postfix 2.9.6 و بالاتر، بهطور موقت مقدار "tls_legacy_public_key_fingerprints = yes" را تعیین کنید. برای محاسبه اثرانگشتهای صحیح کلید عمومی گواهی، سند TLS_README را ببینید.
این ویژگی در Postfix 2.9.6 تا 3.10 در دسترس است. این پارامتر از Postfix 3.9.0 به بعد هیچ اثری نداشته و از Postfix 3.11.0 حذف شده است.
tls_low_cipherlist (default: see postconf -d output)
فهرست رمزنگاری (cipherlist) در OpenSSL برای رمزهای درجه «low» یا بالاتر. از Postfix 3.8 به بعد نادیده گرفته میشود. در نگارشهای پیشین Postfix، این پارامتر معنای تنظیم «low» را در smtpd_tls_ciphers، smtpd_tls_mandatory_ciphers، smtp_tls_ciphers، smtp_tls_mandatory_ciphers، lmtp_tls_ciphers و lmtp_tls_mandatory_ciphers مشخص میکرد. اکیداً توصیه میشود این تنظیم را تغییر ندهید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
tls_medium_cipherlist (default: see postconf -d output)
فهرست رمزنگاری (cipherlist) در OpenSSL برای رمزهای درجه «medium» یا بالاتر. این پارامتر معنای تنظیم «medium» را در smtpd_tls_ciphers، smtpd_tls_mandatory_ciphers، smtp_tls_ciphers، smtp_tls_mandatory_ciphers، lmtp_tls_ciphers و lmtp_tls_mandatory_ciphers مشخص میکند. این فهرست رمزنگاری پیشفرض برای رمزنگاری اجباری TLS در کلاینت TLS است (با غیرفعال بودن رمزهای ناشناس هنگام اعتبارسنجی گواهیهای سرور). این فهرست رمز پیشفرض برای TLS فرصتطلبانه (opportunistic TLS) در نگارشهای Postfix پس از اواسط سال ۲۰۱۵ است. اکیداً توصیه میشود این تنظیم را تغییر ندهید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
tls_null_cipherlist (default: eNULL:!aNULL)
فهرست رمزنگاری (cipherlist) در OpenSSL برای رمزهای درجه «NULL» که احراز هویت بدون رمزنگاری را ارائه میدهند. این پارامتر معنای تنظیم «null» را در smtpd_tls_mandatory_ciphers، smtp_tls_mandatory_ciphers و lmtp_tls_mandatory_ciphers مشخص میکند. اکیداً توصیه میشود این تنظیم را تغییر ندهید.
این ویژگی در Postfix 2.3 و بالاتر در دسترس است.
tls_preempt_cipherlist (default: no)
در SSLv3 و بالاتر، استفاده از ترتیب اولویت رمزهای سرور SMTP در Postfix به جای ترتیب اولویت رمزهای کلاینت راه دور.
بهطور پیشفرض، سرور OpenSSL پرطرفدارترین رمز کلاینت را که سرور نیز از آن پشتیبانی میکند انتخاب میکند. با SSLv3 و جدیدتر، سرور میتواند مطلوبترین رمز خود را که توسط کلاینت نیز پشتیبانی (ارائه) میشود انتخاب کند. تنظیم "tls_preempt_cipherlist = yes" اولویتهای الگوریتم رمز سرور را فعال میکند.
اگرچه انتخاب رمز توسط سرور ممکن است در برخی موارد به انتخابی امنتر یا با کارایی بالاتر منجر شود، اما خطراتی در زمینه سازگاری متقابل به همراه دارد. در گذشته، برخی کلاینتهای SSL رمزهای با اولویت پایینتر را فهرست میکردند که به درستی پیادهسازی نکرده بودند. اگر سرور رمزی را انتخاب کند که کلاینت ترجیح کمتری برای آن قائل است، ممکن است رمزی را برگزیند که پیادهسازی آن در کلاینت دچار نقص است. بهویژه سرورهای Microsoft Exchange در Windows 2003 پیادهسازیهای معیوبی از DES-CBC3-SHA داشتهاند، رمزی که OpenSSL آن را قویتر از RC4-SHA در نظر میگیرد. فعالسازی انتخاب مجموعهرمز توسط سرور ممکن است مشکلات سازگاری متقابل با کلاینتهای Microsoft Exchange در Windows 2003 ایجاد کند.
این ویژگی در Postfix 2.8 و بالاتر، در ترکیب با OpenSSL 0.9.7 و بالاتر در دسترس است.
tls_random_bytes (default: 32)
تعداد بایتهایی که tlsmgr(8) هنگام بذردهی (مجدد) استخر تولیدکننده اعداد شبهتصادفی (PRNG) درون حافظه از $tls_random_source میخواند. مقدار پیشفرض ۳۲ بایت (۲۵۶ بیت) برای کلیدهای متقارن ۱۲۸ بیتی به اندازه کافی مناسب است. در صورت استفاده از EGD یا یک فایل دستگاه، حداکثر ۲۵۵ بایت خوانده میشود.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
tls_random_exchange_name (default: see postconf -d output)
نام فایل وضعیت تولیدکننده اعداد شبهتصادفی (PRNG) که توسط tlsmgr(8) نگهداری میشود. این فایل در صورت عدم وجود ایجاد میشود و اندازه آن روی ۱۰۲۴ بایت ثابت است.
از نگارش 2.5 به بعد، Postfix دیگر هنگام باز کردن این فایل از دسترسیهای کاربر ارشد (root) استفاده نمیکند، و مکان پیشفرض فایل از ${config_directory}/prng_exch به ${data_directory}/prng_exch تغییر یافته است. به عنوان ابزار کمکی برای مهاجرت، تلاش برای باز کردن فایل در پوشهای غیر از پوشههای Postfix به پوشه data_directory متعلق به Postfix هدایت میشود و یک پیام هشدار در لاگ ثبت میگردد.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
tls_random_prng_update_period (default: 3600s)
فاصله زمانی میان تلاشهای tlsmgr(8) برای ذخیره وضعیت تولیدکننده اعداد شبهتصادفی (PRNG) در فایل مشخصشده توسط $tls_random_exchange_name.
یک مقدار زمانی غیرصفر (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند) تعیین کنید. واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
tls_random_reseed_period (default: 3600s)
حداکثر زمان میان تلاشهای tlsmgr(8) برای بذردهی مجدد استخر حافظهای تولیدکننده اعداد شبهتصادفی (PRNG) از منابع خارجی. زمان واقعی میان تلاشهای بذردهی مجدد با استفاده از PRNG محاسبه میشود و بین ۰ و زمان مشخصشده است.
یک مقدار زمانی غیرصفر (یک مقدار صحیح به همراه پسوند تکحرفی اختیاری که واحد زمان را مشخص میکند) تعیین کنید. واحدهای زمان: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
tls_random_source (default: see postconf -d output)
منبع آنتروپی خارجی برای استخر حافظهای تولیدکننده اعداد شبهتصادفی (PRNG) در tlsmgr(8). دقت کنید که حتماً یک منبع غیرمسدودکننده (non-blocking) مشخص نمایید. اگر این منبع یک فایل معمولی نیست، نوع منبع آنتروپی باید به عنوان پیشوند آورده شود: egd:/path/to/egd_socket برای منبعی با رابط سوکت سازگار با EGD، یا dev:/path/to/device برای یک فایل دستگاه.
نکته: در سیستمهای OpenBSD هنگامی که dev:/dev/urandom خطای مهلت زمانی (timeout) میدهد، dev:/dev/arandom را مشخص کنید.
این ویژگی در Postfix 2.2 و بالاتر در دسترس است.
tls_required_enable (default: yes)
فعالسازی پشتیبانی از سرآیند پیام «TLS-Required: no»، تعریفشده در RFC 8689. فرستنده با افزودن این سرآیند به یک پیام، درخواست عدم اعمال سیاست TLS را مطرح میکند. این کار جستجوی سیاست TLS را غیرفعال کرده و سطح امنیت TLS کلاینت SMTP در Postfix را به «may» محدود میسازد؛ بدین معنا که گواهیهای سرور SMTP دوردست را اعتبارسنجی نمیکند و در صورت در دسترس نبودن TLS، به متن ساده (plaintext) بازمیگردد. اگر پیامی حاوی سرآیند «TLS-Required: no» باشد، Postfix آن سرآیند را به اعلان وضعیت تحویل برای آن پیام نیز اضافه خواهد کرد.
نکته: گزینه ESMTP REQUIRETLS بر سرآیند پیام «TLS-Required: no» اولویت دارد و آن را باطل میکند.
این قابلیت در Postfix نسخه 3.10 و بالاتر در دسترس است.
tls_server_sni_maps (default: empty)
جدولهای جستجوی اختیاری که نامهای دریافتشده از کلاینتهای SMTP دوردست از طریق افزونه TLS Server Name Indication (SNI) را به کلیدها و زنجیرههای گواهی مناسب نگاشت میکنند. این پارامتر در کتابخانه TLS در Postfix پیادهسازی شده و هم بر روی smtpd(8) و هم بر حالت سرور SMTP مربوط به tlsproxy(8) اعمال میشود.
هنگامی که این پارامتر خالی نباشد، سرور SMTP در Postfix پردازش افزونه SNI را فعال کرده و مقادیر SNI نامعتبر یا مقادیری را که با هیچ مدخلی در جدولهای مشخصشده تطابق ندارند، ثبت (log) میکند. در صورت تطابق یک مدخل، نام SNI به عنوان بخشی از خلاصه اتصال در سطوح لاگ ۱ و بالاتر ثبت میگردد.
کلید جستجو یا دقیقاً همان نام دامنه SNI است یا یک دامنه والد که یک نقطه در ابتدای آن قرار گرفته است. برای دامنههای بینالمللیشده، کلید جستجو باید در قالب A-label استاندارد IDNA 2008 باشد (همانطور که در افزونه TLS SNI الزامی است).
نحو مقدار جستجو همانند پارامتر smtp_tls_chain_files است (برای جزئیات بیشتر به آن رجوع کنید)، اما در اینجا تنها محدود به اتصالات TLS است که در آن کلاینت یک نام دامنه منطبق با SNI را ارسال کند.
مثال:
/etc/postfix/main.cf:
#
# The indexed SNI table must be created with "postmap -F"
#
indexed = ${default_database_type}:${config_directory}/
tls_server_sni_maps = ${indexed}sni
/etc/postfix/sni:
#
# The example.com domain has both an RSA and ECDSA certificate
# chain. The chain files MUST start with the private key,
# with the certificate chain next, starting with the leaf
# (server) certificate, and then the issuer certificates.
#
example.com /etc/postfix/sni-chains/rsa2048.example.com.pem,
/etc/postfix/sni-chains/ecdsa-p256.example.com.pem
#
# The example.net domain has a wildcard certificate, and two
# additional DNS names. So its certificate chain is also used
# with any subdomain, plus the additional names.
#
example.net /etc/postfix/sni-chains/example.net.pem
.example.net /etc/postfix/sni-chains/example.net.pem
example.info /etc/postfix/sni-chains/example.net.pem
example.org /etc/postfix/sni-chains/example.net.pem
توجه داشته باشید که جدولهای جستجوی SNI باید مدخلهایی برای دامنههای متناظر با گواهی(های) پیشفرض سرور SMTP در Postfix نیز داشته باشند. این امر تضمین میکند که افزونه TLS SNI کلاینت SMTP دوردست هنگام مشخص کردن یکی از دامنههای پیشفرض سرور SMTP در Postfix، پاسخی مثبت دریافت کند، و اطمینان میدهد که سرور SMTP در Postfix برای چنین دامنهای عدم تطابق نام SNI را ثبت نکند. در این حالت گواهیهای پیشفرض سرور SMTP در Postfix تنها زمانی استفاده میشوند که کلاینت هیچ SNI ارسال نکند یا اینکه SNI با دامنهای ارسال کند که سرور هیچ گواهیای برای آن نمیشناسد.
نگاشت از یک نام دامنه SNI به یک زنجیره گواهی به صورت غیرمستقیم است. در فایلهای منبع ورودی برای جدولهای «cdb»، «hash»، «btree» یا سایر جدولهایی که از طریق postmap(1) به فایلهای نمایهسازیشده روی دیسک تبدیل میشوند، مقدار مشخصشده برای هر کلید، فهرستی از نامهای فایل است. هنگامی که postmap(1) با گزینه -F استفاده میشود، جدول تولید شده برای هر کلید جستجو، محتویات کدگذاریشده با base64 فایلهای مرتبط را ذخیره میکند. هنگام پرسوجوی جدولها از طریق postmap -Fq، مقدار جدول از base64 رمزگشایی شده و محتوای اصلی فایل به همراه یک خط جدید حاصل میشود.
در جدولهای «regexp»، «pcre»، «inline»، «texthash»، «static» و موارد مشابه که در زمان اجرا تفسیر میشوند و فرمت منبع مجزایی ندارند، مقدار جدول مجدداً فهرستی از فایلها است که هنگام باز شدن جدول در حافظه بارگذاری میشوند.
در جدولهایی که محتوای آنها خارج از Postfix مدیریت میشود، مانند LDAP، MySQL، PostgreSQL، socketmap و tcp، مقدار باید الحاقی از کلیدهای PEM و زنجیرههای گواهی مورد نظر باشد که سپس به یک رشته تکخطی base64 تبدیل شده است. ایجاد چنین جدولهایی و ذخیرهسازی امن آنها (زیرا مقدار شامل اطلاعات کلید خصوصی است) خارج از مسئولیت Postfix است.
در «socketmap» و «tcp» دادهها به صورت متن آشکار منتقل میشوند و هیچ کنترل دسترسی روی پرسوجوها وجود ندارد، بنابراین این موارد عموماً برای ذخیره زنجیرههای SNI نامناسب هستند. در مورد LDAP و SQL، باید دسترسی خواندن را محدود کرده و برای محافظت از دادههای حساس در حال انتقال از TLS استفاده کنید.
به طور معمول تنها یک کلید خصوصی و زنجیره گواهیهای آن وجود دارد که با گواهی «برگ» (leaf) متناظر با آن کلید شروع شده و با گواهیهای صادرکننده میانی CA مناسب ادامه مییابد، که ترجیحاً پس از هر گواهی صادرکننده آن قرار میگیرد. سرورهایی که برای بیش از یک الگوریتم کلید و گواهی دارند (مثلاً هم کلید RSA و هم کلید ECDSA، یا حتی RSA، ECDSA و Ed25519) میتوانند از چندین زنجیره به هم متصل استفاده کنند، مشروط بر اینکه کلید همواره پیش از گواهیهای مربوطه درج شود.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tls_session_ticket_cipher (default: Postfix >= 3.0: aes-256-cbc, Postfix < 3.0: aes-128-cbc)
الگوریتم مورد استفاده برای رمزنگاری بلیتهای نشست TLS بر اساس RFC5077. این الگوریتم باید از حالت CBC استفاده کند، اندازه بلوک ۱۲۸ بیتی داشته باشد و طول کلید آن بین ۱۲۸ تا ۲۵۶ بیت باشد. مقدار پیشفرض aes-256-cbc است. تغییر دادن مقدار پیشفرض به منظور انتخاب یک الگوریتم دیگر توصیه نمیشود.
خالی تنظیم کردن این پارامتر، پشتیبانی از بلیت نشست را در سرور SMTP در Postfix غیرفعال میکند. روش دیگر برای غیرفعال کردن پشتیبانی از بلیت نشست، استفاده از پارامتر tls_ssl_options است.
این قابلیت در Postfix نسخه 3.0 و بالاتر در دسترس است.
tls_ssl_options (default: empty)
فهرست یا ماسک بیتی از گزینههای OpenSSL جهت فعالسازی.
مجموعه ابزار OpenSSL مجموعهای از گزینهها را ارائه میدهد که برنامهها میتوانند برای تنظیم رفتار OpenSSL فعال کنند. برخی از این گزینهها اشکالات (باگها) را در پیادهسازیهای دیگر دور میزنند و به طور پیشفرض فعال هستند. میتوانید از پارامتر tls_disable_workarounds برای غیرفعال کردن انتخابی برخی یا تمام این راهحلهای دورزدن باگ استفاده کنید و بدین ترتیب با هزینه عدم سازگاری با کلاینتها یا سرورهای SSL دارای باگ، OpenSSL را سختگیرتر سازید.
گزینههای دیگر به طور پیشفرض خاموش هستند و معمولاً به جای دورزدن باگها، قابلیتهایی را فعال یا غیرفعال میکنند. این گزینهها را میتوان (با احتیاط) از طریق پارامتر tls_ssl_options روشن کرد. مقدار آن فهرستی جداشده با فاصله یا کاما از نام گزینههای انتخابی از فهرست زیر است. نامها به بزرگی و کوچکی حروف حساس نیستند، در صورت تمایل میتوانید از حروف کوچک استفاده کنید. مقادیر با حروف بزرگ زیر با نام ماکروی متناظر در فایل سرآیند ssl.h پس از حذف پیشوند SSL_OP_ مطابقت دارند. این احتمال وجود دارد که نسخه OpenSSL شما شامل گزینههای جدیدی باشد که پس از آخرین بهروزرسانی کد منبع Postfix اضافه شدهاند؛ در این حالت تنها میتوانید یکی از آنها را از طریق ساختار هگزادسیمال زیر فعال کنید.
شما تنها زمانی باید قابلیتها را از طریق ماسک هگزادسیمال فعال کنید که نیاز به کنترل آن قابلیت حیاتی باشد (برای مقابله با یک آسیبپذیری جدید یا یک مشکل جدی در سازگاری). Postfix سازگاری پسرو را در رابطه با بیتهای ماسک تضمین نمیکند. قابلیتی که در یک نسخه از طریق ماسک فعال شده است، ممکن است در نسخهای بعدی از راههای دیگری فعال شود، و بیت ماسک پس از آن نادیده گرفته خواهد شد. بنابراین، استفاده از ماسک هگزادسیمال صرفاً یک اقدام موقت است تا زمانی که نسخه جدیدی از Postfix یا OpenSSL راهحل بهتری ارائه دهد.
اگر مقدار پارامتر یک عدد صحیح بزرگ هگزادسیمال باشد که با «0x» شروع میشود، گزینههای متناظر با بیتهای مشخصشده در مقدار آن فعال میشوند (به openssl/ssl.h و SSL_CTX_set_options(3) مراجعه کنید). شما فقط میتوانید گزینههایی را فعال کنید که پیشتر توسط سایر تنظیمات Postfix کنترل نشده باشند. به عنوان مثال، نمیتوانید پروتکلها را غیرفعال کنید یا اولویت سایفر سرور را فعال سازید. تلاش نکنید با تعیین 0xFFFFFFFF تمام قابلیتها را فعال کنید، بعید است این کار ایده خوبی باشد. برخی از راهحلهای دورزدن باگ نیز در اینجا معتبر هستند و در صورتی که دیگر به طور پیشفرض فعال نباشند، امکان فعالسازی مجدد آنها را فراهم میکنند. مقادیر پشتیبانیشده عبارتند از:
- ENABLE_MIDDLEBOX_COMPAT
- در Postfix >= 3.4. به
SSL_CTX_set_options(3)
مراجعه
کنید.
- LEGACY_SERVER_CONNECT
- به SSL_CTX_set_options(3)
مراجعه
کنید.
- NO_TICKET
- در Postfix >= 2.7 با
تمامی
وصلهها در
صورت نیاز
به طور
پیشفرض
فعال است.
برای Postfix >= 2.11
اصلاً
نیازی به آن
نیست، مگر
اینکه به
دلایلی
نخواهید از
ازسرگیری
نشست TLS (TLS session resumption)
پشتیبانی
کنید. بهتر
است به صورت
صریح تنظیم
نشود. به
SSL_CTX_set_options(3)
مراجعه
کنید.
- NO_COMPRESSION
- غیرفعالسازی
فشردهسازی
SSL حتی در
صورتی که
توسط
کتابخانه OpenSSL
پشتیبانی
شود.
فشردهسازی
نیازمند
توان
پردازشی
بالا است و
فشردهسازی
پیش از
رمزنگاری
همیشه
امنیت را
بهبود
نمیبخشد.
- NO_RENEGOTIATION
- در Postfix >= 3.4. این
گزینه
میتواند
فرصتها را
برای حمله
احتمالی
مصرف توان
پردازنده (CPU
exhaustion) کاهش دهد.
به SSL_CTX_set_options(3)
مراجعه
کنید.
- NO_SESSION_RESUMPTION_ON_RENEGOTIATION
- در Postfix >= 3.4. به
SSL_CTX_set_options(3)
مراجعه
کنید.
- PRIORITIZE_CHACHA
- در Postfix >= 3.4. به
SSL_CTX_set_options(3)
مراجعه
کنید.
این قابلیت در Postfix نسخه 2.11 و بالاتر در دسترس است.
tls_wildcard_matches_multiple_labels (default: yes)
تطابق چند برچسب DNS با «*» در گواهیهای عام (wildcard).
برخی از ارائهدهندگان خدمات ایمیل، نام دامنه مشتری را به ابتدای یک دامنه پایه که برای آن گواهی عمومی TLS دارند اضافه میکنند. به عنوان مثال، رکوردهای MX برای example.com که توسط example.net میزبانی میشود ممکن است به این صورت باشند:
example.com. IN MX 0 example.com.mx1.example.net. example.com. IN MX 0 example.com.mx2.example.net.
و گواهی TLS ممکن است برای «*.example.net» باشد. در این صورت «*» با چندین برچسب در نام دامنه سرور ایمیل تطابق پیدا میکند. اگرچه کاراکترهای عام چندبرچسبی به طور گسترده پشتیبانی نمیشوند و توسط هیچ استانداردی تأیید نشدهاند، اما ممانعت از استفاده آنها در این زمینه فایده چندانی ندارد.
نکات:
- در نام گواهی، «*» تنها زمانی خاص تلقی میشود که به عنوان اولین برچسب به کار رود.
- در حالی که Postfix (نسخه 2.11 یا بالاتر) میتواند «*» را با چندین برچسب نام دامنه تطبیق دهد، سایر پیادهسازیها احتمالاً چنین نخواهند کرد.
- پیادهسازیهای
قدیمیتر Postfix
به گونهای
عمل
میکنند که
گویی مقدار
«tls_wildcard_matches_multiple_labels = no»
است.
این قابلیت در Postfix نسخه 2.11 و بالاتر در دسترس است.
tlsmgr_service_name (default: tlsmgr)
نام مدخل سرویس tlsmgr(8) در master.cf. این سرویس حافظههای پنهان نشست TLS و سایر اطلاعات مربوط به پشتیبانی از TLS را نگهداری میکند.
این قابلیت در Postfix نسخه 2.11 و بالاتر در دسترس است.
tlsproxy_client_CAfile (default: $smtp_tls_CAfile)
فایلی شامل گواهیهای CA مربوط به CAهای ریشه معتمد برای امضای گواهیهای سرور TLS دوردست یا گواهیهای CA میانی. برای جزئیات بیشتر به smtp_tls_CAfile مراجعه کنید.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_CApath (default: $smtp_tls_CApath)
دایرکتوری حاوی گواهیهای مرجع صدور گواهی (CA) در قالب PEM که کلاینت tlsproxy(8) در Postfix برای اعتبارسنجی گواهی سرور TLS دوردست از آن استفاده میکند. برای جزئیات بیشتر به smtp_tls_CApath مراجعه کنید.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_cert_file (default: $smtp_tls_cert_file)
فایل حاوی گواهی RSA کلاینت tlsproxy(8) در Postfix در قالب PEM. برای جزئیات بیشتر به smtp_tls_cert_file مراجعه کنید. روش ارجح برای پیکربندی کلیدها و گواهیهای کلاینت tlsproxy استفاده از پارامتر «tlsproxy_client_chain_files» است.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_chain_files (default: $smtp_tls_chain_files)
فایلهای حاوی کلیدها و زنجیرههای گواهی کلاینت tlsproxy(8) در Postfix در قالب PEM. برای جزئیات بیشتر به smtp_tls_chain_files مراجعه کنید.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_dcert_file (default: $smtp_tls_dcert_file)
فایل حاوی گواهی DSA کلاینت tlsproxy(8) در Postfix در قالب PEM. برای جزئیات بیشتر به smtp_tls_dcert_file مراجعه کنید. DSA منسوخ شده است و نباید استفاده شود.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_dkey_file (default: $smtp_tls_dkey_file)
فایل حاوی کلید خصوصی DSA کلاینت tlsproxy(8) در Postfix در قالب PEM. برای جزئیات بیشتر به smtp_tls_dkey_file مراجعه کنید. DSA منسوخ شده است و نباید استفاده شود.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_eccert_file (default: $smtp_tls_eccert_file)
فایل حاوی گواهی ECDSA کلاینت tlsproxy(8) در Postfix در قالب PEM. برای جزئیات بیشتر به smtp_tls_eccert_file مراجعه کنید. روش ارجح برای پیکربندی کلیدها و گواهیهای کلاینت tlsproxy استفاده از پارامتر «tlsproxy_client_chain_files» است.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_eckey_file (default: $smtp_tls_eckey_file)
فایل حاوی کلید خصوصی ECDSA کلاینت tlsproxy(8) در Postfix در قالب PEM. برای جزئیات بیشتر به smtp_tls_eckey_file مراجعه کنید. روش ارجح برای پیکربندی کلیدها و گواهیهای کلاینت tlsproxy استفاده از پارامتر «tlsproxy_client_chain_files» است.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_enforce_tls (default: $smtp_enforce_tls)
حالت اجبار: الزام سرورهای SMTP به استفاده از رمزنگاری TLS. برای جزئیات بیشتر به smtp_enforce_tls مراجعه کنید. به جای این، از tlsproxy_client_security_level استفاده کنید.
این قابلیت از Postfix 3.9 منسوخ شده است. به جای آن tlsproxy_client_security_level را مشخص کنید.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_fingerprint_digest (default: $smtp_tls_fingerprint_digest)
الگوریتم خلاصه پیام مورد استفاده برای ساخت اثر انگشتهای گواهی سرور TLS دوردست. برای جزئیات بیشتر به smtp_tls_fingerprint_digest مراجعه کنید.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_key_file (default: $smtp_tls_key_file)
فایل حاوی کلید خصوصی RSA کلاینت tlsproxy(8) در Postfix در قالب PEM. برای جزئیات بیشتر به smtp_tls_key_file مراجعه کنید. روش ارجح برای پیکربندی کلیدها و گواهیهای کلاینت tlsproxy استفاده از پارامتر «tlsproxy_client_chain_files» است.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_level (default: $smtp_tls_security_level)
سطح امنیت پیشفرض TLS برای کلاینت tlsproxy(8) در Postfix. برای جزئیات بیشتر به smtp_tls_security_level مراجعه کنید.
این قابلیت در Postfix نسخههای 3.4 تا 3.6 در دسترس است. این پارامتر در Postfix نسخه 3.7 به tlsproxy_client_security_level تغییر نام یافت.
tlsproxy_client_loglevel (default: $smtp_tls_loglevel)
فعالسازی ثبت گزارشهای بیشتر از فعالیت TLS کلاینت tlsproxy(8) در Postfix. برای جزئیات بیشتر به smtp_tls_loglevel مراجعه کنید.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_loglevel_parameter (default: smtp_tls_loglevel)
نام پارامتری که مقدار tlsproxy_client_loglevel را تأمین میکند.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_per_site (default: $smtp_tls_per_site)
جدولهای جستجوی اختیاری حاوی سیاست استفاده از TLS کلاینت tlsproxy(8) در Postfix بر اساس مقصد هاپ بعدی و نام میزبان سرور TLS دوردست. برای جزئیات بیشتر به smtp_tls_per_site مراجعه کنید.
این قابلیت از Postfix 3.9 منسوخ شده است. به جای آن tlsproxy_client_policy_maps را مشخص کنید.
این قابلیت در Postfix نسخه 3.4 و بالاتر در دسترس است.
tlsproxy_client_policy (default: $smtp_tls_policy_maps)
جدولهای جستجوی اختیاری حاوی خطمشی امنیتی TLS کلاینت tlsproxy(8) پستفیکس بر پایه مقصد گام بعدی (next-hop). برای جزئیات بیشتر smtp_tls_policy_maps را ببینید.
این ویژگی در Postfix نسخه 3.4 تا 3.6 موجود است. در Postfix نسخه 3.7 به tlsproxy_client_policy_maps تغییر نام یافت.
tlsproxy_client_policy_maps (default: $smtp_tls_policy_maps)
جدولهای جستجوی اختیاری حاوی خطمشی امنیتی TLS کلاینت tlsproxy(8) پستفیکس بر پایه مقصد گام بعدی (next-hop). برای جزئیات بیشتر smtp_tls_policy_maps را ببینید.
این ویژگی در Postfix نسخه 3.7 و بالاتر موجود است. پیشتر tlsproxy_client_policy نامیده میشد.
tlsproxy_client_scert_verifydepth (default: $smtp_tls_scert_verifydepth)
عمق اعتبارسنجی برای گواهیهای سرور TLS راه دور. برای جزئیات بیشتر smtp_tls_scert_verifydepth را ببینید.
این ویژگی در Postfix نسخه 3.4 و بالاتر موجود است.
tlsproxy_client_security_level (default: $smtp_tls_security_level)
سطح امنیتی TLS پیشفرض برای کلاینت tlsproxy(8) پستفیکس. برای جزئیات بیشتر smtp_tls_security_level را ببینید.
این ویژگی در Postfix نسخه 3.7 و بالاتر موجود است. پیشتر tlsproxy_client_level نامیده میشد.
tlsproxy_client_use_tls (default: $smtp_use_tls)
حالت فرصتطلبانه: استفاده از TLS هنگام اعلان پشتیبانی TLS توسط سرور راه دور. برای جزئیات بیشتر smtp_use_tls را ببینید. به جای آن از tlsproxy_client_security_level استفاده کنید.
این ویژگی از Postfix نسخه 3.9 منسوخ شده است. به جای آن tlsproxy_client_security_level را تعیین کنید.
این ویژگی در Postfix نسخه 3.4 و بالاتر موجود است.
tlsproxy_enforce_tls (default: $smtpd_enforce_tls)
TLS اجباری: اعلان پشتیبانی STARTTLS به کلاینتهای SMTP راه دور و الزام کلاینتها به استفاده از رمزنگاری TLS. برای جزئیات بیشتر smtpd_enforce_tls را ببینید. به جای آن از tlsproxy_tls_security_level استفاده کنید.
این ویژگی از Postfix نسخه 3.9 منسوخ شده است. به جای آن tlsproxy_tls_security_level را تعیین کنید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_service_name (default: tlsproxy)
نام مدخل سرویس tlsproxy(8) در master.cf. این سرویس تبدیل متن خام <=> متن رمزشده TLS را انجام میدهد.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_CAfile (default: $smtpd_tls_CAfile)
فایلی شامل گواهیهای CA (با قالب PEM) از مرجعهای صدور گواهی ریشه مورد اعتماد برای امضای گواهیهای کلاینت SMTP راه دور یا گواهیهای CA میانی. برای جزئیات بیشتر smtpd_tls_CAfile را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_CApath (default: $smtpd_tls_CApath)
دایرکتوری حاوی گواهیهای CA (با قالب PEM) از مرجعهای ریشه مورد اعتماد برای امضای گواهیهای کلاینت SMTP راه دور یا گواهیهای CA میانی. برای جزئیات بیشتر smtpd_tls_CApath را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_always_issue_session_ids (default: $smtpd_tls_always_issue_session_ids)
مجبور کردن سرور tlsproxy(8) پستفیکس به صدور شناسه نشست TLS، حتی هنگامی که حافظه پنهان نشست TLS خاموش است. برای جزئیات بیشتر smtpd_tls_always_issue_session_ids را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_ask_ccert (default: $smtpd_tls_ask_ccert)
درخواست گواهی کلاینت از کلاینت SMTP راه دور. برای جزئیات بیشتر smtpd_tls_ask_ccert را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_ccert_verifydepth (default: $smtpd_tls_ccert_verifydepth)
عمق اعتبارسنجی برای گواهیهای کلاینت SMTP راه دور. در صورتی که CA صادرکننده در فایل CA محلی فهرست شده باشد، عمق 1 کافی است. برای جزئیات بیشتر smtpd_tls_ccert_verifydepth را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_cert_file (default: $smtpd_tls_cert_file)
فایل حاوی گواهی RSA سرور tlsproxy(8) پستفیکس در قالب PEM. این فایل میتواند حاوی کلید خصوصی RSA سرور tlsproxy(8) پستفیکس نیز باشد. برای جزئیات بیشتر smtpd_tls_cert_file را ببینید. در Postfix نسخه 3.4 و بالاتر روش ترجیحی برای پیکربندی کلیدها و گواهیهای سرور tlsproxy از طریق پارامتر "tlsproxy_tls_chain_files" است.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_chain_files (default: $smtpd_tls_chain_files)
فایلهای حاوی کلیدها و زنجیرههای گواهی سرور tlsproxy(8) پستفیکس در قالب PEM. برای جزئیات بیشتر smtpd_tls_chain_files را ببینید.
این ویژگی در Postfix نسخه 3.4 و بالاتر موجود است.
tlsproxy_tls_ciphers (default: $smtpd_tls_ciphers)
حداقل درجه رمزنگاری TLS که سرور tlsproxy(8) پستفیکس با رمزنگاری فرصتطلبانه TLS استفاده خواهد کرد. برای جزئیات بیشتر smtpd_tls_ciphers را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_dcert_file (default: $smtpd_tls_dcert_file)
فایل حاوی گواهی DSA سرور tlsproxy(8) پستفیکس در قالب PEM. این فایل همچنین میتواند حاوی کلید خصوصی DSA سرور tlsproxy(8) باشد. الگوریتم DSA منسوخ شده و نباید استفاده شود. برای جزئیات بیشتر smtpd_tls_dcert_file را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_dh1024_param_file (default: $smtpd_tls_dh1024_param_file)
فایل حاوی پارامترهای DH که سرور tlsproxy(8) پستفیکس باید با رمزهای غیرصادراتی EDH استفاده کند. برای جزئیات بیشتر smtpd_tls_dh1024_param_file را ببینید.
این ویژگی از Postfix نسخه 3.9 منسوخ شده است. مقداردهی نکنید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_dh512_param_file (default: $smtpd_tls_dh512_param_file)
فایل حاوی پارامترهای DH که سرور tlsproxy(8) پستفیکس باید با رمزهای EDH در سطح صادراتی استفاده کند. برای جزئیات بیشتر smtpd_tls_dh512_param_file را ببینید. درجه رمز پیشفرض سرور SMTP در نسخههای Postfix پس از اواسط 2015 برابر "medium" است؛ در نتیجه رمزهای درجه صادراتی بهطور پیشفرض استفاده نمیشوند.
در Postfix >= 3.6 تبادل کلید Diffie-Hellman درجه صادراتی دیگر پشتیبانی نمیشود و این پارامتر نادیده گرفته میشود.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_dkey_file (default: $smtpd_tls_dkey_file)
فایل حاوی کلید خصوصی DSA سرور tlsproxy(8) پستفیکس در قالب PEM. این فایل میتواند با فایل گواهی DSA سرور tlsproxy(8) مشخصشده توسط $smtpd_tls_dcert_file ترکیب شود. الگوریتم DSA منسوخ است و نباید استفاده شود. برای جزئیات بیشتر smtpd_tls_dkey_file را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_eccert_file (default: $smtpd_tls_eccert_file)
فایل حاوی گواهی ECDSA سرور tlsproxy(8) پستفیکس در قالب PEM. این فایل همچنین میتواند حاوی کلید خصوصی ECDSA سرور tlsproxy(8) باشد. برای جزئیات بیشتر smtpd_tls_eccert_file را ببینید. در Postfix >= 3.4 روش ترجیحی پیکربندی کلیدها و گواهیهای سرور tlsproxy از طریق پارامتر "tlsproxy_tls_chain_files" است.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_eckey_file (default: $smtpd_tls_eckey_file)
فایل حاوی کلید خصوصی ECDSA سرور tlsproxy(8) پستفیکس در قالب PEM. این فایل میتواند با فایل گواهی ECDSA سرور tlsproxy(8) مشخصشده توسط $smtpd_tls_eccert_file ادغام شود. برای جزئیات بیشتر smtpd_tls_eckey_file را ببینید. در Postfix >= 3.4 روش ترجیحی پیکربندی کلیدها و گواهیهای سرور tlsproxy از طریق پارامتر "tlsproxy_tls_chain_files" است.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_eecdh_grade (default: $smtpd_tls_eecdh_grade)
درجه امنیتی سرور tlsproxy(8) پستفیکس برای تبادل کلید خم بیضوی زودگذر دیفی-هلمن (EECDH). برای جزئیات بیشتر smtpd_tls_eecdh_grade را ببینید.
این ویژگی از Postfix نسخه 3.6 استفاده نمیشود. مقداردهی نکنید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_enable_rpk (default: $smtpd_tls_enable_rpk)
درخواست ارسال کلید عمومی خام RFC7250 به جای گواهی X.509 از کلاینتهای SMTP راه دور، هنگام درخواست یا الزام احراز هویت کلاینت. برای جزئیات $smtpd_tls_enable_rpk را ببینید.
این ویژگی در Postfix نسخه 3.9 و بالاتر موجود است.
tlsproxy_tls_exclude_ciphers (default: $smtpd_tls_exclude_ciphers)
فهرست رمزها یا انواع رمزی که باید از فهرست رمزهای سرور tlsproxy(8) در تمام سطوح امنیتی TLS مستثنی شوند. برای جزئیات بیشتر smtpd_tls_exclude_ciphers را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_fingerprint_digest (default: $smtpd_tls_fingerprint_digest)
الگوریتم خلاصه پیام برای ساخت اثرانگشت گواهی کلاینت SMTP راه دور. برای جزئیات بیشتر smtpd_tls_fingerprint_digest را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_key_file (default: $smtpd_tls_key_file)
فایل حاوی کلید خصوصی RSA سرور tlsproxy(8) پستفیکس در قالب PEM. این فایل میتواند با فایل گواهی RSA سرور tlsproxy(8) مشخصشده توسط $smtpd_tls_cert_file ترکیب شود. برای جزئیات بیشتر smtpd_tls_key_file را ببینید. در Postfix >= 3.4 روش ترجیحی پیکربندی کلیدها و گواهیهای سرور tlsproxy از طریق پارامتر "tlsproxy_tls_chain_files" است.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_loglevel (default: $smtpd_tls_loglevel)
فعالسازی ثبت وقایع اضافی سرور tlsproxy(8) پستفیکس از فعالیتهای TLS. هر سطح ثبت گزارش شامل اطلاعات ثبتشده در سطوح پایینتر نیز هست. برای جزئیات بیشتر smtpd_tls_loglevel را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_mandatory_ciphers (default: $smtpd_tls_mandatory_ciphers)
حداقل درجه رمز TLS که سرور tlsproxy(8) پستفیکس با رمزنگاری TLS اجباری استفاده خواهد کرد. برای جزئیات بیشتر smtpd_tls_mandatory_ciphers را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_mandatory_exclude_ciphers (default: $smtpd_tls_mandatory_exclude_ciphers)
فهرست اضافی رمزها یا انواع رمز برای حذف از فهرست رمزهای سرور tlsproxy(8) در سطوح امنیتی TLS اجباری. برای جزئیات بیشتر smtpd_tls_mandatory_exclude_ciphers را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_mandatory_protocols (default: $smtpd_tls_mandatory_protocols)
پروتکلهای SSL/TLS پذیرفتهشده توسط سرور tlsproxy(8) پستفیکس در رمزنگاری TLS اجباری. در صورت خالی بودن فهرست، سرور از تمامی نسخههای پروتکل SSL/TLS موجود پشتیبانی میکند. برای جزئیات بیشتر smtpd_tls_mandatory_protocols را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_protocols (default: $smtpd_tls_protocols)
فهرست پروتکلهای TLS که سرور tlsproxy(8) پستفیکس در رمزنگاری فرصتطلبانه TLS مستثنی یا شامل میکند. برای جزئیات بیشتر smtpd_tls_protocols را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_req_ccert (default: $smtpd_tls_req_ccert)
در رمزنگاری TLS اجباری، الزام ارائه گواهی معتبر کلاینت SMTP راه دور برای مجاز شدن اتصالهای TLS. برای جزئیات بیشتر smtpd_tls_req_ccert را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_security_level (default: $smtpd_tls_security_level)
سطح امنیتی TLS برای SMTP در سرور tlsproxy(8) پستفیکس؛ هنگام تعیین مقدار غیرخالی، بر پارامترهای منسوخ smtpd_use_tls و smtpd_enforce_tls تقدم مییابد. برای جزئیات بیشتر smtpd_tls_security_level را ببینید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_tls_session_cache_timeout (default: $smtpd_tls_session_cache_timeout)
زمان انقضای منسوخشده اطلاعات حافظه پنهان نشست TLS سرور tlsproxy(8) پستفیکس. از آنجا که حافظه پنهان با smtpd(8) مشترک بوده و توسط tlsmgr(8) مدیریت میشود، تنها یک زمان انقضا برای حافظه پنهان سرور SMTP مشترک میان هر سه سرویس وجود دارد، یعنی smtpd_tls_session_cache_timeout.
این ویژگی در Postfix نسخه 2.8 تا 2.10 موجود است.
tlsproxy_use_tls (default: $smtpd_use_tls)
TLS فرصتطلبانه: اعلان پشتیبانی STARTTLS به کلاینتهای SMTP راه دور، بدون الزام کلاینتها به استفاده از رمزنگاری TLS. برای جزئیات بیشتر smtpd_use_tls را ببینید. به جای آن از tlsproxy_tls_security_level استفاده کنید.
این ویژگی از Postfix نسخه 3.9 منسوخ شده است. به جای آن tlsproxy_tls_security_level را تعیین کنید.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
tlsproxy_watchdog_timeout (default: 10s)
حداکثر زمان مجاز پردازش ورودی/خروجی محلی یا راه دور توسط فرایند tlsproxy(8) پیش از خاتمه توسط تایمر نگهبان (watchdog) توکار. این سازوکار ایمنی مانع قفل شدن tlsproxy(8) بر اثر باگ در خود Postfix یا در نرمافزار سیستم میشود. جهت پیشگیری از هشدارهای کاذب و خرابی حافظه پنهان، این حد کمتر از 10s تنظیمپذیر نیست.
یک مقدار زمانی غیرصفر تعیین کنید (مقدار عدد صحیح به همراه پسوند تکحرفی اختیاری مشخصکننده واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
این ویژگی در Postfix نسخه 2.8 و بالاتر موجود است.
trace_service_name (default: trace)
نام سرویس ردگیری (trace). این سرویس توسط دیمن bounce(8) پیادهسازی شده، سابقه تحویل نامهها را نگهداری کرده و هنگام درخواست تحویل مشروح با "sendmail -v" گزارش تحویل نامه تولید میکند.
این ویژگی در Postfix نسخه 2.1 و بالاتر موجود است.
transport_delivery_slot_cost (default: $default_delivery_slot_cost)
بازنویسی ویژه ترابری برای مقدار پارامتر default_delivery_slot_cost، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: پارامترهای transport_delivery_slot_cost پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت بر تمام پارامترهایی اعمال میشود که نامشان ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این حالت: "_delivery_slot_cost").
transport_delivery_slot_discount (default: $default_delivery_slot_discount)
بازنویسی ویژه ترابری برای مقدار پارامتر default_delivery_slot_discount، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: پارامترهای transport_delivery_slot_discount پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت بر تمام پارامترهایی اعمال میشود که نامشان ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این حالت: "_delivery_slot_discount").
transport_delivery_slot_loan (default: $default_delivery_slot_loan)
بازنویسی ویژه ترابری برای مقدار پارامتر default_delivery_slot_loan، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: پارامترهای transport_delivery_slot_loan پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت بر تمام پارامترهایی اعمال میشود که نامشان ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این حالت: "_delivery_slot_loan").
transport_destination_concurrency_failed_cohort_limit (default: $default_destination_concurrency_failed_cohort_limit)
بازنویسی ویژه ترابری برای مقدار پارامتر default_destination_concurrency_failed_cohort_limit، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: برخی پارامترهای transport_destination_concurrency_failed_cohort_limit پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت بر تمام پارامترهایی اعمال میشود که نامشان ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این حالت: "_destination_concurrency_failed_cohort_limit").
این ویژگی در Postfix نسخه 2.5 و بالاتر موجود است.
transport_destination_concurrency_limit (default: $default_destination_concurrency_limit)
بازنویسی ویژه ترابری برای مقدار پارامتر default_destination_concurrency_limit، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: برخی پارامترهای transport_destination_concurrency_limit پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت بر تمام پارامترهایی اعمال میشود که نامشان ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این حالت: "_destination_concurrency_limit").
transport_destination_concurrency_negative_feedback (default: $default_destination_concurrency_negative_feedback)
بازنویسی ویژه ترابری برای مقدار پارامتر default_destination_concurrency_negative_feedback، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: برخی پارامترهای transport_destination_concurrency_negative_feedback پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت بر تمام پارامترهایی اعمال میشود که نامشان ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این حالت: "_destination_concurrency_negative_feedback").
این ویژگی در Postfix نسخه 2.5 و بالاتر موجود است.
transport_destination_concurrency_positive_feedback (default: $default_destination_concurrency_positive_feedback)
بازنویسی ویژه ترابری برای مقدار پارامتر default_destination_concurrency_positive_feedback، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: برخی پارامترهای transport_destination_concurrency_positive_feedback پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت بر تمام پارامترهایی اعمال میشود که نامشان ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این حالت: "_destination_concurrency_positive_feedback").
این ویژگی در Postfix نسخه 2.5 و بالاتر موجود است.
transport_destination_rate_delay (default: $default_destination_rate_delay)
بازنویسی ویژه ترابری برای مقدار پارامتر default_destination_rate_delay، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: برخی پارامترهای transport_destination_rate_delay پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت بر تمام پارامترهایی اعمال میشود که نامشان ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این حالت: "_destination_rate_delay").
این ویژگی در Postfix نسخه 2.5 و بالاتر موجود است.
transport_destination_recipient_limit (default: $default_destination_recipient_limit)
یک بازنویسی اختصاصی ترابری برای مقدار پارامتر default_destination_recipient_limit، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: برخی از پارامترهای transport_destination_recipient_limit پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت برای بسیاری از پارامترهایی اعمال میشود که نام آنها ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این مورد: "_destination_recipient_limit").
transport_extra_recipient_limit (default: $default_extra_recipient_limit)
یک بازنویسی اختصاصی ترابری برای مقدار پارامتر default_extra_recipient_limit، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: پارامترهای transport_extra_recipient_limit پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نخواهند شد. این محدودیت برای بسیاری از پارامترهایی اعمال میشود که نام آنها ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این مورد: "_extra_recipient_limit").
transport_initial_destination_concurrency (default: $initial_destination_concurrency)
یک بازنویسی اختصاصی ترابری برای مقدار پارامتر initial_destination_concurrency، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: برخی پارامترهای transport_initial_destination_concurrency پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نخواهند شد. این محدودیت برای بسیاری از پارامترهایی اعمال میشود که نام آنها ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این مورد: "_initial_destination_concurrency").
این قابلیت در Postfix نسخه 2.5 و بالاتر در دسترس است.
transport_maps (default: empty)
جدولهای جستجوی اختیاری حاوی نگاشتهایی از آدرس گیرنده به (ترابری تحویل پیام، مقصد گام بعدی/next-hop). برای جزئیات نحو به transport(5) مراجعه کنید.
این اطلاعات ممکن است ترابری تحویل پیام و/یا مقصد گام بعدی مشخصشده با $local_transport، $virtual_transport، $relay_transport، $default_transport، $sender_dependent_relayhost_maps، $relayhost، $sender_dependent_default_transport_maps یا دامنه گیرنده را بازنویسی کند.
صفر یا چند جدول جستجوی "type:table" را که با فاصله خالی یا کاما جدا شدهاند مشخص کنید. جدولها به ترتیب مشخصشده تا زمان یافتن تطابق جستجو میشوند.
تطبیق الگوی نامهای دامنه با وجود یا عدم وجود "transport_maps" در مقدار پارامتر parent_domain_matches_subdomains کنترل میشود.
به دلایل امنیتی، از Postfix نسخه 2.3 به بعد، این قابلیت اجازه جایگزینیهای $number را در جدولهای عبارت باقاعده نمیدهد.
مثالها:
transport_maps = lmdb:/etc/postfix/transport
به جای lmdb:، برخی سیستمها از cdb:، hash: یا dbm: استفاده میکنند.
پس از تغییر فایل transport، دستور "postmap /etc/postfix/transport" را اجرا کنید تا فایل ایندکسشده از نوع پیشفرض (مجدداً) ساخته شود. برای تعیین صریح نوع، دستور "postmap type:/etc/postfix/transport" را اجرا کنید.
نوع پیشفرض فایل ایندکسشده با پارامتر default_database_type پیکربندی میشود. برای فهرست کردن انواع صریح موجود، دستور "postconf -m" را اجرا کنید.
تغییرات پیکربندی پس از حدود یک دقیقه اعمال خواهند شد. برای رفع این تاخیر از "postfix reload" استفاده کنید.
transport_minimum_delivery_slots (default: $default_minimum_delivery_slots)
یک بازنویسی اختصاصی ترابری برای مقدار پارامتر default_minimum_delivery_slots، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: پارامترهای transport_minimum_delivery_slots پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت برای بسیاری از پارامترهایی اعمال میشود که نام آنها ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این مورد: "_minimum_delivery_slots").
transport_recipient_limit (default: $default_recipient_limit)
یک بازنویسی اختصاصی ترابری برای مقدار پارامتر default_recipient_limit، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: برخی پارامترهای transport_recipient_limit پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت برای بسیاری از پارامترهایی اعمال میشود که نام آنها ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این مورد: "_recipient_limit").
transport_recipient_refill_delay (default: $default_recipient_refill_delay)
یک بازنویسی اختصاصی ترابری برای مقدار پارامتر default_recipient_refill_delay، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: پارامترهای transport_recipient_refill_delay پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نخواهند شد. این محدودیت برای بسیاری از پارامترهایی اعمال میشود که نام آنها ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این مورد: "_recipient_refill_delay").
این قابلیت در Postfix نسخه 2.4 و بالاتر در دسترس است.
transport_recipient_refill_limit (default: $default_recipient_refill_limit)
یک بازنویسی اختصاصی ترابری برای مقدار پارامتر default_recipient_refill_limit، که در آن transport نام ترابری تحویل پیام در master.cf است.
نکته: پارامترهای transport_recipient_refill_limit پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نخواهند شد. این محدودیت برای بسیاری از پارامترهایی اعمال میشود که نام آنها ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این مورد: "_recipient_refill_limit").
این قابلیت در Postfix نسخه 2.4 و بالاتر در دسترس است.
transport_retry_time (default: 60s)
مدت زمان بین تلاشهای مدیر صف Postfix جهت برقراری ارتباط با یک ترابری تحویل پیام معیوب.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
transport_time_limit (default: $command_time_limit)
یک بازنویسی اختصاصی ترابری برای مقدار پارامتر command_time_limit، که در آن transport نام ترابری تحویل پیام در master.cf است.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
نکته: پارامترهای transport_time_limit پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت برای بسیاری از پارامترهایی اعمال میشود که نام آنها ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این مورد: "_time_limit").
transport_transport_rate_delay (default: $default_transport_rate_delay)
یک بازنویسی اختصاصی ترابری برای مقدار پارامتر default_transport_rate_delay، که در آن transport ابتدایی در نام پارامتر، نام ترابری تحویل پیام در master.cf است.
یک مقدار زمانی غیرمنفی مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
نکته: پارامترهای transport_transport_rate_delay پیش از Postfix نسخه 2.9 در خروجی دستور "postconf" نمایش داده نمیشوند. این محدودیت برای بسیاری از پارامترهایی اعمال میشود که نام آنها ترکیبی از نام سرویس master.cf و یک پسوند توکار است (در این مورد: "_transport_rate_delay").
trigger_timeout (default: 10s)
محدودیت زمانی ارسال یک محرک (trigger) به دیمن Postfix (برای مثال دیمن pickup(8) یا qmgr(8)). این محدودیت مانع از توقف و قفل شدن برنامهها هنگام بار سنگین سیستم ایمیل میشود.
یک مقدار زمانی غیر صفر مشخص کنید (یک مقدار عددی صحیح به همراه یک پسوند تکحرفی اختیاری برای تعیین واحد زمان). واحدهای زمانی: s (ثانیه)، m (دقیقه)، h (ساعت)، d (روز)، w (هفته). واحد زمانی پیشفرض s (ثانیه) است.
undisclosed_recipients_header (default: see postconf -d output)
سرآیند پیامی که کارگزار cleanup(8) پُستفیکس در صورت عدم وجود سرآیندهای To: یا Cc: در پیام درج میکند. در Postfix نسخه 2.8 و بالاتر، مقدار پیشفرض خالی است. در Postfix نسخههای 2.4-2.7، برای غیرفعال کردن این ویژگی مقدار خالی تعیین کنید.
مثال:
# Default value before Postfix 2.8. # Note: the ":" and ";" are both required. undisclosed_recipients_header = To: undisclosed-recipients:;
unknown_address_reject_code (default: 450)
کد پاسخ عددی سرور SMTP پُستفیکس هنگام رد نشانی فرستنده یا گیرنده به دلیل ناشناخته بودن دامنه آن. این مقدار یکی از پاسخهای ممکن ناشی از محدودیتهای reject_unknown_sender_domain و reject_unknown_recipient_domain است.
این مقدار را تغییر ندهید مگر با داشتن درک کامل از RFC 5321.
unknown_address_tempfail_action (default: $reject_tempfail_action)
اقدام کارگزار SMTP پُستفیکس در زمان شکست reject_unknown_sender_domain یا reject_unknown_recipient_domain بر اثر شرایط خطای موقت. جهت به تعویق انداختن فوری درخواست کلاینت SMTP دوردست، "defer" را مشخص کنید. با اقدام پیشفرض "defer_if_permit"، کارگزار SMTP به بررسی فرصتها برای رد ایمیل ادامه داده و درخواست کلاینت را تنها در صورتی که در حالت عادی پذیرفته میشد، به تعویق میاندازد.
این قابلیت در Postfix نسخه 2.6 و بالاتر در دسترس است.
unknown_client_reject_code (default: 450)
کد پاسخ عددی کارگزار SMTP پُستفیکس هنگامی که کلاینت بدون نگاشت معتبر address <=> name توسط محدودیت reject_unknown_client_hostname رد میشود. در صورت شکست نگاشت بر اثر شرایط خطای موقت، کارگزار SMTP همواره با 450 پاسخ میدهد.
این مقدار را تغییر ندهید مگر با داشتن درک کامل از RFC 5321.
unknown_helo_hostname_tempfail_action (default: $reject_tempfail_action)
اقدام کارگزار SMTP پُستفیکس در زمان شکست reject_unknown_helo_hostname بر اثر شرایط خطای موقت. برای به تعویق انداختن فوری درخواست کلاینت SMTP دوردست، مقدار "defer" را تعیین کنید. با اقدام پیشفرض "defer_if_permit"، کارگزار SMTP به بررسی فرصتها جهت رد ایمیل ادامه میدهد و کلاینت را تنها در حالتی به تعویق میاندازد که ایمیل در غیر این صورت تایید میشد.
این قابلیت در Postfix نسخه 2.6 و بالاتر در دسترس است.
unknown_hostname_reject_code (default: 450)
کد پاسخ عددی سرور SMTP پُستفیکس در زمان رد شدن نام میزبان تعیینشده توسط دستور HELO یا EHLO بر اثر محدودیت reject_unknown_helo_hostname.
این مقدار را تغییر ندهید مگر با داشتن درک کامل از RFC 5321.
unknown_local_recipient_reject_code (default: 550)
کد پاسخ عددی کارگزار SMTP پُستفیکس هنگامی که نشانی گیرنده محلی است و فهرست جدولهای جستجوی $local_recipient_maps تطابقی با گیرنده ندارد. نشانی گیرنده در صورتی محلی است که دامنهاش با $mydestination، $proxy_interfaces یا $inet_interfaces همخوانی داشته باشد.
تنظیم پیشفرض 550 (رد ایمیل) است؛ اما در آغاز استفاده از 450 (تلاش مجدد در آینده) امنتر است تا از درستی تنظیمات local_recipient_maps اطمینان حاصل شود.
مثال:
unknown_local_recipient_reject_code = 450
این قابلیت در Postfix نسخه 2.0 و بالاتر در دسترس است.
unknown_relay_recipient_reject_code (default: 550)
کد پاسخ عددی کارگزار SMTP پُستفیکس هنگامی که نشانی گیرنده با $relay_domains همخوانی دارد، اما فهرست جدولهای جستجوی relay_recipient_maps تطابقی با نشانی گیرنده پیدا نمیکند.
این قابلیت در Postfix نسخه 2.0 و بالاتر در دسترس است.
unknown_virtual_alias_reject_code (default: 550)
کد پاسخ کارگزار SMTP پُستفیکس هنگامی که نشانی گیرنده با $virtual_alias_domains مطابقت داشته باشد، اما فهرست جدولهای جستجوی $virtual_alias_maps تطابقی با نشانی گیرنده پیدا نکند.
این قابلیت در Postfix نسخه 2.0 و بالاتر در دسترس است.
unknown_virtual_mailbox_reject_code (default: 550)
کد پاسخ کارگزار SMTP پُستفیکس هنگامی که نشانی گیرنده با $virtual_mailbox_domains مطابقت دارد، اما جدولهای جستجوی $virtual_mailbox_maps شامل نشانی گیرنده نیستند.
این قابلیت در Postfix نسخه 2.0 و بالاتر در دسترس است.
unverified_recipient_defer_code (default: 450)
پاسخ عددی کارگزار SMTP پُستفیکس هنگامی که ارزیابی (probe) نشانی گیرنده به دلیل شرایط خطای موقت با شکست مواجه میشود.
برخلاف دیگر بخشهای Postfix، میتوان مقدار 250 را جهت پذیرش نشانی در هر شرایطی تعیین کرد.
این مقدار را تغییر ندهید مگر با داشتن درک کامل از RFC 5321.
این قابلیت در Postfix نسخه 2.6 و بالاتر در دسترس است.
unverified_recipient_reject_code (default: 450)
پاسخ عددی کارگزار SMTP پُستفیکس هنگامی که یک نشانی گیرنده بر اثر محدودیت reject_unverified_recipient رد میشود.
برخلاف دیگر بخشهای Postfix، میتوان مقدار 250 را جهت پذیرش نشانی در هر شرایطی تعیین نمود.
این مقدار را تغییر ندهید مگر با داشتن درک کامل از RFC 5321.
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است.
unverified_recipient_reject_reason (default: empty)
پاسخ کارگزار SMTP پُستفیکس در زمان رد ایمیل توسط reject_unverified_recipient. از درج کد عددی پاسخ SMTP یا کد وضعیت پیشرفته خودداری کنید. به صورت پیشفرض، پاسخ دربرگیرنده جزئیات واقعی اعتبارسنجی نشانی است.
مثال:
unverified_recipient_reject_reason = Recipient address lookup failed
این قابلیت در Postfix نسخه 2.6 و بالاتر در دسترس است.
unverified_recipient_tempfail_action (default: $reject_tempfail_action)
اقدام کارگزار SMTP پُستفیکس در زمان شکست reject_unverified_recipient به دلیل خطای موقت. تعیین "defer" باعث تعویق فوری درخواست کلاینت SMTP دوردست میشود. در صورت انتخاب "defer_if_permit"، کارگزار SMTP به بررسی شرایط جهت رد ایمیل ادامه داده و تنها زمانی درخواست را به تعویق میاندازد که در غیر این صورت پذیرفته میشد.
این قابلیت در Postfix نسخه 2.6 و بالاتر در دسترس است.
unverified_sender_defer_code (default: 450)
کد عددی پاسخ سرور SMTP پُستفیکس هنگامی که بررسی آزمایشی نشانی فرستنده به دلیل خطای موقت متوقف میشود.
برخلاف سایر بخشهای Postfix، میتوان 250 را برای پذیرش قطعی نشانی تنظیم کرد.
این مقدار را تغییر ندهید مگر با داشتن درک کامل از RFC 5321.
این قابلیت در Postfix نسخه 2.6 و بالاتر در دسترس است.
unverified_sender_reject_code (default: 450)
کد عددی پاسخ کارگزار SMTP پُستفیکس هنگامی که یک نشانی گیرنده با محدودیت reject_unverified_sender رد میشود.
برخلاف سایر بخشهای Postfix، امکان تعیین 250 جهت پذیرش نشانی در هر حالتی وجود دارد.
این مقدار را تغییر ندهید مگر با داشتن درک کامل از RFC 5321.
این قابلیت در Postfix نسخه 2.1 و بالاتر در دسترس است.
unverified_sender_reject_reason (default: empty)
پاسخ سرور SMTP پُستفیکس در زمان رد ایمیل توسط reject_unverified_sender. کد عددی پاسخ SMTP یا کد وضعیت بهبودیافته را لحاظ نکنید. به طور پیشفرض پاسخ شامل جزئیات واقعی تایید نشانی است.
مثال:
unverified_sender_reject_reason = Sender address lookup failed
این قابلیت در Postfix نسخه 2.6 و بالاتر در دسترس است.
unverified_sender_tempfail_action (default: $reject_tempfail_action)
اقدام سرور SMTP پُستفیکس هنگام شکست عملکرد reject_unverified_sender به دلیل وضعیت خطای موقت. مقدار "defer" را برای تعویق فوری درخواست کلاینت SMTP راه دور وارد کنید. با عملکرد پیشفرض "defer_if_permit"، سرور همچنان به دنبال موقعیتهای دیگر برای رد ایمیل میگردد و تنها در حالتی درخواست را معلق میکند که در غیر این صورت تایید میشد.
این قابلیت در Postfix نسخه 2.6 و بالاتر در دسترس است.
use_srv_lookup (default: empty)
شناسایی سرویس(های) مشخصشده را با رکوردهای DNS SRV فعال میکند. برای نمونه، با تنظیمات "use_srv_lookup = submission" و "relayhost = example.com:submission"، کلاینت SMTP پُستفیکس رکوردهای DNS SRV را برای _submission._tcp.example.com جستجو کرده و پیامها را از طریق میزبانها و درگاههای تعریفشده در آن رکوردها انتقال (relay) میدهد. برای جزئیات روند انتخاب هاست RFC 2782 را ببینید.
صفر یا چند نام سرویس جدا شده با کاما یا فاصله خالی را وارد کنید. هر نامی از پایگاه داده services(5) قابل استفاده است؛ اگرچه در عمل تنها مقادیر submission یا submissions (نام پیشین: smtp) منطقی هستند.
هنگام فعال بودن جستجوی رکوردهای SRV از طریق use_srv_lookup، میتوان با قرار دادن نام دامنه میان "[]"، برنامه را ملزم به جستجوی مستقیم IP به جای SRV کرد.
مثال ۱: ارسال از MUA به MTA با استفاده از جستجوی رکورد SRV برای سرویس "submission" در دامنه "example.com". این ساختار از عامل تحویل پیشفرض SMTP همراه STARTTLS بهره میبرد و رکوردهای SRV مربوط به "_submission._tcp.example.com" را جستجو میکند.
/etc/postfix/main.cf:
use_srv_lookup = submission
relayhost = example.com:submission
smtp_tls_security_level = may
...see SASL_README for sasl configuration...
مثال ۲: ارسال از MUA به MTA با بررسی رکورد SRV برای سرویس "submissions" در دامنه "example.org". این روش از عامل تحویل اختصاصی SMTP به نام smtp-wraptls در وضعیت فعال بودن tls_wrappermode بهره برده و رکوردهای SRV برای "_submissions._tcp.example.org" را دریافت میکند.
نکته: در صورتی که ارائهدهنده از رکوردهای DNS SRV قدیمی نظیر "_smtps._tcp.example.org" به جای "_submissions._tcp.example.org" استفاده میکند، عبارت "smtps" را وارد نمایید.
/etc/postfix/main.cf:
use_srv_lookup = submissions
default_transport = smtp-wraptls:example.org:submissions
...see SASL_README for sasl configuration...
/etc/postfix/master.cf:
smtp-wraptls unix ... ... ... ... ... smtp
-o { smtp_tls_wrappermode = yes }
-o { smtp_tls_security_level = encrypt }
مثال ۳: انتخاب بر اساس فرستنده برای مجموعهای از سرویسهای ثبت پیام MUA به MTA. این مورد مثالهای ۱ و ۲ را با روشهای غیرفعال کردن SRV و دریافت رکورد IP برای "smtp-relay.example.net" و "smtp-relay.other.example" ادغام میکند. چنانچه ارائهدهندهای از نام قدیمی "_smtps._tcp.example.org" استفاده میکند، به جای "submissions" عبارت "smtps" را درج کنید.
/etc/postfix/main.cf:
use_srv_lookup = submission, submissions
sender_dependent_default_transport_maps = inline:{
# Destinations that support SRV record lookup.
{ user1@example.com = smtp:example.com:submission }
{ user2@example.org = smtp-wraptls:example.org:submissions }
# Use [destination] to force IP address lookups.
{ user3@example.net = smtp:[smtp-relay.example.net]:submission }
{ user4@other.example =
smtp-wraptls:[smtp-relay.other.example]:submissions } }
...see SASL_README for sasl configuration...
مثال ۴: تبادل میان کارگزارها (MTA به MTA) با ردیابی رکورد SRV برای سرویس SMTP. این مورد در آزمایشهای Postfix و محیطهای مبتنی بر تخصیص پویای پورتها به سرورها کارایی دارد.
/etc/postfix/main.cf:
use_srv_lookup = smtp
# Fall back to MX record lookup when SRV records are unavailable.
#allow_srv_lookup_fallback = yes
#ignore_srv_lookup_error = yes
این قابلیت در Postfix نسخه 3.8 و بالاتر در دسترس است.
verp_delimiter_filter (default: -=+)
نویسههایی که Postfix بهعنوان نویسههای جداکننده VERP در خط فرمان sendmail(1) و در دستورهای SMTP میپذیرد.
این ویژگی در Postfix نسخه 1.1 و بالاتر در دسترس است.
virtual_alias_address_length_limit (default: 1000)
حداکثر طول مجاز برای یک نشانی ایمیل پس از بسط نام مستعار مجازی (virtual alias). این قابلیت از ایجاد حلقههای نام مستعار مجازی که طول نشانی را بهصورت تصاعدی افزایش میدهند جلوگیری میکند.
این ویژگی در Postfix نسخه 3.0 و بالاتر در دسترس است.
virtual_alias_domains (default: $virtual_alias_maps)
کارگزار Postfix مقصد نهایی برای فهرست مشخصشده از دامنههای نام مستعار مجازی است؛ یعنی دامنههایی که تمام نشانیهای آنها به نشانیهایی در دامنههای محلی یا دوردست دیگر نگاشت میشوند. سرور SMTP نشانیهای گیرنده را با $virtual_alias_maps اعتبارسنجی کرده و گیرندگان ناموجود را رد میکند. همچنین بخش virtual alias domain class را در فایل ADDRESS_CLASS_README ببینید.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است. مقدار پیشفرض با Postfix نسخه 1.1 سازگار به عقب است.
مقدار پیشفرض $virtual_alias_maps است تا بتوانید تمام اطلاعات مربوط به دامنههای نام مستعار مجازی را در یک مکان متمرکز نگه دارید. اگر کاربران زیادی دارید، بهتر است اطلاعاتی را که بیشتر تغییر میکنند (نگاشت نشانی مجازی -> نشانی محلی یا دوردست) از اطلاعاتی که کمتر تغییر میکنند (فهرست نامهای دامنههای مجازی) تفکیک کنید.
فهرستی از نامهای میزبان یا دامنه، الگوهای "/file/name" یا "type:table" را که با ویرگول و/یا فاصله سفید جدا شدهاند، مشخص کنید. الگوی "/file/name" با محتویات آن جایگزین میشود؛ جدول جستجوی "type:table" زمانی مطابقت داده میشود که یک مدخل جدول با نام میزبان یا دامنه همخوانی داشته باشد (نتیجه جستجو نادیده گرفته میشود). خطوط طولانی را با قرار دادن فاصله سفید در ابتدای خط بعدی ادامه دهید. برای مستثنی کردن یک نام میزبان یا دامنه از فهرست، از "!pattern" استفاده کنید. قالب "!/file/name" تنها در Postfix نسخه 2.4 و بالاتر پشتیبانی میشود.
برای اطلاعات بیشتر، اسناد VIRTUAL_README و ADDRESS_CLASS_README را نیز ببینید.
مثال:
virtual_alias_domains = virtual1.tld virtual2.tld
virtual_alias_expansion_limit (default: 1000)
حداکثر تعداد نشانیهایی که فرایند بسط نام مستعار مجازی از هر گیرنده اصلی تولید میکند.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
virtual_alias_maps (default: $virtual_maps)
جدولهای جستجوی اختیاری که اغلب با یک نشانی ایمیل کامل (شامل دامنه) جستجو میشوند و برای تمام گیرندهها اعمال میگردند: local(8)، مجازی و دوردست؛ این برخلاف alias_maps است که تنها با بخش محلی نشانی ایمیل (بدون دامنه) جستجو شده و فقط برای گیرندههای local(8) اعمال میشود. قالب جدول و جستجوهای virtual_alias_maps در virtual(5) مستند شده است. برای مشاهده مروری کلی از دستکاریهای نشانی در Postfix، سند ADDRESS_REWRITING_README را ببینید.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است. مقدار پیشفرض با Postfix نسخه 1.1 سازگار به عقب است.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله سفید یا ویرگول جدا شده باشند. جدولها به ترتیب مشخصشده جستجو میشوند تا زمانی که یک تطابق پیدا شود. نکته: این جستجوها بازگشتی (recursive) هستند.
مثالها:
virtual_alias_maps = lmdb:/etc/postfix/virtual
بهجای lmdb:، برخی سیستمها از cdb:، hash: یا dbm: استفاده میکنند.
پس از ایجاد تغییرات در فایل virtual، دستور "postmap /etc/postfix/virtual" را اجرا کنید تا فایل نمایهسازیشده از نوع پیشفرض (باز)تولید شود. برای تعیین صریح نوع، دستور "postmap type:/etc/postfix/virtual" را اجرا کنید.
نوع پیشفرض فایل نمایهسازیشده با پارامتر default_database_type پیکربندی میشود. جهت فهرست کردن انواع صریح و در دسترس، دستور "postconf -m" را اجرا کنید.
تغییرات پیکربندی ظرف مدت حدود یک دقیقه اعمال خواهند شد. برای برطرف کردن این تأخیر زمانی، دستور "postfix reload" را اجرا کنید.
virtual_alias_recursion_limit (default: 1000)
حداکثر عمق تو در تو بودن بسط نام مستعار مجازی. در حال حاضر محدودیت بازگشت تنها روی شاخه سمت چپ از گراف بسط اعمال میشود؛ بنابراین عمق درخت در بدترین حالت ممکن است به مجموع محدودیتهای بسط و بازگشت برسد. این سازوکار ممکن است در آینده تغییر کند.
این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است.
virtual_delivery_status_filter (default: $default_delivery_status_filter)
فیلتر اختیاری برای عامل تحویل virtual(8) جهت تغییر کد وضعیت تحویل یا متن توضیحی مربوط به تحویلهای موفق یا ناموفق. برای جزئیات به default_delivery_status_filter مراجعه کنید.
این ویژگی در Postfix نسخه 3.0 و بالاتر در دسترس است.
virtual_destination_concurrency_limit (default: $default_destination_concurrency_limit)
حداکثر تعداد تحویلهای همزمان به یک مقصد معین از طریق ترابرد تحویل پیام virtual. این محدودیت توسط مدیر صف (queue manager) اعمال میشود. نام ترابرد تحویل پیام، اولین فیلد موجود در مدخل فایل master.cf است.
virtual_destination_recipient_limit (default: $default_destination_recipient_limit)
حداکثر تعداد مجاز گیرندگان در هر پیام برای ترابرد تحویل پیام virtual. این محدودیت توسط مدیر صف اعمال میشود. نام ترابرد تحویل پیام، اولین فیلد موجود در مدخل فایل master.cf است.
تنظیم این پارامتر روی مقدار 1، مفهوم virtual_destination_concurrency_limit را از همزمانی در سطح دامنه به همزمانی در سطح گیرنده تغییر میدهد.
virtual_gid_maps (default: empty)
جدولهای جستجو حاوی شناسه گروه (GID) به ازای هر گیرنده برای تحویل صندوق پستی توسط virtual(8).
این پارامتر اختصاصاً برای عامل تحویل virtual(8) کاربرد دارد. در صورتی که ایمیل با برنامه تحویل دیگری ارسال گردد، اعمال نخواهد شد.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله سفید یا ویرگول جدا شده باشند. جدولها به ترتیب مشخصشده جستجو میشوند تا زمانی که یک تطابق پیدا شود.
در جدول جستجو، سمت چپ را به صورت "@domain.tld" مشخص کنید تا با هر کاربری در دامنه مشخصشده که فاقد مدخل اختصاصی "user@domain.tld" است مطابقت یابد.
هنگامی که نشانی گیرنده دارای پسوند نشانی اختیاری (user+foo@domain.tld) باشد، عامل تحویل virtual(8) ابتدا نشانی کامل را بررسی میکند و در صورت عدم تطابق، نشانی فاقد پسوند (user@domain.tld) را جستجو مینماید.
نکته ۱: بنا بر دلایل امنیتی، عامل تحویل virtual(8) جایگزینی عبارات باقاعده نظیر $1 و مانند آن را در جدولهای جستجوی عبارات باقاعده ممنوع میکند، زیرا این امر شکاف امنیتی ایجاد خواهد کرد.
نکته ۲: بنا بر دلایل امنیتی، عامل تحویل virtual(8) درخواستهای ارجاعشده به سرور proxymap(8) را نادیده گرفته و جدول را مستقیماً باز میکند. در نسخههای قبل از 2.2 در Postfix، عامل تحویل virtual(8) با یک خطای مهلک متوقف میشد.
virtual_mailbox_base (default: empty)
پیشوندی که عامل تحویل virtual(8) به ابتدای تمام مسیرهای بهدستآمده از جستجوهای جدول $virtual_mailbox_maps الصاق میکند. این یک اقدام احتیاطی است تا اطمینان حاصل شود که پیکربندی نادرست نقشه، فایلسیستم را با صندوقهای پستی متعدد شلوغ نمیکند. هرچند مقدار virtual_mailbox_base میتواند روی "/" تنظیم شود، این پیکربندی توصیه نمیشود.
این پارامتر اختصاصاً برای عامل تحویل virtual(8) کاربرد دارد. در صورتی که ایمیل با برنامه تحویل دیگری ارسال گردد، اعمال نخواهد شد.
مثال:
virtual_mailbox_base = /var/mail
virtual_mailbox_domains (default: $virtual_mailbox_maps)
کارگزار Postfix مقصد نهایی برای فهرست مشخصشده از دامنهها است؛ تحویل ایمیلها از طریق ترابرد تحویل ایمیل $virtual_transport صورت میگیرد. این مقدار بهطور پیشفرض همان عامل تحویل virtual(8) در Postfix است. سرور SMTP نشانیهای گیرنده را توسط $virtual_mailbox_maps اعتبارسنجی کرده و نامههای گیرندگان ناموجود را رد میکند. همچنین بخش virtual mailbox domain class را در فایل ADDRESS_CLASS_README ببینید.
این پارامتر از همان قواعد نحوی پارامتر پیکربندی mydestination پیروی میکند.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است. مقدار پیشفرض با Postfix نسخه 1.1 سازگار به عقب است.
virtual_mailbox_limit (default: 51200000)
حداکثر اندازه مجاز بر حسب بایت برای یک فایل صندوق پستی یا فایل maildir اختصاصی در virtual(8)، یا صفر (بدون محدودیت).
این پارامتر اختصاصاً برای عامل تحویل virtual(8) کاربرد دارد. در صورتی که ایمیل با برنامه تحویل دیگری ارسال گردد، اعمال نخواهد شد.
virtual_mailbox_lock (default: see postconf -d output)
روش قفلگذاری روی صندوق پستی سبک یونیکس در virtual(8) پیش از اقدام به تحویل پیام. برای مشاهده فهرست روشهای قفلگذاری فایل موجود، از دستور "postconf -l" استفاده کنید.
این پارامتر اختصاصاً برای عامل تحویل virtual(8) کاربرد دارد. در صورتی که ایمیل با برنامه تحویل دیگری ارسال گردد، اعمال نخواهد شد.
این تنظیم برای حالت تحویل maildir نادیده گرفته میشود، زیرا این نوع تحویل بدون نیاز به قفلهای سطح برنامه ایمن است.
نکته ۱: روش dotlock مستلزم آن است که UID یا GID گیرنده دسترسی نوشتن به دایرکتوری والد فایل صندوق پستی گیرنده را داشته باشد.
نکته ۲: مقدار پیشفرض این پارامتر وابسته به سیستمعامل میزبان است.
virtual_mailbox_maps (default: empty)
جدولهای جستجوی اختیاری حاوی تمام نشانیهای معتبر در دامنههایی که با $virtual_mailbox_domains تطابق دارند.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله سفید یا ویرگول جدا شده باشند. جدولها به ترتیب مشخصشده جستجو میشوند تا زمانی که یک تطابق پیدا شود.
در جدول جستجو، سمت چپ را به صورت "@domain.tld" مشخص کنید تا با هر کاربری در دامنه معین که مدخل اختصاصی "user@domain.tld" ندارد تطابق یابد.
با مقدار پیشفرض "virtual_mailbox_domains = $virtual_mailbox_maps"، جدولهای جستجو برای پاسخ به درخواستهای virtual_mailbox_domain، به مدخلهایی با سمت چپ "domain.tld" نیز نیاز خواهند داشت (سمت راست الزامی است اما خوانده نمیشود).
ادامه این بخش اختصاصاً برای عامل تحویل virtual(8) است. در صورتی که ایمیل با برنامه تحویل دیگری ارسال گردد، اعمال نخواهد شد.
عامل تحویل virtual(8) از این جدول برای یافتن مسیر فایل صندوق پستی یا maildir به ازای هر گیرنده استفاده میکند. اگر نتیجه جستجو با اسلش ("/") پایان یابد، تحویل به روش maildir انجام میشود، در غیر این صورت فرض بر این است که مسیر به یک فایل صندوق پستی استاندارد یونیکس اشاره دارد. توجه داشته باشید که مقدار $virtual_mailbox_base همواره بدون قید و شرط به ابتدای این مسیر اضافه میشود.
هنگامی که نشانی گیرنده دارای پسوند اختیاری (user+foo@domain.tld) باشد، عامل تحویل virtual(8) ابتدا نشانی کامل را بررسی میکند و در صورت عدم تطابق، نشانی فاقد پسوند (user@domain.tld) را جستجو مینماید.
نکته ۱: بنا بر دلایل امنیتی، عامل تحویل virtual(8) جایگزینی عبارات باقاعده نظیر $1 و مانند آن را در جدولهای جستجوی عبارات باقاعده ممنوع میکند، زیرا این امر شکاف امنیتی ایجاد خواهد کرد.
نکته ۲: بنا بر دلایل امنیتی، عامل تحویل virtual(8) درخواستهای ارجاعشده به سرور proxymap(8) را نادیده گرفته و جدول را مستقیماً باز میکند. در نسخههای قبل از 2.2 در Postfix، عامل تحویل virtual(8) با یک خطای مهلک متوقف میشد.
virtual_maps (default: empty)
جدولهای جستجوی اختیاری حاوی الف) نام دامنههایی که تمام نشانیهای آنها به نشانیهایی در دامنههای محلی یا دوردست دیگر نگاشت میشوند، و ب) نشانیهایی که به نشانیهایی در دامنههای محلی یا دوردست دیگر متصل میگردند. در نسخههای قبل از 2.0 در Postfix ارائه میشد. در نسخه 2.0 و بالاتر، این مورد با پارامترهای مجزای virtual_alias_domains و virtual_alias_maps جایگزین شده است.
virtual_minimum_uid (default: 100)
حداقل مقدار شناسه کاربری (UID) مجاز که عامل تحویل virtual(8) در نتیجه جستجوی جدول $virtual_uid_maps میپذیرد. مقادیر بازگرداندهشده کمتر از این حد پذیرفته نمیشوند و تحویل پیام به تعویق میافتد (deferred).
این پارامتر اختصاصاً برای عامل تحویل virtual(8) کاربرد دارد. در صورتی که ایمیل با برنامه تحویل دیگری ارسال گردد، اعمال نخواهد شد.
virtual_transport (default: virtual)
ترابرد پیشفرض تحویل ایمیل و مقصد گام بعدی (next-hop) جهت تحویل نهایی به دامنههای فهرستشده در $virtual_mailbox_domains. این اطلاعات را میتوان از طریق جدول transport(5) بازنویسی کرد.
رشتهای با ساختار transport:nexthop تعیین کنید که در آن transport نام ترابرد تحویل ایمیل تعریفشده در master.cf است. بخش مقصد :nexthop اختیاری است؛ قواعد ساختاری آن در صفحه راهنمای عامل تحویل متناظر آمده است.
این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است.
virtual_uid_maps (default: empty)
جدولهای جستجو حاوی شناسه کاربری (UID) به ازای هر گیرنده، که عامل تحویل virtual(8) هنگام ذخیره اطلاعات در صندوق پستی گیرنده به کار میگیرد.
این پارامتر اختصاصاً برای عامل تحویل virtual(8) کاربرد دارد. در صورتی که ایمیل با برنامه تحویل دیگری ارسال گردد، اعمال نخواهد شد.
صفر یا چند جدول جستجوی "type:name" را مشخص کنید که با فاصله سفید یا ویرگول جدا شده باشند. جدولها به ترتیب مشخصشده جستجو میشوند تا زمانی که یک تطابق پیدا شود.
در جدول جستجو، سمت چپ را به صورت "@domain.tld" مشخص کنید تا با هر کاربری در دامنه معین که مدخل اختصاصی "user@domain.tld" ندارد تطابق یابد.
هنگامی که نشانی گیرنده دارای پسوند نشانی اختیاری (user+foo@domain.tld) باشد، عامل تحویل virtual(8) ابتدا نشانی کامل را بررسی میکند و در صورت عدم تطابق، نشانی فاقد پسوند (user@domain.tld) را جستجو مینماید.
نکته ۱: بنا بر دلایل امنیتی، عامل تحویل virtual(8) جایگزینی عبارات باقاعده نظیر $1 و مانند آن را در جدولهای جستجوی عبارات باقاعده ممنوع میکند، زیرا این امر شکاف امنیتی ایجاد خواهد کرد.
نکته ۲: بنا بر دلایل امنیتی، عامل تحویل virtual(8) درخواستهای ارجاعشده به سرور proxymap(8) را نادیده گرفته و جدول را مستقیماً باز میکند. در نسخههای قبل از 2.2 در Postfix، عامل تحویل virtual(8) با یک خطای مهلک متوقف میشد.
همچنین ببینید (SEE ALSO)
postconf(1), نگهداری پارامترهای پیکربندی Postfix master(5), نگهداری پیکربندی دیمن Postfix
مجوز (LICENSE)
مجوز Secure Mailer باید همراه با این نرمافزار توزیع شود.
نویسندگان (AUTHORS)
Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA Wietse Venema Google, Inc. 111 8th Avenue New York, NY 10011, USA Viktor Dukhovni