ACCESS(5) File Formats Manual ACCESS(5) نام (NAME) access - جدول کنترل دسترسی کارساز SMTP در Postfix خلاصه دستور (SYNOPSIS) postmap /etc/postfix/access postmap -q "string" /etc/postfix/access postmap -q - /etc/postfix/access به عنوان کلید جستجو برای چنین آدرس‌هایی استفاده می‌کند. این مقدار با پارامتر smtpd_null_access_lookup_key در فایل main.cf پُست‌فیکس تعیین می‌شود. پسوند آدرس ایمیل (EMAIL ADDRESS EXTENSION) هنگامی که بخش محلی (localpart) یک آدرس ایمیل حاوی جداکننده اختیاری گیرنده باشد (به عنوان مثال، user+foo@domain)، ترتیب جستجو به این صورت خواهد بود: user+foo@domain، user@domain، domain، user+foo@، و user@. الگوهای نام/آدرس میزبان در جدول‌های ایندکس‌شده (HOST NAME/ADDRESS PATTERNS IN INDEXED TABLES) در جستجوها از فایل‌های ایندکس‌شده مانند DB یا DBM، یا از جدول‌های تحت شبکه مانند NIS، LDAP یا SQL، الگوهای جستجوی زیر به ترتیبی که فهرست شده‌اند بررسی می‌شوند: domain.tld با domain.tld تطابق می‌یابد. الگوی domain.tld همچنین با زیردامنه‌ها تطابق می‌یابد، اما فقط زمانی که رشته smtpd_access_maps در تنظیمات پیکربندی parent_domain_matches_subdomains در Postfix فهرست شده باشد. .domain.tld با زیردامنه‌های domain.tld تطابق می‌یابد، اما فقط زمانی که رشته smtpd_access_maps در تنظیمات پیکربندی parent_domain_matches_subdomains در Postfix فهرست نشده باشد. net.work.addr.ess net.work.addr net.work net با یک آدرس میزبان یا محدوده آدرس شبکه IPv4 راه دور تطابق می‌یابد. یک تا چهار هشت‌بیت (octet) دهدهی را که با «.» جدا شده‌اند مشخص کنید. از «[]»، «/»، صفرهای ابتدایی یا قالب‌های هگزادسیمال استفاده نکنید. محدوده‌های شبکه با کوتاه کردن مکرر آخرین «.octet» از رشته آدرس میزبان IPv4 راه دور بررسی می‌شوند، تا زمانی که تطابقی در جدول دسترسی یافت شود، یا تا زمانی که کوتاه کردن بیشتر ممکن نباشد. نکته: از نوع جدول جستجوی cidr برای تعیین الگوهای network/netmask استفاده کنید. برای جزئیات به cidr_table(5) مراجعه نمایید. net:work:addr:ess net:work:addr net:work net با یک آدرس میزبان یا محدوده آدرس شبکه IPv6 راه دور تطابق می‌یابد. سه تا هشت جفت هشت‌بیت هگزادسیمال جدا شده با «:» را با استفاده از شکل فشرده «::» برای دنباله‌ای از جفت‌های هشت‌بیت صفر مشخص کنید. از «[]»، «/»، صفرهای ابتدایی یا فرم‌های فشرده‌نشده استفاده نکنید. یک محدوده شبکه با کوتاه کردن مکرر آخرین «:octetpair» از رشته آدرس میزبان IPv6 فشرده‌شده راه دور بررسی می‌شود، تا زمانی که تطابقی در جدول دسترسی یافت شود یا کوتاه کردن بیشتر امکان‌پذیر نباشد. نکته: از نوع جدول جستجوی cidr برای تعیین الگوهای network/netmask استفاده کنید. برای جزئیات به cidr_table(5) مراجعه کنید. پشتیبانی از IPv6 در Postfix نسخه 2.2 و بالاتر در دسترس است. کنش‌های پذیرش (ACCEPT ACTIONS) OK آدرس و غیره که با الگو مطابقت دارد را می‌پذیرد. all-numerical یک نتیجه کاملاً عددی به عنوان OK در نظر گرفته می‌شود. این قالب توسط طرح‌های مجوز رله مبتنی بر آدرس مانند pop-before-smtp تولید می‌شود. برای سایر کنش‌های پذیرش، به بخش «کنش‌های دیگر» در ادامه مراجعه کنید. کنش‌های رد کردن (REJECT ACTIONS) نسخه 2.3 و بالاتر Postfix از کدهای وضعیت پیشرفته تعریف‌شده در RFC 3463 پشتیبانی می‌کنند. هنگامی که هیچ کدی در ابتدای text زیر مشخص نشده باشد، Postfix یک کد وضعیت پیشرفته پیش‌فرض «5.7.1» را در مورد کنش‌های رد کردن، و «4.7.1» را در مورد کنش‌های تعویق (defer) درج می‌کند. بخش «کدهای وضعیت پیشرفته» در ادامه را ببینید. 4NN text 5NN text آدرس و غیره که با الگو مطابقت دارد را رد می‌کند و با کد سه رقمی عددی و متن پاسخ می‌دهد. 4NN به معنای «بعداً دوباره امتحان کنید» است، در حالی که 5NN به معنای «دوباره امتحان نکنید» می‌باشد. پاسخ‌های زیر برای کارساز SMTP پُست‌فیکس معنای خاصی دارند: 421 text (Postfix 2.3 و بالاتر) 521 text (Postfix 2.6 و بالاتر) پس از پاسخ با کد عددی سه رقمی و متن، فوراً اتصال با کلاینت SMTP را قطع می‌کند. این کار منابع کارساز SMTP را آزاد می‌کند تا بتوانند در دسترس کلاینت SMTP دیگری قرار گیرند. نکته: پاسخ «521» باید فقط برای بات‌نت‌ها و سایر بدافزارها که سازگاری در آن‌ها اهمیتی ندارد استفاده شود. رفتار «ارسال 521 و قطع اتصال» در استاندارد SMTP تعریف نشده است. REJECT optional text... آدرس و غیره که با الگو مطابقت دارد را رد می‌کند. در صورت مشخص شدن متن اختیاری، با «$access_map_reject_code optional text...» پاسخ می‌دهد، در غیر این صورت با یک پیام خطای عمومی پاسخ می‌دهد. DEFER optional text... آدرس و غیره که با الگو مطابقت دارد را رد (به تعویق) می‌اندازد. در صورت مشخص شدن متن اختیاری، با «$access_map_defer_code optional text...» پاسخ می‌دهد، در غیر این صورت با یک پیام خطای عمومی پاسخ می‌دهد. این ویژگی در Postfix نسخه 2.6 و بالاتر در دسترس است. DEFER_IF_REJECT optional text... در صورتی که محدودیت‌های بعدی منجر به کنش REJECT شوند، درخواست را به تعویق می‌اندازد. در صورت مشخص شدن متن اختیاری با «$access_map_defer_code 4.7.1 optional text...» پاسخ می‌دهد، در غیر این صورت با یک پیام پاسخ خطای عمومی پاسخ می‌دهد. قبل از Postfix نسخه 2.6، کد پاسخ SMTP برابر 450 است. این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است. DEFER_IF_PERMIT optional text... در صورتی که محدودیت‌های بعدی منجر به کنش صریح یا ضمنی PERMIT شوند، درخواست را به تعویق می‌اندازد. در صورت مشخص شدن متن اختیاری با «$access_map_defer_code 4.7.1 optional text...» پاسخ می‌دهد، در غیر این صورت با یک پیام خطای عمومی پاسخ می‌دهد. قبل از Postfix نسخه 2.6، کد پاسخ SMTP برابر 450 است. این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است. برای سایر کنش‌های رد، به بخش «کنش‌های دیگر» در زیر مراجعه کنید. کنش‌های دیگر (OTHER ACTIONS) restriction... محدودیت(های) نام‌برده UCE را اعمال می‌کند (permit، reject، reject_unauth_destination و غیره). BCC user@domain یک رونوشت از پیام را به گیرنده مشخص‌شده ارسال می‌کند. اگر چندین کنش BCC در یک تراکنش SMTP MAIL مشخص شده باشد، در Postfix نسخه 3.0 فقط آخرین کنش استفاده خواهد شد. این ویژگی در Postfix نسخه 3.0 و بالاتر در دسترس است. DISCARD optional text... ادعای تحویل موفقیت‌آمیز کرده و پیام را بی سر و صدا دور می‌اندازد. در صورت مشخص شدن متن اختیاری، آن را ثبت می‌کند (log)، در غیر این صورت یک پیام عمومی را ثبت می‌کند. نکته: این کنش در حال حاضر بر تمام گیرندگان پیام تأثیر می‌گذارد. برای دور انداختن فقط یک گیرنده بدون دور انداختن کل پیام، از جدول transport(5) برای هدایت ایمیل به سرویس discard(8) استفاده کنید. این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است. DUNNO وانمود می‌کند که کلید جستجو پیدا نشده است. این کار از تلاش Postfix برای بررسی زیررشته‌های کلید جستجو (مانند نام زیردامنه یا زیرشبکه آدرس شبکه) جلوگیری می‌کند. این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است. FILTER transport:destination پس از قرار گرفتن پیام در صف، کل پیام را از طریق پالایه (فیلتر) محتوای خارجی مشخص‌شده ارسال می‌کند. نام transport فیلد اول تعریف یک عامل تحویل ایمیل (mail delivery agent) در master.cf را مشخص می‌کند؛ نحو destination گام بعدی (next-hop) در صفحه راهنمای عامل تحویل مربوطه شرح داده شده است. اطلاعات بیشتر درباره فیلترهای محتوای خارجی در فایل FILTER_README پُست‌فیکس موجود است. یادداشت ۱: از جایگزینی‌های عبارات باقاعده $number برای transport یا destination استفاده نکنید مگر اینکه بدانید اطلاعات منشأ قابل اعتمادی دارند. یادداشت ۲: این کنش تنظیم content_filter در main.cf را لغو می‌کند و بر تمام گیرندگان پیام تأثیر می‌گذارد. در صورتی که چندین کنش FILTER فعال شوند، فقط آخرین مورد اجرا می‌شود. یادداشت ۳: هدف دستور FILTER بازنویسی و لغو مسیریابی پیام است. برای لغو transport گیرنده اما نه destination گام بعدی، یک destination فیلتر خالی را مشخص کنید (Postfix 2.7 و بالاتر)، یا یک transport:destination را مشخص کنید که از طریق یک نمونه متفاوت Postfix تحویل داده شود (Postfix 2.6 و قدیمی‌تر). گزینه‌های دیگر استفاده از ویژگی‌های وابسته به گیرنده transport_maps یا وابسته به فرستنده sender_dependent_default_transport_maps است. این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است. HOLD optional text... پیام را در صف hold قرار می‌دهد، جایی که در آنجا می‌ماند تا زمانی که شخصی آن را حذف کند یا برای تحویل آزاد نماید. در صورت مشخص شدن متن اختیاری، آن را ثبت می‌کند، در غیر این صورت یک پیام عمومی را ثبت می‌کند. ایمیلی که در حالت تعلیق (hold) قرار دارد را می‌توان با دستور postcat(1) بررسی کرد و با دستور postsuper(1) نابود یا آزاد کرد. نکته: از «postsuper -r» برای آزادسازی ایمیلی که برای بخش قابل توجهی از $maximal_queue_lifetime یا $bounce_queue_lifetime یا طولانی‌تر در حالت تعلیق مانده است استفاده کنید. از «postsuper -H» فقط برای ایمیل‌هایی استفاده کنید که ظرف چند بار تلاش برای تحویل منقضی نمی‌شوند. نکته: این کنش در حال حاضر بر تمام گیرندگان پیام تأثیر می‌گذارد. این ویژگی در Postfix نسخه 2.0 و بالاتر در دسترس است. PREPEND headername: headervalue سرآیند پیام مشخص‌شده را به ابتدای پیام اضافه می‌کند. هنگامی که بیش از یک کنش PREPEND اجرا می‌شود، اولین سرآیند اضافه شده قبل از دومین سرآیند اضافه شده ظاهر می‌شود و به همین ترتیب. نکته: این کنش باید قبل از دریافت محتوای پیام اجرا شود؛ این کنش نمی‌تواند در زمینه smtpd_end_of_data_restrictions اجرا شود. این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است. REDIRECT user@domain پس از صف‌بندی پیام، پیام را به جای گیرنده(های) مورد نظر به آدرس مشخص‌شده ارسال می‌کند. هنگامی که چندین کنش REDIRECT فعال شوند، فقط آخرین مورد اعمال می‌شود. یادداشت ۱: این کنش بر کنش FILTER اولویت دارد و در حال حاضر تمام گیرندگان پیام را بازنویسی می‌کند. یادداشت ۲: یک آدرس REDIRECT مشمول قاعده‌مندسازی (افزودن دامنه مفقود) است اما مشمول نگاشت‌های نام مستعار canonical، masquerade، bcc یا virtual نمی‌شود. این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است. INFO optional text... یک رکورد اطلاعاتی را به همراه متن اختیاری، همراه با اطلاعات کلاینت و در صورت وجود، با اطلاعات helo، فرستنده، گیرنده و پروتکل ثبت می‌کند. این ویژگی در Postfix نسخه 3.0 و بالاتر در دسترس است. WARN optional text... یک هشدار را به همراه متن اختیاری، همراه با اطلاعات کلاینت و در صورت وجود، با اطلاعات helo، فرستنده، گیرنده و پروتکل ثبت می‌کند. این ویژگی در Postfix نسخه 2.1 و بالاتر در دسترس است. کدهای وضعیت پیشرفته (ENHANCED STATUS CODES) نسخه 2.3 و بالاتر Postfix از کدهای وضعیت پیشرفته تعریف شده در RFC 3463 پشتیبانی می‌کنند. هنگامی که یک کد وضعیت پیشرفته در یک جدول دسترسی مشخص می‌شود، مشمول تغییر است. تبدیلات زیر هنگامی که از همان جدول دسترسی برای محدودیت‌های دسترسی client، helo، sender یا recipient استفاده می‌شود، ضروری هستند؛ آن‌ها بدون توجه به اینکه Postfix به یک دستور MAIL FROM، RCPT TO یا دستور دیگر SMTP پاسخ می‌دهد، اتفاق می‌افتند. • هنگامی که یک آدرس فرستنده با یک کنش REJECT مطابقت دارد، کارساز SMTP پُست‌فیکس وضعیت DSN گیرنده (مانند 4.1.1-4.1.6) را به وضعیت DSN متناظر فرستنده تبدیل می‌کند و بالعکس. • هنگامی که اطلاعات غیرآدرسی با یک کنش REJECT مطابقت دارد (مانند آرگومان دستور HELO یا نام میزبان/آدرس کلاینت)، کارساز SMTP پُست‌فیکس وضعیت DSN فرستنده یا گیرنده را به یک وضعیت DSN عمومی غیرآدرسی (مانند 4.0.0) تبدیل می‌کند. جدول‌های عبارات باقاعده (REGULAR EXPRESSION TABLES) این بخش نحوه تغییر جستجوهای جدول را هنگامی که جدول در قالب عبارات باقاعده ارائه می‌شود، شرح می‌دهد. برای توضیح نحو جدول جستجوی عبارت باقاعده، به regexp_table(5) یا pcre_table(5) مراجعه کنید. هر الگو یک عبارت باقاعده است که برای کل رشته مورد جستجو اعمال می‌شود. بسته به کاربرد، آن رشته کل نام میزبان کلاینت، کل آدرس IP کلاینت، یا کل آدرس ایمیل است. بنابراین، هیچ جستجویی در دامنه والد یا شبکه والد انجام نمی‌شود، آدرس‌های ایمیل user@domain به بخش‌های تشکیل‌دهنده user@ و domain تقسیم نمی‌شوند، و user+foo نیز به user و foo تجزیه نمی‌شود. الگوها به ترتیبی که در جدول مشخص شده‌اند اعمال می‌شوند تا زمانی که الگویی پیدا شود که با رشته جستجو مطابقت داشته باشد. کنش‌ها همانند جستجوهای فایل ایندکس‌شده هستند، با این ویژگی اضافی که زیررشته‌های داخل پرانتز از الگو می‌توانند به صورت $1، $2 و غیره جایگزین شوند. جدول‌های مبتنی بر TCP (TCP-BASED TABLES) این بخش نحوه تغییر جستجوهای جدول را هنگامی که جستجوها به یک کارساز مبتنی بر TCP هدایت می‌شوند شرح می‌دهد. برای شرح پروتکل جستجوی کلاینت/کارساز TCP به tcp_table(5) مراجعه کنید. این ویژگی تا نسخه 2.4 Postfix (شامل آن) در دسترس نیست. هر عملیات جستجو کل رشته پرس‌وجو را یک بار استفاده می‌کند. بسته به کاربرد، آن رشته یک نام میزبان کامل کلاینت، یک آدرس IP کامل کلاینت، یا یک آدرس ایمیل کامل است. بنابراین، هیچ جستجوی دامنه والد یا شبکه والد انجام نمی‌شود، آدرس‌های ایمیل user@domain به اجزای تشکیل‌دهنده user@ و domain خود تجزیه نمی‌شوند، و user+foo نیز به user و foo تقسیم نمی‌گردد. کنش‌ها همانند جستجوهای فایل ایندکس‌شده هستند. مثال‌ها (EXAMPLES) مثال زیر از یک فایل ایندکس‌شده استفاده می‌کند، به طوری که ترتیب ورودی‌های جدول اهمیتی ندارد. این مثال دسترسی کلاینت در آدرس 1.2.3.4 را مجاز می‌داند اما تمام کلاینت‌های دیگر در 1.2.3.0/24 را رد می‌کند. به جای جدول‌های جستجوی hash، برخی سیستم‌ها از dbm استفاده می‌کنند. از دستور «postconf -m» برای یافتن جدول‌های جستجویی که Postfix در سیستم شما پشتیبانی می‌کند استفاده کنید. /etc/postfix/main.cf: smtpd_client_restrictions = check_client_access hash:/etc/postfix/access /etc/postfix/access: 1.2.3 REJECT 1.2.3.4 OK دستور «postmap /etc/postfix/access» را پس از ویرایش فایل اجرا کنید. گزارش باگ‌ها (BUGS) قالب جدول قراردادهای نقل‌قول (quoting conventions) را درک نمی‌کند. همچنین ببینید (SEE ALSO) postmap(1)، مدیر جدول جستجوی Postfix smtpd(8)، کارساز SMTP postconf(5)، پارامترهای پیکربندی transport(5)، نحو transport:nexthop فایل‌های راهنما (README FILES) از «postconf readme_directory» یا «postconf html_directory» برای یافتن محل این اطلاعات استفاده کنید. SMTPD_ACCESS_README، کنترل دسترسی کارساز داخلی SMTP DATABASE_README، نمای کلی جدول جستجوی 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 ACCESS(5)