.TH ANVIL 8 .ad .fi .SH "نام (NAME)" anvil \- کنترل تعداد نشست و نرخ درخواست Postfix .SH "خلاصه دستور (SYNOPSIS)" .na .nf \fBanvil\fR [generic Postfix daemon options] .SH "توضیحات (DESCRIPTION)" .ad .fi سرور \fBanvil\fR(8) در Postfix آمار و اطلاعات مربوط به تعداد اتصالات کلاینت یا نرخ درخواست‌های کلاینت را نگهداری می‌کند. این اطلاعات می‌تواند برای دفاع در برابر کلاینت‌هایی استفاده شود که با تعداد بیش از حد نشست‌های هم‌زمان، یا با تعداد بسیار زیادی درخواست متوالی در یک بازه زمانی قابل‌پیکربندی به سرور هجوم می‌آورند (hammering). این سرور به گونه‌ای طراحی شده است که تحت کنترل سرور \fBmaster\fR(8) در Postfix اجرا شود. در متن زیر، \fBident\fR ترکیبی از (سرویس، کلاینت) را مشخص می‌کند. نحو دقیق این اطلاعات وابسته به برنامه است؛ سرور \fBanvil\fR(8) به این ساختار اهمیتی نمی‌دهد. .SH "کنترل تعداد/نرخ اتصالات (CONNECTION COUNT/RATE CONTROL)" .na .nf .ad .fi برای ثبت یک اتصال جدید، درخواست زیر را به سرور \fBanvil\fR(8) ارسال کنید: .nf \fBrequest=connect\fR \fBident=\fIstring\fR .fi سرور \fBanvil\fR(8) با تعداد اتصالات هم‌زمان و تعداد اتصالات در واحد زمان برای ترکیب (سرویس، کلاینت) مشخص‌شده با \fBident\fR پاسخ می‌دهد: .nf \fBstatus=0\fR \fBcount=\fInumber\fR \fBrate=\fInumber\fR .fi برای ثبت یک رویداد قطع اتصال (disconnect)، درخواست زیر را به سرور \fBanvil\fR(8) ارسال کنید: .nf \fBrequest=disconnect\fR \fBident=\fIstring\fR .fi سرور \fBanvil\fR(8) با موارد زیر پاسخ می‌دهد: .nf \fBstatus=0\fR .fi .SH "کنترل نرخ پیام (MESSAGE RATE CONTROL)" .na .nf .ad .fi برای ثبت یک درخواست تحویل پیام، درخواست زیر را به سرور \fBanvil\fR(8) ارسال کنید: .nf \fBrequest=message\fR \fBident=\fIstring\fR .fi سرور \fBanvil\fR(8) با تعداد درخواست‌های تحویل پیام در واحد زمان برای ترکیب (سرویس، کلاینت) مشخص‌شده با \fBident\fR پاسخ می‌دهد: .nf \fBstatus=0\fR \fBrate=\fInumber\fR .fi .SH "کنترل نرخ گیرنده (RECIPIENT RATE CONTROL)" .na .nf .ad .fi برای ثبت یک درخواست گیرنده، درخواست زیر را به سرور \fBanvil\fR(8) ارسال کنید: .nf \fBrequest=recipient\fR \fBident=\fIstring\fR .fi سرور \fBanvil\fR(8) با تعداد نشانی‌های گیرنده در واحد زمان برای ترکیب (سرویس، کلاینت) مشخص‌شده با \fBident\fR پاسخ می‌دهد: .nf \fBstatus=0\fR \fBrate=\fInumber\fR .fi .SH "کنترل نرخ مذاکره نشست TLS (TLS SESSION NEGOTIATION RATE CONTROL)" .na .nf .ad .fi ویژگی‌های شرح‌داده‌شده در این بخش در Postfix نسخه 2.3 و بالاتر در دسترس هستند. برای ثبت درخواستی برای یک نشست جدید TLS (یعنی در حافظه موقت کش نشده باشد)، درخواست زیر را به سرور \fBanvil\fR(8) ارسال کنید: .nf \fBrequest=newtls\fR \fBident=\fIstring\fR .fi سرور \fBanvil\fR(8) با تعداد درخواست‌های نشست جدید TLS در واحد زمان برای ترکیب (سرویس، کلاینت) مشخص‌شده با \fBident\fR پاسخ می‌دهد: .nf \fBstatus=0\fR \fBrate=\fInumber\fR .fi برای دریافت اطلاعات نرخ درخواست نشست جدید TLS بدون به‌روزرسانی اطلاعات شمارنده، ارسال کنید: .nf \fBrequest=newtls_report\fR \fBident=\fIstring\fR .fi سرور \fBanvil\fR(8) با تعداد درخواست‌های نشست جدید TLS در واحد زمان برای ترکیب (سرویس، کلاینت) مشخص‌شده با \fBident\fR پاسخ می‌دهد: .nf \fBstatus=0\fR \fBrate=\fInumber\fR .fi .SH "کنترل نرخ احراز هویت (AUTH RATE CONTROL)" .na .nf .ad .fi برای ثبت یک درخواست AUTH، درخواست زیر را به سرور \fBanvil\fR(8) ارسال کنید: .nf \fBrequest=auth\fR \fBident=\fIstring\fR .fi سرور \fBanvil\fR(8) با تعداد درخواست‌های احراز هویت (auth) در واحد زمان برای ترکیب (سرویس، کلاینت) مشخص‌شده با \fBident\fR پاسخ می‌دهد: .nf \fBstatus=0\fR \fBrate=\fInumber\fR .fi .SH "امنیت (SECURITY)" .na .nf .ad .fi سرور \fBanvil\fR(8) با شبکه یا کاربران محلی ارتباط برقرار نمی‌کند، و می‌تواند در محیط chroot با دسترسی پایین ثابت اجرا شود. سرور \fBanvil\fR(8) یک جدول درون حافظه (in\-memory) با اطلاعات مربوط به درخواست‌های اخیر کلاینت‌ها نگهداری می‌کند. هیچ وضعیت پایداری حفظ نمی‌شود زیرا روال‌های کتابخانه استاندارد سیستم برای برنامه‌هایی با به‌روزرسانی فشرده به اندازه کافی پایدار نیستند. اگرچه وضعیت درون حافظه تنها به صورت موقت نگهداری می‌شود، اما در سیستم‌هایی که اتصالات کلاینت‌های راه دور متعددی را مدیریت می‌کنند، این امر ممکن است به حافظه زیادی نیاز داشته باشد. برای کاهش مصرف حافظه، واحد زمانی که وضعیت در طول آن نگهداری می‌شود را کاهش دهید. .SH "عیب‌یابی (DIAGNOSTICS)" .ad .fi مشکلات و تراکنش‌ها در \fBsyslogd\fR(8) یا \fBpostlogd\fR(8) ثبت می‌شوند. هنگام خروج، و هر \fBanvil_status_update_time\fR ثانیه یک‌بار، سرور حداکثر مقادیر اندازه‌گیری‌شده برای تعداد و نرخ را همراه با اطلاعات (سرویس، کلاینت) و زمان وقوع روزانه مربوط به آن رویدادها در لاگ ثبت می‌کند. به منظور جلوگیری از سربار غیرضروری، هیچ اندازه‌گیری برای فعالیت‌هایی که محدودیت هم‌زمانی یا محدودیت نرخ ندارند انجام نمی‌شود. .SH "اشکالات (BUGS)" .ad .fi سیستم‌های پشت روترهای ترجمه نشانی شبکه (NAT) یا پروکسی‌ها دارای نشانی کلاینت یکسانی به نظر می‌رسند و ممکن است به اشتباه دچار محدودیت‌های تعداد اتصال و/یا نرخ شوند. در این پیاده‌سازی اولیه، یک فرآیند سرور که دارای محدودیت تعداد (یا نرخ) است می‌تواند در هر زمان تنها یک کلاینت راه دور داشته باشد. اگر یک فرآیند سرور چندین کلاینت هم‌زمان را گزارش کند، وضعیت تنها برای آخرین کلاینت گزارش‌شده نگهداری می‌شود. سرور \fBanvil\fR(8) اطلاعات درخواست کلاینت را پس از انقضا به‌طور خودکار دور می‌اندازد. برای جلوگیری از این‌که سرور \fBanvil\fR(8) اطلاعات نرخ درخواست کلاینت را خیلی زود یا خیلی دیر دور بیندازد، یک سرویس دارای محدودیت نرخ باید همیشه رویدادهای connect/disconnect را حتی زمانی که صریحاً آن‌ها را محدود نمی‌کند، ثبت نماید. .SH "پارامترهای پیکربندی (CONFIGURATION PARAMETERS)" .na .nf .ad .fi در سیستم‌های پستی با ترافیک کم، تغییرات در \fBmain.cf\fR به‌طور خودکار اعمال می‌شوند زیرا فرآیندهای \fBanvil\fR(8) تنها برای مدت زمان محدودی اجرا می‌گردند. در سایر سیستم‌های پستی، برای تسریع در اعمال تغییرات از دستور "\fBpostfix reload\fR" استفاده کنید. متن زیر تنها خلاصه‌ای از پارامترها را ارائه می‌دهد. برای جزئیات بیشتر شامل مثال‌ها به \fBpostconf\fR(5) مراجعه کنید. .IP "\fBanvil_rate_time_unit (60s)\fR" واحد زمانی که نرخ اتصالات کلاینت و سایر نرخ‌ها بر اساس آن محاسبه می‌شوند. .IP "\fBanvil_status_update_time (600s)\fR" فاصله زمانی ثبت اطلاعات اوج مصرف توسط سرور محدودکننده اتصال و نرخ \fBanvil\fR(8). .IP "\fBconfig_directory (see 'postconf -d' output)\fR" مکان پیش‌فرض فایل‌های پیکربندی main.cf و master.cf در Postfix. .IP "\fBdaemon_timeout (18000s)\fR" حداکثر زمانی که یک فرآیند دیمن Postfix مجاز است برای رسیدگی به یک درخواست صرف کند، پیش از آن‌که توسط تایمر نگهبان داخلی (watchdog) متوقف شود. .IP "\fBipc_timeout (3600s)\fR" محدودیت زمانی برای ارسال یا دریافت اطلاعات از طریق یک کانال ارتباطی داخلی. .IP "\fBmax_idle (100s)\fR" حداکثر مدت زمانی که یک فرآیند دیمن بیکار Postfix برای یک اتصال ورودی منتظر می‌ماند پیش از آن‌که به‌طور داوطلبانه خاتمه یابد. .IP "\fBmax_use (100)\fR" حداکثر تعداد اتصالات ورودی که یک فرآیند دیمن Postfix پیش از توقف داوطلبانه به آن‌ها سرویس می‌دهد. .IP "\fBprocess_id (read\-only)\fR" شناسه فرآیند (PID) یک دستور یا فرآیند دیمن Postfix. .IP "\fBprocess_name (read\-only)\fR" نام فرآیند یک دستور یا فرآیند دیمن Postfix. .IP "\fBsyslog_facility (mail)\fR" تسهیلات syslog برای ثبت وقایع Postfix. .IP "\fBsyslog_name (see 'postconf -d' output)\fR" پیشوندی که به ابتدای نام فرآیند در رکوردهای syslog افزوده می‌شود، به‌طوری که برای مثال "smtpd" به "prefix/smtpd" تبدیل می‌شود. .PP موجود در Postfix نسخه 3.3 و بالاتر: .IP "\fBservice_name (read\-only)\fR" نام سرویس در master.cf برای یک فرآیند دیمن Postfix. .SH "همچنین ببینید (SEE ALSO)" .na .nf smtpd(8), Postfix SMTP server postconf(5), configuration parameters master(5), generic daemon options .SH "فایل‌های README (README FILES)" .na .nf .ad .fi برای یافتن این اطلاعات از دستور "\fBpostconf readme_directory\fR" یا "\fBpostconf html_directory\fR" استفاده کنید. .na .nf TUNING_README, بهینه‌سازی کارایی (performance tuning) .SH "مجوز (LICENSE)" .na .nf .ad .fi مجوز Secure Mailer باید همراه با این نرم‌افزار توزیع شود. .SH "تاریخچه (HISTORY)" .ad .fi .ad .fi سرویس anvil در Postfix نسخه 2.2 و بالاتر در دسترس است. .SH "نویسندگان (AUTHOR(S))" .na .nf 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