.lf 1 "- .TH LLOADD.CONF 5 "2026/03/09" "OpenLDAP 2.6.13" .\" Copyright 1998-2026 The OpenLDAP Foundation All Rights Reserved. .\" Copying restrictions apply. See COPYRIGHT/LICENSE. .\" $OpenLDAP$ .SH "نام (NAME)" lloadd.conf \- فایل پیکربندی دیمن متعادل‌کننده بار LDAP (lloadd) .SH "خلاصه دستور (SYNOPSIS)" /etc/openldap/lloadd.conf .SH "توضیحات (DESCRIPTION)" فایل .B /etc/openldap/lloadd.conf حاوی اطلاعات پیکربندی برای دیمن .BR lloadd (8) است. .LP فایل .B lloadd.conf شامل مجموعه‌ای از گزینه‌های پیکربندی سراسری است که برای .B lloadd به‌طور کلی (از جمله تمام بک‌اندها) اعمال می‌شوند، و به دنبال آن صفر یا چند تعریف بک‌اند که حاوی اطلاعات خاص نحوه برقراری ارتباط با یک نمونه بک‌اند هستند می‌آید. گزینه‌های پیکربندی به حروف بزرگ و کوچک حساس نیستند؛ اما مقدار آن‌ها، مورد به مورد، ممکن است به حروف بزرگ و کوچک حساس باشد. .LP قالب کلی .B lloadd.conf به شرح زیر است: .LP .nf # دو خط زیر تنها زمانی باید وجود داشته باشند که به عنوان # ماژول slapd پیکربندی شده باشد: backend lload listen # توضیح - این گزینه‌ها برای کل سرور اعمال می‌شوند # اولین تعریف لایه tier # اولین تعریف بک‌اند backend-server # تعاریف بعدی بک‌اند/لایه ... .fi .LP می‌توان هر تعداد لایه (tier) و سرور بک‌اند را که لازم است پیکربندی کرد. .LP اگر خطی با نویسه فاصله آغاز شود، به عنوان ادامه خط قبلی در نظر گرفته می‌شود. هیچ خط فیزیکی نباید بیش از ۲۰۰۰ بایت طول داشته باشد. .LP خطوط خالی و خطوط توضیحات که با نویسه `#' آغاز می‌شوند نادیده گرفته می‌شوند. توجه: خطوط ادامه قبل از پردازش توضیحات باز می‌شوند (unwrap می‌شوند). .LP آرگومان‌ها در خطوط پیکربندی با فاصله از هم جدا می‌شوند. اگر یک آرگومان حاوی فاصله باشد، آرگومان باید درون علامت نقل‌قول دوتایی قرار گیرد. اگر آرگومان حاوی یک علامت نقل‌قول دوتایی (`"') یا نویسه بک‌اسلش (`\\') باشد، باید پیش از آن نویسه یک بک‌اسلش قرار داده شود. .LP گزینه‌های پیکربندی خاصِ موجود، در ادامه در بخش‌های گزینه‌های پیکربندی سراسری و گزینه‌های عمومی بک‌اند مورد بحث قرار گرفته‌اند. برای جزئیات بیشتر در مورد فایل پیکربندی lloadd به «راهنمای مدیر OpenLDAP» مراجعه کنید. .SH "یکپارچه‌سازی با SLAPD (SLAPD INTEGRATION)" توجه داشته باشید هنگامی که .B lloadd به عنوان یک ماژول .B slapd پیکربندی شده است، هر گزینه‌ای که نام یکسانی با یک گزینه در .BR slapd.conf (5) داشته باشد، تفسیر .B slapd اولویت دارد و گزینه .B lloadd ذکرشده مستقیماً از طریق .BR slapd.conf (5) در دسترس نخواهد بود؛ در عوض، باید از طریق یک مشخصه اختصاصی در cn=config پیکربندی شود. به‌ویژه، مگر اینکه گزینه .B TLSShareSlapdCTX تنظیم شده باشد، .B lloadd زمینه (context) مربوط به TLS اختصاصی خود را حفظ می‌کند که جز از طریق پیکربندی پویا نمی‌توان آن را پیکربندی کرد. گزینه اضافی دیگری هنگام اجرا به عنوان ماژول .B slapd در دسترس است: .TP .B listen "" شناسه‌های یکنواخت منبع (URIها) که ماژول متعادل‌کننده بار باید روی آن‌ها گوش فرا دهد. این شناسه‌ها نباید با مواردی که .B slapd برای سوکت‌های شنونده خود استفاده می‌کند هم‌پوشانی داشته باشند. مشخصه مربوطه در .B cn=config مشخصه .B olcBkLloadListen است که هر URI به عنوان یک مقدار جداگانه ارائه می‌شود. هیچ تغییری در این مشخصه که پس از راه‌اندازی سرور ایجاد شود، تا زمانی که سرور راه‌اندازی مجدد نشود، اعمال نخواهد شد. .SH "دستورالعمل‌های عمومی (GLOBAL DIRECTIVES)" گزینه‌های شرح‌داده‌شده در این بخش برای تمام بک‌اندها اعمال می‌شوند. آرگومان‌هایی که باید با متن واقعی جایگزین شوند داخل علامت‌های <> نشان داده شده‌اند. .TP .B argsfile نام (مطلق) فایلی که خط فرمان سرور .B lloadd (نام برنامه و گزینه‌ها) را در خود نگهداری می‌کند. .TP .B concurrency سطح همزمانی مورد نظر را مشخص می‌کند. به عنوان یک پیشنهاد (hint) به سیستم نخ‌های زیربنایی ارائه می‌شود. پیش‌فرض این است که هیچ پیشنهادی ارائه نشود. .\" .TP .\" .B gentlehup { on | off } .\" A SIGHUP signal will only cause a 'gentle' shutdown-attempt: .\" .B Lloadd .\" will stop listening for new connections, but will not close the .\" connections to the current clients. Future write operations return .\" unwilling-to-perform, though. Lloadd terminates when all clients .\" have closed their connections (if they ever do), or - as before - .\" if it receives a SIGTERM signal. This can be useful if you wish to .\" terminate the server and start a new .\" .B lloadd .\" server .\" .B with another database, .\" without disrupting the currently active clients. .\" The default is off. You may wish to use .\" .B idletimeout .\" along with this option. .\" .TP .\" .B idletimeout .\" Specify the number of seconds to wait before forcibly closing .\" an idle client connection. A idletimeout of 0 disables this .\" feature. The default is 0. You may also want to set the .\" .B iotimeout .\" option. .TP .B feature [...] ویژگی‌های اضافی پشتیبانی‌شده توسط متعادل‌کننده بار LDAP را فعال می‌کند. ویژگی‌های پشتیبانی‌شده عبارتند از: .RS .RS .PD 0 .TP .B proxyauthz هنگام پروکسی کردن یک عملیات، هویت مجاز کلاینت با استفاده از کنترل مجوز پروکسی (RFC 4370) ارسال می‌شود. اگر عملیات توسط کلاینتی آغاز شود که هویت متصل‌شده (bound) آن با هویت پیکربندی‌شده در .B bindconf مطابقت داشته باشد، هیچ کنترلی به عملیات اضافه نمی‌شود (هیچ تلاشی برای نرمال‌سازی DN صورت نمی‌گیرد). اگر اتصالات SASL bind توسط کلاینت‌ها صادر شده باشند و این ویژگی فعال باشد، سرورهای بک‌اند باید از عملیات توسعه‌یافته ?LDAP Who Am I پشتیبانی کنند تا متعادل‌کننده بار بتواند هویت مجوز صحیح را تشخیص دهد. .\" .TP .\" .B vc .\" when receiving a bind operation from a client, pass it onto a backend .\" as a verify credentials external operation request. With this enabled, .\" the .\" .BR backend 's .\" .B bindconns .\" option has no effect as there is no need to maintain dedicated bind .\" connections anymore. .PD .RE .RE .TP .B include قبل از ادامه با خط بعدی فایل فعلی، اطلاعات پیکربندی اضافی را از فایل داده‌شده می‌خواند. .TP .B io-threads تعداد نخ‌هایی (threads) را که باید برای مدیر اتصال استفاده شود مشخص می‌کند. پیش‌فرض ۱ است و این مقدار معمولاً برای حداکثر ۱۶ هسته CPU کافی است. این مقدار باید توانی از ۲ تنظیم شود. در صورت تغییر پس از راه‌اندازی سرور، تغییر این گزینه تا زمانی که سرور مجدداً راه‌اندازی نشود اعمال نخواهد شد. .TP .B logfile فایلی را برای ثبت پیام‌های اشکال‌زدایی lloadd مشخص می‌کند. به‌طور پیش‌فرض این پیام‌ها تنها به stderr ارسال می‌شوند، در هیچ جای دیگری ثبت نمی‌شوند و ارتباطی با پیام‌های مشخص‌شده توسط پارامتر پیکربندی .TP .B logfile-format debug | syslog-utc | syslog-localtime قالب پیشوند پیام‌های نوشته‌شده در فایل لاگ را مشخص می‌کند. قالب debug همان قالب عادی مورد استفاده برای پیام‌های اشکال‌زدایی slapd است، با یک برچسب زمانی در مبنای شانزده، که پس از آن یک شناسه نخ می‌آید. گزینه‌های دیگر شامل استفاده از پیشوندهای سبک syslog(3) با برچسب‌های زمانی بر حسب UTC یا منطقه زمانی محلی هستند. پیش‌فرض قالب debug است. .B loglevel ندارند. مشخص کردن یک logfile پیام‌ها را هم به stderr و هم به فایل لاگ کپی می‌کند. .TP .B logfile-only on | off مشخص می‌کند که پیام‌های اشکال‌زدایی تنها به فایل لاگ پیکربندی‌شده ارسال شوند و به stderr نروند. .TP .B logfile-rotate چرخش خودکار را برای فایل لاگ پیکربندی‌شده به‌صورت حداکثر تعداد فایل‌های لاگ قدیمی برای نگهداری، حداکثر اندازه بر حسب مگابایت برای رشد فایل لاگ پیش از چرخش، و حداکثر عمر بر حسب ساعت برای استفاده از یک فایل لاگ پیش از چرخش مشخص می‌کند. حداکثر تعداد باید در محدوده ۱ تا ۹۹ باشد. تنظیم Mbytes یا hours روی صفر، به ترتیب بررسی اندازه یا سن فایل را غیرفعال می‌کند. حداقل یکی از مقادیر Mbytes یا hours باید غیرصفر باشد. به‌طور پیش‌فرض هیچ چرخش خودکاری انجام نخواهد شد. .TP .B loglevel [...] سطحی را مشخص می‌کند که در آن عبارات اشکال‌زدایی و آمار عملیات باید از طریق syslog ثبت شوند (در حال حاضر در تسهیلات LOG_LOCAL4 مربوط به .BR syslogd (8) ثبت می‌شود). این‌ها را باید بیشتر به عنوان زیرسیستم‌ها در نظر گرفت تا سطوح لاگ‌گیری که به تدریج پرحرف‌تر می‌شوند. برخی از پیام‌های با اولویت بالاتر، به محض اینکه هر گونه ثبت لاگی پیکربندی شود، بدون در نظر گرفتن loglevel پیکربندی‌شده ثبت می‌شوند. سطوح لاگ جمع‌پذیر هستند، و سطوح موجود عبارتند از: .RS .RS .PD 0 .TP .B 1 .B (0x1 trace) ردگیری فراخوانی‌های توابع .TP .B 2 .B (0x2 packets) اشکال‌زدایی پردازش بسته‌ها .TP .B 4 .B (0x4 args) اشکال‌زدایی سنگین ردگیری (آرگومان‌های توابع) .TP .B 8 .B (0x8 conns) مدیریت اتصال .TP .B 16 .B (0x10 BER) چاپ بسته‌های ارسالی و دریافتی .\" .TP .\" .B 32 .\" .B (0x20 filter) .\" search filter processing .TP .B 64 .B (0x40 config) پردازش فایل پیکربندی .\" .TP .\" .B 128 .\" .B (0x80 ACL) .\" access control list processing .TP .B 256 .B (0x100 stats) اتصالات، عملیات‌های LDAP، نتایج (توصیه‌شده) .TP .B 512 .B (0x200 stats2) مدخل‌های لاگ آمار ارسال‌شده .\" .TP .\" .B 1024 .\" .B (0x400 shell) .\" print communication with shell backends .\" .TP .\" .B 2048 .\" .B (0x800 parse) .\" entry parsing .\".TP .\".B 4096 .\".B (0x1000 cache) .\"caching (unused) .\".TP .\".B 8192 .\".B (0x2000 index) .\"data indexing (unused) .\" .TP .\" .B 16384 .\" .B (0x4000 sync) .\" LDAPSync replication .TP .B 32768 .B (0x8000 none) تنها پیام‌هایی که صرف‌نظر از سطح لاگ تنظیم‌شده ثبت می‌شوند .PD .RE سطح لاگ مورد نظر را می‌توان به صورت یک عدد صحیح منفرد که سطوح مورد نظر را ترکیب (OR) می‌کند، هم در نماد ده‌دهی یا هگزادسیمال، به عنوان فهرستی از اعداد صحیح (که به صورت داخلی OR می‌شوند)، یا به عنوان فهرستی از نام‌های نشان‌داده‌شده بین پرانتزها وارد کرد، به طوری که: .LP .nf loglevel 513 loglevel 0x201 loglevel 512 1 loglevel 0x200 0x1 loglevel stats trace .fi .LP معادل یکدیگر هستند. کلیدواژه .B any می‌تواند به عنوان یک میانبر برای فعال کردن لاگ‌گیری در تمام سطوح استفاده شود (معادل \-1). کلیدواژه .BR none ، یا نمایش عدد صحیح معادل آن، باعث می‌شود پیام‌هایی که بدون در نظر گرفتن loglevel پیکربندی‌شده ثبت می‌شوند، به ثبت برسند. در واقع، اگر loglevel روی 0 تنظیم شود، هیچ لاگ‌گیری انجام نمی‌شود، بنابراین حداقل سطح .B none برای ثبت پیام‌های با اولویت بالا لازم است. مقدار پیش‌فرض loglevel برابر \fBstats\fP است. معمولاً این سطح هنگام استفاده از سایر سطوح لاگ نیز باید گنجانده شود تا به تحلیل لاگ‌ها کمک کند. .RE .TP .B pidfile نام (مطلق) فایلی که شناسه فرآیند سرور .B lloadd را در خود نگهداری می‌کند (نگاه کنید به .BR getpid (2)). .TP .B sockbuf_max_incoming_client حداکثر اندازه PDU ورودی LDAP پذیرفته‌شده از سوی کلاینت‌ها را مشخص می‌کند. پیش‌فرض ۲۶۲۱۴۳ است. .TP .B sockbuf_max_incoming_upstream حداکثر اندازه PDU ورودی LDAP پذیرفته‌شده از اتصالات بالادست را مشخص می‌کند. پیش‌فرض ۴۱۹۴۳۰۳ است. .TP .B tcp-buffer [listener=] [{read|write}=] اندازه بافر TCP را مشخص می‌کند. یک مقدار سراسری برای هر دو بافر خواندن و نوشتن TCP مربوط به هر شنونده تعریف می‌شود، مگر اینکه شنونده به‌صراحت مشخص شده باشد، یا از توصیف‌کننده‌های read یا write استفاده شود. برای جزئیات .BR tcp (7) را ببینید. توجه داشته باشید که برخی سیستم‌های عامل تنظیم خودکار بافر TCP را پیاده‌سازی کرده‌اند. .TP .B threads حداکثر اندازه استخر نخ (thread pool) اصلی را مشخص می‌کند. پیش‌فرض ۱۶ است؛ حداقل مقدار ۲ است. .TP .B threadqueues تعداد صف‌های کاری را برای استفاده در استخر نخ اصلی مشخص می‌کند. پیش‌فرض ۱ است و این مقدار معمولاً برای حداکثر ۸ هسته CPU کافی است. این مقدار نباید از تعداد CPUهای سیستم تجاوز کند. .TP .B max_pdus_per_cycle اگر روی 0 تنظیم شود، PDUها مستقیماً توسط نخ‌های I/O پردازش می‌شوند، در غیر این صورت وظیفه‌ای در صف قرار می‌گیرد تا توسط استخر نخ برداشته شود. این وظیفه PDUها را از اتصال پردازش می‌کند تا زمانی که داده دیگری برای خواندن وجود نداشته باشد یا این حد نصاب حاصل شود که در این صورت نخ I/O می‌تواند دوباره آن را بردارد. مقادیر بسیار بالا پتانسیل این را دارند که باعث محرومیت برخی اتصالات در یک محیط با پهنای باند بسیار بالا شوند. پیش‌فرض ۱۰۰۰ است. .TP .B client_max_pending باعث می‌شود متعادل‌کننده بار تعداد عملیات‌های ناتمام را برای هر اتصال کلاینت محدود کند. پیش‌فرض 0 یعنی نامحدود است. .TP .B iotimeout تعداد میلی‌ثانیه‌ها برای انتظار پیش از بستن اجباری یک اتصال با عملیات نوشتن معلق را مشخص می‌کند. این امر امکان بازیابی سریع‌تر از شرایط مختلف هنگ کردن شبکه را فراهم می‌کند. مقدار iotimeout برابر 0 این ویژگی را غیرفعال می‌کند. پیش‌فرض ۱۰۰۰۰ است. .TP .B write_coherence تعداد ثانیه‌ها پس از اتمام یک عملیات نوشتن را مشخص می‌کند که .B lloadd طی آن عملیات‌ها را منحصراً به آخرین بک‌اند انتخاب‌شده هدایت خواهد کرد. یک عملیات نوشتن هر چیزی است که به صورت داخلی مدیریت نشود (برخی exopها، abandon)، به جز عملیات‌های جستجو (search)، مقایسه (compare) و بایند (bind). عملیات‌های بایند نیز این محدودیت را بازنشانی می‌کنند. پیش‌فرض 0 است؛ عملیات‌های نوشتن انتخاب را محدود نمی‌کنند. در صورت منفی بودن، محدودیت دارای بازه زمانی نخواهد بود و تا بایند بعدی ادامه می‌یابد. .TP .B restrict_exop به .B lloadd اعلام می‌کند که عملیات توسعه‌یافته با OID مشخص‌شده باید به روش خاصی مدیریت شود. شناسه OID با مقدار .B 1.1 خاص است و یک پیش‌فرض تعیین می‌کند (تنها برای عملیات‌هایی که به صورت داخلی مدیریت نمی‌شوند). معنای آرگومان .B همانند گزینه .B restrict_control در زیر است. .TP .B restrict_control به .B lloadd اعلام می‌کند که کنترل با OID مشخص‌شده که به هر عملیاتی پیوست شده است، باید مطابق با آرگومان .B به روش خاصی مدیریت شود. در حال حاضر، تنها عملیات‌هایی که دست‌نخورده منتقل می‌شوند به این روش بازرسی می‌گردند؛ به‌ویژه، کنترل‌های روی عملیات‌های bind و عملیات‌های توسعه‌یافته بررسی .B نمی‌شوند\fR. به ترتیب اولویت نزولی (کنترل دارای بالاترین اقدام اولویت‌دار برنده می‌شود)، اقدام صورت‌گرفته به شرح زیر است: .RS .RS .PD 0 .TP .B reject عملیات‌هایی که حامل این کنترل هستند رد خواهند شد. .TP .B connection به محض اینکه یک سرور بالادست انتخاب شود، هر عملیات بعدی از این کلاینت به همان اتصال هدایت خواهد شد. برای شرایطی مفید است که حالتی (state) بین کلاینت و سرور بالادست به اشتراک گذاشته شده باشد که متعادل‌کننده بار آن را ردیابی نمی‌کند. .TP .B backend همانند .B write است با این تفاوت که منقضی نمی‌شود (time out ندارد). .TP .B write با این حالت مانند یک عملیات نوشتن رفتار می‌شود (گزینه .BR write_coherence در بالا را ببینید). .TP .B ignore بر محدودیت‌ها تأثیری نمی‌گذارد، هنگام تغییر پیش‌فرض سراسری exop مفید است. این روش مدیریت پیش‌فرض برای exopها/کنترل‌هایی است که متعادل‌کننده بار به صورت داخلی به آن‌ها رسیدگی نمی‌کند. .PD .RE .SH "گزینه‌های TLS (TLS OPTIONS)" اگر .B lloadd با پشتیبانی از امنیت لایه انتقال (TLS) ساخته شده باشد، گزینه‌های بیشتری وجود دارند که می‌توانید مشخص کنید. .TP .B TLSShareSlapdCTX { on | off } اگر روی no تنظیم شود (پیش‌فرض)، .B lloadd از زمینه TLS اختصاصی خود استفاده خواهد کرد (مگر اینکه .B lloadd به عنوان یک دیمن مستقل اجرا شود، باید از طریق .B cn=config پیکربندی گردد). در صورت فعال بودن، گزینه‌های مربوط به .B slapd اعمال خواهند شد، زیرا در این حالت از زمینه TLS متعلق به .BR slapd استفاده می‌شود. .LP گزینه‌های زیر تنها زمانی در دسترس هستند که به صورت یک دیمن مستقل کامپایل شده باشد. هنگامی که به عنوان ماژول .BR slapd (8) کامپایل شده باشد، در صورتی که به زمینه TLS مجزا برای ماژول نیاز باشد باید از معادل‌های cn=config استفاده شود، در غیر این صورت از گزینه .B TLSShareSlapdCTX استفاده کنید. .TP .B TLSCipherSuite امکان پیکربندی رمزهایی که پذیرفته می‌شوند و ترتیب اولویت آن‌ها را فراهم می‌کند. باید یک مشخصه رمز برای کتابخانه TLS مورد استفاده (OpenSSL، GnuTLS یا Mozilla NSS) باشد. مثال: .RS .RS .TP .I OpenSSL: TLSCipherSuite HIGH:MEDIUM:+SSLv2 .TP .I GnuTLS: TLSCiphersuite SECURE256:!AES-128-CBC .RE برای بررسی اینکه یک مشخصه معین در OpenSSL چه رمزهایی را انتخاب می‌کند، از دستور زیر استفاده کنید: .nf openssl ciphers \-v .fi در GnuTLS مشخصات موجود را می‌توان در صفحه راهنمای .BR gnutls\-cli (1) پیدا کرد (توضیحات گزینه .BR \-\-priority را ببینید). در نسخه‌های قدیمی‌تر GnuTLS که gnutls\-cli از گزینه \-\-priority پشتیبانی نمی‌کند، می‌توانید با فراخوانی دستور زیر فهرست \(em محدودتر \(em رمزها را به دست آورید: .nf gnutls\-cli \-l .fi هنگام استفاده از Mozilla NSS، مشخصات مجموعه رمزهای OpenSSL استفاده شده و به قالبی که در داخل Mozilla NSS به کار می‌رود ترجمه می‌شوند. راه آسانی برای فهرست کردن مجموعه‌های رمز از طریق خط فرمان وجود ندارد. فهرست معتبر در کد منبع Mozilla NSS در فایل sslinfo.c در ساختار زیر قرار دارد: .nf static const SSLCipherSuiteInfo suiteInfo[] .fi .RE .TP .B TLSCACertificateFile فایلی را مشخص می‌کند که حاوی گواهی‌های تمام مراجع صدور گواهی (CA) است که .B lloadd آن‌ها را به رسمیت می‌شناسد. گواهی مرجع صدور گواهی که گواهی سرور را امضا کرده است باید در میان این گواهی‌ها گنجانده شود. اگر CA امضاکننده یک مرجع صدور گواهی سطح بالا (ریشه) نبود، باید گواهی‌های کل دنباله CAها از CA امضاکننده تا CA سطح بالا وجود داشته باشد. گواهی‌های متعدد صرفاً به فایل اضافه می‌شوند؛ ترتیب آن‌ها اهمیتی ندارد. .TP .B TLSCACertificatePath مسیر پوشه‌ای را مشخص می‌کند که حاوی گواهی‌های مرجع صدور گواهی در فایل‌های جداگانه منفرد است. معمولاً فقط یکی از این گزینه یا TLSCACertificateFile استفاده می‌شود. این دستورالعمل هنگام استفاده از GnuTLS پشتیبانی نمی‌شود. هنگام استفاده از Mozilla NSS، مقدار ممکن است حاوی یک پایگاه‌داده گواهی/کلید Mozilla NSS باشد. اگر حاوی پایگاه‌داده گواهی/کلید Mozilla NSS و فایل‌های گواهی CA باشد، OpenLDAP از پایگاه‌داده گواهی/کلید استفاده خواهد کرد و فایل‌های گواهی CA را نادیده می‌گیرد. .TP .B TLSCertificateFile فایلی را مشخص می‌کند که حاوی گواهی سرور .B lloadd است. هنگام استفاده از Mozilla NSS، در صورت استفاده از پایگاه‌داده گواهی/کلید (مشخص‌شده با TLSCACertificatePath)، گزینه TLSCertificateFile نام گواهی مورد استفاده را مشخص می‌کند: .nf TLSCertificateFile Server-Cert .fi در صورت استفاده از توکنی غیر از توکن داخلی توکار، ابتدا نام توکن را مشخص کرده و به دنبال آن یک دونقطه قرار دهید: .nf TLSCertificateFile my hardware device:Server-Cert .fi از certutil \-L برای فهرست کردن گواهی‌ها بر اساس نام استفاده کنید: .nf certutil \-d /path/to/certdbdir \-L .fi .TP .B TLSCertificateKeyFile فایلی را مشخص می‌کند که حاوی کلید خصوصی سرور .B lloadd منطبق با گواهی ذخیره‌شده در فایل .B TLSCertificateFile است. در حال حاضر، کلید خصوصی نباید با گذرواژه محافظت شود، بنابراین بسیار حیاتی است که با دقت از آن محافظت گردد. هنگام استفاده از Mozilla NSS، گزینه TLSCertificateKeyFile نام فایلی را مشخص می‌کند که حاوی گذرواژه کلید مربوط به گواهی مشخص‌شده با TLSCertificateFile است. دستور modutil را می‌توان برای غیرفعال کردن حفاظت گذرواژه در پایگاه‌داده گواهی/کلید استفاده کرد. برای مثال، اگر TLSCACertificatePath مسیر /etc/openldap/certdb را به عنوان مکان پایگاه‌داده گواهی/کلید مشخص کند، از modutil برای تغییر گذرواژه به رشته خالی استفاده کنید: .nf modutil \-dbdir /etc/openldap/certdb \-changepw 'NSS Certificate DB' .fi شما باید گذرواژه قدیمی (در صورت وجود) را داشته باشید. هشدار مربوط به اجرای مرورگر را نادیده بگیرید. برای گذرواژه جدید کلید 'Enter' را فشار دهید. .TP .B TLSDHParamFile این دستورالعمل فایلی را مشخص می‌کند که حاوی پارامترهایی برای تبادل کلید موقت دیفی-هلمن (Diffie-Hellman ephemeral) است. این برای استفاده از یک گواهی DSA روی سرور یا یک گواهی RSA که فاقد کاربرد کلید "key encipherment" است الزامی می‌باشد. توجه داشته باشید که تنظیم این گزینه ممکن است تبادل کلید دیفی-هلمن ناشناس را نیز در برخی از مجموعه‌های رمز غیرپیش‌فرض فعال کند. به‌طور کلی باید از تبادلات کلید ناشناس اجتناب شود زیرا هیچ احراز هویت واقعی کلاینت یا سرور را فراهم نمی‌کنند و هیچ حفاظتی در برابر حملات مرد میانی ارائه نمی‌دهند. شما باید "!ADH" را به مجموعه‌های رمز خود اضافه کنید تا مطمئن شوید از این مجموعه‌ها استفاده نمی‌شود. هنگام استفاده از Mozilla NSS این پارامترها همیشه به صورت تصادفی تولید می‌شوند، بنابراین این دستورالعمل نادیده گرفته می‌شود. .TP .B TLSECName نام یک منحنی را برای استفاده در تبادل کلید موقت دیفی-هلمن منحنی بیضوی (ECDHE) مشخص می‌کند. این برای فعال کردن الگوریتم‌های ECDHE در OpenSSL الزامی است. این گزینه با GnuTLS استفاده نمی‌شود؛ منحنی‌ها ممکن است در مشخصات ciphersuite مربوط به GnuTLS انتخاب شوند. این گزینه برای Mozilla NSS نیز نادیده گرفته می‌شود. .TP .B TLSProtocolMin [.] حداقل نسخه پروتکل SSL/TLS را که مذاکره خواهد شد مشخص می‌کند. اگر سرور حداقل از آن نسخه پشتیبانی نکند، دست‌تکانی SSL شکست خواهد خورد. برای الزامی کردن TLS 1.x یا بالاتر، این گزینه را روی 3.(x+1) تنظیم کنید، مثلاً: .nf TLSProtocolMin 3.2 .fi به TLS 1.1 نیاز خواهد داشت. مشخص کردن حداقل نسخه‌ای بالاتر از آنچه توسط پیاده‌سازی OpenLDAP پشتیبانی می‌شود، باعث می‌شود بالاترین سطحی که پشتیبانی می‌کند الزامی شود. این دستورالعمل در GnuTLS نادیده گرفته می‌شود. .TP .B TLSRandFile فایلی را برای به دست آوردن بیت‌های تصادفی در زمانی که /dev/[u]random در دسترس نیست مشخص می‌کند. معمولاً روی نام سوکت EGD/PRNGD تنظیم می‌شود. متغیر محیطی RANDFILE نیز می‌تواند برای تعیین نام فایل استفاده شود. این دستورالعمل در GnuTLS و Mozilla NSS نادیده گرفته می‌شود. .TP .B TLSVerifyClient مشخص می‌کند که چه بررسی‌هایی (در صورت وجود) باید روی گواهی‌های کلاینت در یک نشست ورودی TLS انجام شود. مقدار .B می‌تواند به‌عنوان یکی از کلیدواژه‌های زیر مشخص شود: .RS .TP .B never این مقدار پیش‌فرض است. .B lloadd از کلاینت درخواست گواهی نخواهد کرد. .TP .B allow گواهی کلاینت درخواست می‌شود. اگر گواهی ارائه نشود، نشست به‌طور عادی ادامه می‌یابد. اگر یک گواهی نامعتبر ارائه شود، نادیده گرفته می‌شود و نشست به‌طور عادی ادامه می‌یابد. .TP .B try گواهی کلاینت درخواست می‌شود. اگر گواهی ارائه نشود، نشست به‌طور عادی ادامه می‌یابد. اگر یک گواهی نامعتبر ارائه شود، نشست بلافاصله خاتمه می‌یابد. .TP .B demand | hard | true این کلیدواژه‌ها به دلایل سازگاری همگی معادل هستند. گواهی کلاینت درخواست می‌شود. اگر هیچ گواهی ارائه نشود، یا یک گواهی نامعتبر ارائه شود، نشست بلافاصله خاتمه می‌یابد. .TP .B TLSCRLCheck مشخص می‌کند که آیا فهرست ابطال گواهی (CRL) مربوط به CA باید برای بررسی اینکه آیا گواهی‌های کلاینت باطل نشده‌اند استفاده شود یا خیر. این نیازمند تنظیم پارامتر .B TLSCACertificatePath است. این دستورالعمل در GnuTLS و Mozilla NSS نادیده گرفته می‌شود. مقدار .B می‌تواند به‌عنوان یکی از کلیدواژه‌های زیر مشخص شود: .RS .TP .B none هیچ بررسی CRL انجام نمی‌شود .TP .B peer بررسی CRL مربوط به گواهی همتا (peer) .TP .B all بررسی CRL برای کل زنجیره گواهی .RE .TP .B TLSCRLFile فایلی حاوی یک فهرست ابطال گواهی را برای استفاده در بررسی عدم ابطال گواهی‌ها مشخص می‌کند. این دستورالعمل تنها هنگام استفاده از GnuTLS و Mozilla NSS معتبر است. .SH "پیکربندی سرویس‌دهنده (BACKEND CONFIGURATION)" گزینه‌های موجود در این بخش نحوه اتصال و احراز هویت .B lloadd به سرورهای بک‌اند را توصیف می‌کنند. بک‌اندها در گروه‌هایی سازماندهی می‌شوند .RB ( لایه‌ها " یا " tiers ). بک‌اند‌های موجود در اولین لایه ابتدا امتحان می‌شوند؛ اگر هیچ‌کدام از آن‌ها در دسترس نباشند، لایه بعدی به همان روش امتحان می‌شود. اگر در لایه بک‌اندی وجود داشته باشد که اتصالات مناسبی دارد اما آن‌ها شلوغ (busy) هستند، لایه دیگری بررسی نمی‌شود. این امر در سناریوهای دسترسی‌پذیری بالا که در آن‌ها یک گروه از سرورها (مانند محیط محلی) در صورت امکان باید مورد ارتباط قرار گیرند، مفید است. فرض بر این است که تمام سرورهای بک‌اند داده‌های یکسانی را ارائه می‌دهند. در زمان راه‌اندازی، اتصالات پیکربندی‌شده برقرار می‌شوند و آن‌هایی که به پردازش درخواست‌های بایند اختصاص نیافته‌اند، با استفاده از اطلاعات موجود در گزینه .B bindconf با بک‌اند احراز هویت می‌شوند. پیکربندی احراز هویت بین آن‌ها به اشتراک گذاشته می‌شود. .TP .B bindconf .B [bindmethod=simple|sasl] .B [binddn=] .B [saslmech=] .B [authcid=] .B [authzid=] .B [credentials=] .B [realm=] .B [secprops=] .B [timeout=] .B [network\-timeout=] .B [keepalive=::] .B [tcp\-user\-timeout=] .B [tls_cert=] .B [tls_key=] .B [tls_cacert=] .B [tls_cacertdir=] .B [tls_reqcert=never|allow|try|demand] .B [tls_cipher_suite=] .B [tls_crlcheck=none|peer|all] .B [tls_protocol_min=[.]] اطلاعات اعتبارسنجی بایندی را مشخص می‌کند که .B lloadd هنگام برقراری اتصالات عادی خود به تمام بک‌اندها استفاده می‌کند. یک .B bindmethod از نوع .B simple نیازمند گزینه‌های .B binddn و .B credentials است و تنها زمانی باید استفاده شود که سرویس‌های امنیتی کافی (مانند TLS یا IPSEC) برقرار باشند. .B به یاد داشته باشید: اطلاعات اعتبارسنجی simple bind باید به صورت متن واضح (cleartext) باشند! یک .B bindmethod از نوع .B sasl نیازمند گزینه .B saslmech است. بسته به مکانیزم، هویت و/یا اطلاعات اعتبارسنجی احراز هویت را می‌توان با استفاده از .B authcid و .B credentials مشخص کرد. پارامتر .B authzid ممکن است برای تعیین یک هویت اعطای مجوز استفاده شود. ویژگی‌های امنیتی خاص (همانند کلیدواژه .B sasl\-secprops در بالا) برای یک bind مربوط به SASL را می‌توان با گزینه .B secprops تنظیم کرد. یک قلمرو (realm) غیرپیش‌فرض SASL را می‌توان با گزینه .B realm تنظیم نمود. پارامتر .B timeout مشخص می‌کند که یک عملیات تا چند ثانیه می‌تواند در انتظار پاسخ (نتیجه، مدخل جستجو، ...) از سرور بماند. به دلیل نحوه تشخیص مهلت‌های زمانی، ممکن است مهلت زمانی تا .B timeout ثانیه پس از وقوع آن شناسایی و مدیریت نشود. پارامتر .B network\-timeout مشخص می‌کند که مصرف‌کننده چه مدت برای برقراری اتصال شبکه با ارائه‌دهنده منتظر خواهد ماند. به محض برقراری اتصال، پارامتر .B timeout تعیین می‌کند که مصرف‌کننده چه مدت برای تکمیل درخواست Bind اولیه منتظر بماند. تنظیم Timeout روی 0 به معنای غیرفعال بودن مهلت زمانی است و به‌طور پیش‌فرض، هیچ مهلت زمانی اعمال نمی‌شود. پارامتر .B keepalive مقادیر \fIidle\fP، \fIprobes\fP و \fIinterval\fP مورد استفاده برای بررسی زنده بودن سوکت را تنظیم می‌کند؛ .I idle تعداد ثانیه‌هایی است که یک اتصال باید پیش از شروع ارسال پروب‌های keepalive توسط TCP، بیکار بماند؛ .I probes حداکثر تعداد پروب‌های keepalive است که TCP باید پیش از قطع اتصال ارسال کند؛ .I interval فاصله زمانی بر حسب ثانیه بین پروب‌های keepalive منفرد است. تنها برخی از سیستم‌ها از سفارشی‌سازی این مقادیر پشتیبانی می‌کنند؛ در غیر این صورت پارامتر .B keepalive نادیده گرفته می‌شود و از تنظیمات سراسری سیستم استفاده می‌گردد. پارامتر .B tcp\-user\-timeout ، در صورت غیرصفر بودن، با .B TCP_USER_TIMEOUT تنظیم‌شده روی اتصالات بالادست مطابقت دارد و تنظیم سیستم‌عامل را لغو می‌کند. تنها برخی از سیستم‌ها از سفارشی‌سازی این پارامتر پشتیبانی می‌کنند؛ در غیر این صورت نادیده گرفته می‌شود و از تنظیمات سراسری سیستم استفاده می‌گردد. .SH "گزینه‌های لایه (TIER OPTIONS)" .TP .B tier .B سرورهایی را گروه‌بندی می‌کند که باید در یک تلاش مشابه بررسی شوند. اگر یک اتصال قابل دوام پیدا شود حتی اگر شلوغ باشد، متعادل‌کننده بار به لایه بعدی پیشروی نمی‌کند. فرآیند انتخاب یک اتصال در داخل یک لایه به نوع آن لایه بستگی دارد. .RE انواع موجود عبارتند از: .TP .B roundrobin سرورها به ترتیب امتحان می‌شوند و اگر یکی با موفقیت انتخاب شود، جستجوی بعدی از سرور بعدی در فهرست آغاز خواهد شد. .TP .B weighted سرورهای بک‌اند گزینه جدید .B weight= را می‌پذیرند که نشان می‌دهد هر چند وقت یک‌بار باید انتخاب شوند. در صورت عدم تعیین، وزن به طور پیش‌فرض 0 است و چنین بک‌آندهایی شانس کمی برای انتخاب شدن دارند حتی زمانی که یک بک‌اند با وزن غیرصفر در لایه پیکربندی شده باشد. فرآیند انتخاب مشابه با .BR RFC2782 است. .TP .B bestof همانند .BI weighted ، بک‌اندها گزینه .B weight= را می‌پذیرند. میانگین تأخیر ضربدر .B weight در طول زمان اندازه‌گیری می‌شود. فرآیند انتخاب ۲ بک‌اند را به صورت تصادفی انتخاب می‌کند، تأخیرهای وزن‌دار آن‌ها را مقایسه می‌کند و بک‌اندی با امتیاز بهتر (کمتر) امتحان می‌شود. اگر آن بک‌اند در دسترس نباشد (یا شلوغ باشد)، بک‌اند دیگر امتحان می‌شود، سپس بک‌اندها به ترتیب round-robin انتخاب می‌شوند. توجه داشته باشید که بر خلاف .BI weighted ، هرچه وزن بالاتر باشد، تأخیر «مؤثر» بالاتر است و شانس انتخاب یک بک‌اند کمتر می‌شود. .SH "دستورالعمل‌های ویژه سرویس‌دهنده (BACKEND DIRECTIVES)" .TP .B backend-server .B uri=ldap[s]://[:port] .B [retry=] .B [starttls=yes|critical] .B [numconns=] .B [bindconns=] .B [max-pending-ops=] .B [conn-max-pending=] شروع تعریف یک بک‌اند را مشخص می‌کند. گزینه .B uri بک‌اند را به عنوان یک LDAP URI مشخص می‌کند. اگر داده نشود، شماره پورت استاندارد LDAP (برابر ۳۸۹ یا ۶۳۶) استفاده می‌شود. برنامه Lloadd تلاش خواهد کرد .B numconns اتصال فعال، و همچنین .\" unless the .\" .B vc .\" feature is enabled, .B bindconns اتصال فعال اختصاص‌یافته برای پردازش درخواست‌های bind کلاینت را نگهداری کند. اگر خطایی در یک اتصال فعال رخ دهد، بلافاصله تلاشی برای اتصال مجدد انجام می‌شود؛ اگر خطایی هنگام برقراری یک اتصال جدید به این بک‌اند رخ دهد، lloadd پیش از تلاش جدید برای اتصال مجدد، مطابق با پارامتر .B retry (پیش‌فرض ۵ ثانیه است) منتظر می‌ماند. عملیات‌ها بین اتصالات بک‌اند .RB ( upstreams " یا اتصالات بالادست ) توزیع خواهند شد. پارامتر .B conn-max-pending مگر اینکه روی .B 0 (پیش‌فرض) تنظیم شود، تعداد عملیات‌های ناتمام را در هر اتصال بالادست محدود خواهد کرد. به همین ترتیب، .B max-pending-ops تعداد کل عملیات‌های ناتمام را در تمام اتصالات بک‌اند محدود می‌کند؛ مقدار .BR 0 ، که پیش‌فرض است، به این معنی است که هیچ محدودیتی برای این بک‌اند اعمال نخواهد شد. پارامتر .B starttls استفاده از عملیات توسعه‌یافته StartTLS را برای برقراری یک نشست TLS پیش از اتصال (Binding) به ارائه‌دهنده مشخص می‌کند. اگر آرگومان .B critical ارائه شود، در صورت شکست درخواست StartTLS، نشست لغو خواهد شد. در غیر این صورت نشست syncrepl بدون TLS ادامه می‌یابد. تنظیم tls_reqcert به طور پیش‌فرض "demand" است و سایر تنظیمات TLS به طور پیش‌فرض همانند تنظیمات اصلی TLS در slapd هستند. .\" .TP .\" .B readonly on | off .\" This option puts the backend into "read-only" mode. Only read .\" operations (i.e. bind, search, compare) will be directed towards this .\" backend. By default, readonly is off. .\" .TP .\" .B restrict .\" Specify a whitespace separated list of operations that are restricted. .\" If defined inside a database specification, restrictions apply only .\" to that database, otherwise they are global. .\" Operations can be any of .\" .BR add , .\" .BR bind , .\" .BR compare , .\" .BR delete , .\" .BR extended[=] , .\" .BR modify , .\" .BR rename , .\" .BR search , .\" or the special pseudo-operations .\" .B read .\" and .\" .BR write , .\" which respectively summarize read and write operations. .\" The use of .\" .I restrict write .\" is equivalent to .\" .I readonly on .\" (see above). .\" The .\" .B extended .\" keyword allows one to indicate the OID of the specific operation .\" to be restricted. .SH "مثال‌ها (EXAMPLES)" .LP در اینجا نمونه کوتاهی از یک فایل پیکربندی آورده شده است: .LP .RS .nf argsfile /var/lib/openldap/run/lloadd.args pidfile /var/lib/openldap/run/lloadd.pid # هنوز cancel پشتیبانی نمی‌شود restrict_exop 1.3.6.1.1.8 reject # turn پشتیبانی نمی‌شود restrict_exop 1.3.6.1.1.19 reject # TXN Exop در صورت تمایل، در غیر این صورت reject restrict_exop 1.3.6.1.1.21.1 connection # کنترل Paged results restrict_control 1.2.840.113556.1.4.319 connection # کنترل VLV restrict_control 2.16.840.1.113730.3.4.9 connection bindconf bindmethod=simple binddn=cn=test credentials=pass tier weighted backend-server uri=ldap://ldap1.example.com numconns=3 bindconns=2 retry=5000 max-pending-ops=5 conn-max-pending=3 weight=5 backend-server uri=ldap://ldap2.example.com numconns=3 bindconns=2 retry=5000 max-pending-ops=5 conn-max-pending=3 weight=10 .fi .RE .LP راهنمای «OpenLDAP Administrator's Guide» حاوی نمونه طولانی‌تر و همراه با یادداشت‌های توضیحی از یک فایل پیکربندی است. فایل اصلی /etc/openldap/lloadd.conf نمونه دیگری است. .SH "محدودیت‌ها (LIMITATIONS)" پشتیبانی از پروکسی کردن SASL Binds محدود به مکانیزم .B EXTERNAL (و تنها برای استخراج DN گواهی TLS کلاینت در صورتی که در آخرین مذاکره مجدد استفاده شده باشد) و مکانیزم‌هایی است که نه به فراداده‌های اتصال متکی هستند (مانند کاری که Kerberos انجام می‌دهد) و نه یک لایه یکپارچگی/محرمانگی SASL برقرار می‌کنند (مجدداً، برخی مکانیزم‌های Kerberos و .B DIGEST-MD5 می‌توانند این را مذاکره کنند). .SH "فایل‌ها (FILES)" .TP /etc/openldap/lloadd.conf فایل پیکربندی پیش‌فرض lloadd .SH "همچنین ببینید (SEE ALSO)" .BR ldap (3)، .BR gnutls\-cli (1)، .BR slapd.conf (5)، .BR tcp (7)، .BR lloadd (8)، .BR slapd (8). .LP "OpenLDAP Administrator's Guide" (http://www.OpenLDAP.org/doc/admin) .SH "قدردانی‌ها (ACKNOWLEDGEMENTS)" .lf 1 "./../Project .\" Shared Project Acknowledgement Text .B "نرم‌افزار OpenLDAP" توسط پروژه OpenLDAP در توسعه یافته و نگهداری می‌شود. .B "نرم‌افزار OpenLDAP" از انتشار LDAP 3.3 دانشگاه میشیگان برگرفته شده است. .lf 1008 "-