| ANVIL(8) | System Manager's Manual | ANVIL(8) |
نام (NAME)
anvil - کنترل تعداد نشست و نرخ درخواست Postfix
خلاصه دستور (SYNOPSIS)
anvil [generic Postfix daemon options]
توضیحات (DESCRIPTION)
سرور anvil(8) در Postfix آمار و اطلاعات مربوط به تعداد اتصالات کلاینت یا نرخ درخواستهای کلاینت را نگهداری میکند. این اطلاعات میتواند برای دفاع در برابر کلاینتهایی استفاده شود که با تعداد بیش از حد نشستهای همزمان، یا با تعداد بسیار زیادی درخواست متوالی در یک بازه زمانی قابلپیکربندی به سرور هجوم میآورند (hammering). این سرور به گونهای طراحی شده است که تحت کنترل سرور master(8) در Postfix اجرا شود.
در متن زیر، ident ترکیبی از (سرویس، کلاینت) را مشخص میکند. نحو دقیق این اطلاعات وابسته به برنامه است؛ سرور anvil(8) به این ساختار اهمیتی نمیدهد.
کنترل تعداد/نرخ اتصالات (CONNECTION COUNT/RATE CONTROL)
برای ثبت یک اتصال جدید، درخواست زیر را به سرور anvil(8) ارسال کنید:
request=connect ident=string
سرور anvil(8) با تعداد اتصالات همزمان و تعداد اتصالات در واحد زمان برای ترکیب (سرویس، کلاینت) مشخصشده با ident پاسخ میدهد:
status=0 count=number rate=number
برای ثبت یک رویداد قطع اتصال (disconnect)، درخواست زیر را به سرور anvil(8) ارسال کنید:
request=disconnect ident=string
سرور anvil(8) با موارد زیر پاسخ میدهد:
status=0
کنترل نرخ پیام (MESSAGE RATE CONTROL)
برای ثبت یک درخواست تحویل پیام، درخواست زیر را به سرور anvil(8) ارسال کنید:
request=message ident=string
سرور anvil(8) با تعداد درخواستهای تحویل پیام در واحد زمان برای ترکیب (سرویس، کلاینت) مشخصشده با ident پاسخ میدهد:
status=0 rate=number
کنترل نرخ گیرنده (RECIPIENT RATE CONTROL)
برای ثبت یک درخواست گیرنده، درخواست زیر را به سرور anvil(8) ارسال کنید:
request=recipient ident=string
سرور anvil(8) با تعداد نشانیهای گیرنده در واحد زمان برای ترکیب (سرویس، کلاینت) مشخصشده با ident پاسخ میدهد:
status=0 rate=number
کنترل نرخ مذاکره نشست TLS (TLS SESSION NEGOTIATION RATE CONTROL)
ویژگیهای شرحدادهشده در این بخش در Postfix نسخه 2.3 و بالاتر در دسترس هستند.
برای ثبت درخواستی برای یک نشست جدید TLS (یعنی در حافظه موقت کش نشده باشد)، درخواست زیر را به سرور anvil(8) ارسال کنید:
request=newtls ident=string
سرور anvil(8) با تعداد درخواستهای نشست جدید TLS در واحد زمان برای ترکیب (سرویس، کلاینت) مشخصشده با ident پاسخ میدهد:
status=0 rate=number
برای دریافت اطلاعات نرخ درخواست نشست جدید TLS بدون بهروزرسانی اطلاعات شمارنده، ارسال کنید:
request=newtls_report ident=string
سرور anvil(8) با تعداد درخواستهای نشست جدید TLS در واحد زمان برای ترکیب (سرویس، کلاینت) مشخصشده با ident پاسخ میدهد:
status=0 rate=number
کنترل نرخ احراز هویت (AUTH RATE CONTROL)
برای ثبت یک درخواست AUTH، درخواست زیر را به سرور anvil(8) ارسال کنید:
request=auth ident=string
سرور anvil(8) با تعداد درخواستهای احراز هویت (auth) در واحد زمان برای ترکیب (سرویس، کلاینت) مشخصشده با ident پاسخ میدهد:
status=0 rate=number
امنیت (SECURITY)
سرور anvil(8) با شبکه یا کاربران محلی ارتباط برقرار نمیکند، و میتواند در محیط chroot با دسترسی پایین ثابت اجرا شود.
سرور anvil(8) یک جدول درون حافظه (in-memory) با اطلاعات مربوط به درخواستهای اخیر کلاینتها نگهداری میکند. هیچ وضعیت پایداری حفظ نمیشود زیرا روالهای کتابخانه استاندارد سیستم برای برنامههایی با بهروزرسانی فشرده به اندازه کافی پایدار نیستند.
اگرچه وضعیت درون حافظه تنها به صورت موقت نگهداری میشود، اما در سیستمهایی که اتصالات کلاینتهای راه دور متعددی را مدیریت میکنند، این امر ممکن است به حافظه زیادی نیاز داشته باشد. برای کاهش مصرف حافظه، واحد زمانی که وضعیت در طول آن نگهداری میشود را کاهش دهید.
عیبیابی (DIAGNOSTICS)
مشکلات و تراکنشها در syslogd(8) یا postlogd(8) ثبت میشوند.
هنگام خروج، و هر anvil_status_update_time ثانیه یکبار، سرور حداکثر مقادیر اندازهگیریشده برای تعداد و نرخ را همراه با اطلاعات (سرویس، کلاینت) و زمان وقوع روزانه مربوط به آن رویدادها در لاگ ثبت میکند. به منظور جلوگیری از سربار غیرضروری، هیچ اندازهگیری برای فعالیتهایی که محدودیت همزمانی یا محدودیت نرخ ندارند انجام نمیشود.
اشکالات (BUGS)
سیستمهای پشت روترهای ترجمه نشانی شبکه (NAT) یا پروکسیها دارای نشانی کلاینت یکسانی به نظر میرسند و ممکن است به اشتباه دچار محدودیتهای تعداد اتصال و/یا نرخ شوند.
در این پیادهسازی اولیه، یک فرآیند سرور که دارای محدودیت تعداد (یا نرخ) است میتواند در هر زمان تنها یک کلاینت راه دور داشته باشد. اگر یک فرآیند سرور چندین کلاینت همزمان را گزارش کند، وضعیت تنها برای آخرین کلاینت گزارششده نگهداری میشود.
سرور anvil(8) اطلاعات درخواست کلاینت را پس از انقضا بهطور خودکار دور میاندازد. برای جلوگیری از اینکه سرور anvil(8) اطلاعات نرخ درخواست کلاینت را خیلی زود یا خیلی دیر دور بیندازد، یک سرویس دارای محدودیت نرخ باید همیشه رویدادهای connect/disconnect را حتی زمانی که صریحاً آنها را محدود نمیکند، ثبت نماید.
پارامترهای پیکربندی (CONFIGURATION PARAMETERS)
در سیستمهای پستی با ترافیک کم، تغییرات در main.cf بهطور خودکار اعمال میشوند زیرا فرآیندهای anvil(8) تنها برای مدت زمان محدودی اجرا میگردند. در سایر سیستمهای پستی، برای تسریع در اعمال تغییرات از دستور "postfix reload" استفاده کنید.
متن زیر تنها خلاصهای از پارامترها را ارائه میدهد. برای جزئیات بیشتر شامل مثالها به postconf(5) مراجعه کنید.
- anvil_rate_time_unit (60s)
- واحد زمانی که نرخ اتصالات کلاینت و سایر نرخها بر اساس آن محاسبه میشوند.
- anvil_status_update_time (600s)
- فاصله زمانی ثبت اطلاعات اوج مصرف توسط سرور محدودکننده اتصال و نرخ anvil(8).
- config_directory (see 'postconf -d' output)
- مکان پیشفرض فایلهای پیکربندی main.cf و master.cf در Postfix.
- daemon_timeout (18000s)
- حداکثر زمانی که یک فرآیند دیمن Postfix مجاز است برای رسیدگی به یک درخواست صرف کند، پیش از آنکه توسط تایمر نگهبان داخلی (watchdog) متوقف شود.
- ipc_timeout (3600s)
- محدودیت زمانی برای ارسال یا دریافت اطلاعات از طریق یک کانال ارتباطی داخلی.
- max_idle (100s)
- حداکثر مدت زمانی که یک فرآیند دیمن بیکار Postfix برای یک اتصال ورودی منتظر میماند پیش از آنکه بهطور داوطلبانه خاتمه یابد.
- max_use (100)
- حداکثر تعداد اتصالات ورودی که یک فرآیند دیمن Postfix پیش از توقف داوطلبانه به آنها سرویس میدهد.
- process_id (read-only)
- شناسه فرآیند (PID) یک دستور یا فرآیند دیمن Postfix.
- process_name (read-only)
- نام فرآیند یک دستور یا فرآیند دیمن Postfix.
- syslog_facility (mail)
- تسهیلات syslog برای ثبت وقایع Postfix.
- syslog_name (see 'postconf -d' output)
- پیشوندی که به ابتدای نام فرآیند در رکوردهای syslog افزوده میشود، بهطوری که برای مثال "smtpd" به "prefix/smtpd" تبدیل میشود.
موجود در Postfix نسخه 3.3 و بالاتر:
- service_name (read-only)
- نام سرویس در master.cf برای یک فرآیند دیمن Postfix.
همچنین ببینید (SEE ALSO)
smtpd(8), Postfix SMTP server postconf(5), configuration parameters master(5), generic daemon options
فایلهای README (README FILES)
برای یافتن این اطلاعات از دستور "postconf readme_directory" یا "postconf html_directory" استفاده کنید.
TUNING_README, بهینهسازی کارایی (performance tuning)
مجوز (LICENSE)
مجوز Secure Mailer باید همراه با این نرمافزار توزیع شود.
تاریخچه (HISTORY)
سرویس anvil در Postfix نسخه 2.2 و بالاتر در دسترس است.
نویسندگان (AUTHOR(S))
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