LDAP.CONF(5) File Formats Manual LDAP.CONF(5)

ldap.conf, .ldaprc - پرونده پیکربندی LDAP/متغیرهای محیطی

ETCDIR/ldap.conf, ldaprc, .ldaprc, $LDAP<option-name>

اگر متغیر محیطی LDAPNOINIT تعریف شده باشد، تمامی مقادیر پیش‌فرض غیرفعال می‌شوند.

پرونده پیکربندی ldap.conf برای تعیین پیش‌فرض‌های سراسری سیستم جهت اعمال هنگام اجرای کلاینت‌های ldap استفاده می‌شود.

کاربران می‌توانند یک پرونده پیکربندی اختیاری به نام ldaprc یا .ldaprc, در دایرکتوری خانگی خود ایجاد کنند که برای جایگزینی مقادیر پیش‌فرض پرونده سراسری سیستم به کار خواهد رفت. پرونده ldaprc در دایرکتوری کاری جاری نیز استفاده می‌شود.

پرونده‌های پیکربندی بیشتری را می‌توان با استفاده از متغیرهای محیطی LDAPCONF و LDAPRC مشخص کرد. LDAPCONF می‌تواند روی مسیر یک پرونده پیکربندی تنظیم شود. این مسیر می‌تواند مطلق یا نسبت به دایرکتوری کاری جاری باشد. متغیر LDAPRC، در صورت تعریف، باید نام پایه یک پرونده در دایرکتوری کاری جاری یا در دایرکتوری خانگی کاربر باشد.

همچنین می‌توان از متغیرهای محیطی برای تکمیل پیش‌فرض‌های مبتنی بر پرونده استفاده کرد. نام متغیر همان نام گزینه به همراه پیشوند افزوده LDAP است. به عنوان مثال، برای تعریف BASE از طریق محیط، متغیر LDAPBASE را به مقدار مورد نظر تنظیم کنید.

برخی از گزینه‌ها فقط مختص کاربر هستند. این گزینه‌ها در صورت وجود در ldap.conf (یا پرونده مشخص‌شده توسط LDAPCONF) نادیده گرفته می‌شوند.

بنابراین پرونده‌ها و متغیرهای زیر، به ترتیب خوانده می‌شوند:

variable     $LDAPNOINIT, and if that is not set:
system file  ETCDIR/ldap.conf,
user files   $HOME/ldaprc,  $HOME/.ldaprc,  ./ldaprc,
system file  $LDAPCONF,
user files   $HOME/$LDAPRC, $HOME/.$LDAPRC, ./$LDAPRC,
variables    $LDAP<uppercase option name>.
تنظیماتی که در انتهای فهرست آمده‌اند، موارد قبلی را لغو و بازنویسی می‌کنند.

گزینه‌های پیکربندی به بزرگی و کوچکی حروف حساس نیستند؛ مقدار آن‌ها، بسته به مورد، ممکن است به بزرگی و کوچکی حروف حساس باشد.

خطوط خالی نادیده گرفته می‌شوند.
خطوطی که با علامت هش (`#') آغاز می‌شوند، توضیح بوده و نادیده گرفته می‌شوند.

خطوط معتبر از نام یک گزینه (توالی‌ای از نویسه‌های غیرفاصله، که طبق عرف با حروف بزرگ نوشته می‌شود، هرچند الزامی نیست)، و به دنبال آن یک مقدار تشکیل شده‌اند. مقدار با اولین نویسه غیرفاصله پس از نام گزینه آغاز می‌شود، و در انتهای خط، یا در آخرین توالی فاصله‌ها پیش از انتهای خط خاتمه می‌یابد. توکن‌سازی (tokenization) مقدار، در صورت وجود، به گرداننده(های) آن گزینه واگذار می‌شود. قرار دادن مقادیر شامل فاصله درون نقل‌قول ممکن است نادرست باشد، زیرا علامت‌های نقل‌قول بخشی از مقدار خواهند شد. برای مثال،

# Wrong - erroneous quotes:
URI     "ldap:// ldaps://"
# Right - space-separated list of URIs, without quotes:
URI     ldap:// ldaps://
# Right - DN syntax needs quoting for Example, Inc:
BASE    ou=IT staff,o="Example, Inc",c=US
# or:
BASE    ou=IT staff,o=Example\2C Inc,c=US
# Wrong - comment on same line as option:
DEREF   never           # Never follow aliases

طول یک خط نمی‌تواند بیشتر از LINE_MAX باشد، که در تمام پلتفرم‌ها باید بیش از 2000 بایت باشد. هیچ سازوکاری برای شکستن یک خط طولانی به چند خط، چه برای زیباسازی و چه برای غلبه بر محدودیت فوق، وجود ندارد.

گزینه‌های مختلف پیکربندی عبارتند از:

مشخص‌کننده URI(های) سرور(های) LDAP است که کتابخانه LDAP باید به آن متصل شود. طرحواره URI می‌تواند هر یک از ldap, ldaps یا ldapi, باشد که به‌ترتیب به LDAP بر بستر TCP،‏ LDAP بر بستر SSL (TLS) و LDAP بر بستر IPC (سوکت‌های دامنه UNIX) اشاره دارند. نام هر سرور می‌تواند به‌صورت یک نام دامنه‌ای یا یک آدرس IP صریح مشخص شود. به‌صورت اختیاری، نام سرور می‌تواند با یک ':' و شماره پورتی که سرور LDAP روی آن گوش می‌دهد دنبال شود. اگر شماره پورتی ارائه نشود، پورت پیشفرض برای آن طرحواره استفاده می‌شود (389 برای ldap:// و 636 برای ldaps://). برای LDAP بر بستر IPC، name نام سوکت است، و هیچ port دیگری نیاز نبوده و مجاز نیز نمی‌باشد؛ توجه داشته باشید که جداکننده‌های دایرکتوری باید مانند هر نویسه خاص دیگر در URLها، به‌صورت URL-encoded باشند؛ بنابراین سوکت

/usr/local/var/ldapi

باید به‌صورت

ldapi://%2Fusr%2Flocal%2Fvar%2Fldapi

مشخص شود.

می‌توان فهرستی از URIها را که با فاصله از هم جدا شده‌اند ارائه داد.

مقدار base DN پیش‌فرض را برای استفاده هنگام انجام عملیات‌های ldap مشخص می‌کند. مقدار base باید به صورت یک Distinguished Name در قالب LDAP مشخص شود.
مقدار bind DN پیش‌فرض را برای استفاده هنگام انجام عملیات‌های ldap مشخص می‌کند. مقدار bind DN باید به صورت یک Distinguished Name در قالب LDAP مشخص شود. این گزینه فقط مختص کاربر است.
چگونگی ارجاع‌زدایی از نام‌های مستعار را هنگام انجام جستجو مشخص می‌کند. مقدار <when> می‌تواند به عنوان یکی از کلیدواژه‌های زیر مشخص شود:
نام‌های مستعار هرگز ارجاع‌زدایی نمی‌شوند. این حالت پیش‌فرض است.
نام‌های مستعار در اشیاء زیرمجموعهٔ شیء پایه ارجاع‌زدایی می‌شوند، اما نه هنگام مکان‌یابی شیء پایهٔ جستجو.
نام‌های مستعار تنها هنگام مکان‌یابی شیء پایهٔ جستجو ارجاع‌زدایی می‌شوند.
نام‌های مستعار هم هنگام جستجو و هم هنگام مکان‌یابی شیء پایهٔ جستجو ارجاع‌زدایی می‌شوند.
نام سرور(های) LDAP را که کتابخانهٔ LDAP باید به آن متصل شود مشخص می‌کند. نام هر سرور می‌تواند به صورت یک نام دامنه‌ای یا یک نشانی IP مشخص شده و به صورت اختیاری یک ':' و شماره درگاهی که سرور ldap روی آن شنود می‌کند به دنبال آن بیاید. می‌توان فهرستی از میزبان‌ها را که با فاصله از هم جدا شده‌اند ارائه کرد. HOST منسوخ شده و گزینهٔ جایگزین آن عبارت است از URI.
تعداد ثانیه‌هایی را که یک اتصال باید پیش از آغاز ارسال کاوش‌های keepalive توسط TCP بیکار بماند، تنظیم/دریافت می‌کند. فقط در لینوکس.
حداکثر تعداد کاوش‌های keepalive را که TCP باید پیش از قطع اتصال ارسال کند، تنظیم/دریافت می‌کند. فقط در لینوکس.
فاصله زمانی بین هر یک از کاوش‌های keepalive را بر حسب ثانیه تنظیم/دریافت می‌کند. فقط در لینوکس.
مدت‌زمان انتظار (به ثانیه) را مشخص می‌کند که پس از آن، در صورت عدم فعالیت، poll(2)/select(2) به‌دنبال یک connect(2) بازمی‌گردد.
پورت پیش‌فرضی را مشخص می‌کند که هنگام اتصال به سرور(های) LDAP استفاده می‌شود. این پورت می‌تواند به‌صورت یک عدد مشخص شود. PORT به نفع URI منسوخ شده است.
مشخص می‌کند که آیا کلاینت باید ارجاعات بازگردانده‌شده توسط سرورهای LDAP را به‌طور خودکار دنبال کند یا خیر. پیشفرض on است. توجه داشته باشید که ابزارهای خط فرمان مانند ldapsearch(1) و موارد مشابه همیشه این گزینه را بازنویسی می‌کنند.
محدودیت اندازه (تعداد مدخل‌ها) را برای استفاده هنگام انجام جستجوها مشخص می‌کند. این عدد باید یک عدد صحیح غیرمنفی باشد. مقدار صفر (0) برای SIZELIMIT نشان‌دهنده درخواست برای اندازه جستجوی نامحدود است. لطفاً توجه داشته باشید که سرور ممکن است همچنان هرگونه محدودیت سمت سرور را بر روی تعداد مدخل‌های بازگردانده‌شده توسط یک عملیات جستجو اعمال کند.
آدرس IP مبدأ را جهت استفاده برای اتصال به سرور LDAP مقصد مشخص می‌کند. چندین آدرس IP باید با فاصله از یکدیگر جدا شوند. تنها یک آدرس IPv4 معتبر و/یا یک آدرس IPv6 معتبر در این فهرست مجاز است.
محدودیت زمانی (به ثانیه) را برای استفاده هنگام انجام جستجوها مشخص می‌کند. این عدد باید یک عدد صحیح غیرمنفی باشد. مقدار صفر (0) برای TIMELIMIT بیانگر زمان جستجوی نامحدود است. لطفاً توجه داشته باشید که سرور ممکن است همچنان هرگونه محدودیت سمت سرور را بر روی مدت‌زمان یک عملیات جستجو اعمال کند.
مشخص می‌کند که کدام نسخه از پروتکل LDAP باید استفاده شود.
مدت‌زمان انتظار (به ثانیه) را مشخص می‌کند که پس از آن، در صورت عدم دریافت پاسخ، فراخوانی‌های همگام APIهای LDAP لغو خواهند شد. همچنین برای هرگونه فراخوانی ldap_result(3) که در آن یک پارامتر timeout برابر با NULL مشخص شده باشد، استفاده می‌شود. I am checking the environment for any existing Persian man page translations and style guides for Parch Linux to ensure exact consistency.

اگر OpenLDAP با پشتیبانی از Simple Authentication and Security Layer ساخته شده باشد، گزینه‌های بیشتری وجود دارند که می‌توانید مشخص کنید.

سازوکار SASL مورد استفاده را مشخص می‌کند.
قلمرو (realm) مربوط به SASL را مشخص می‌کند.
شناسه احراز هویت را مشخص می‌کند. این گزینه تنها مخصوص کاربر است.
شناسه مجوز پروکسی را مشخص می‌کند. این گزینه تنها مخصوص کاربر است.
ویژگی‌های امنیتی Cyrus SASL را مشخص می‌کند. مقدار <properties> می‌تواند به صورت فهرستی از موارد زیر که با کاما از یکدیگر جدا شده‌اند مشخص شود:
(بدون هیچ ویژگی دیگری) باعث پاک شدن مقادیر پیش‌فرض ویژگی‌ها ("noanonymous,noplain") می‌شود.
سازوکارهای آسیب‌پذیر در برابر حملات غیرفعال ساده را غیرفعال می‌کند.
سازوکارهای آسیب‌پذیر در برابر حملات فعال را غیرفعال می‌کند.
سازوکارهای آسیب‌پذیر در برابر حملات واژه‌نامه‌ای غیرفعال را غیرفعال می‌کند.
سازوکارهایی را که از ورود ناشناس پشتیبانی می‌کنند غیرفعال می‌کند.
رازداری پیشرو (forward secrecy) میان نشست‌ها را الزامی می‌کند.
سازوکارهایی را الزامی می‌کند که اطلاعات اعتباری کلاینت را ارسال می‌کنند (و به سازوکارهایی که می‌توانند اطلاعات اعتباری را ارسال کنند اجازه انجام این کار را می‌دهد).
حداقل فاکتور استحکام امنیتی قابل قبول را به عنوان یک عدد صحیح تقریبی به طول کلید مؤثر مورد استفاده برای رمزنگاری مشخص می‌کند. 0 (صفر) به معنی عدم حفاظت است، 1 فقط حفاظت از یکپارچگی را می‌رساند، 128 به RC4، Blowfish و سایر رمزهای مشابه اجازه می‌دهد، 256 به رمزهای مدرن نیاز خواهد داشت. مقدار پیش‌فرض 0 است.
حداکثر فاکتور استحکام امنیتی قابل قبول را به عنوان یک عدد صحیح مشخص می‌کند (توضیحات minssf را ببینید). مقدار پیش‌فرض INT_MAX است.
حداکثر اندازه مجاز بافر دریافت لایه امنیتی را مشخص می‌کند. مقدار 0 لایه‌های امنیتی را غیرفعال می‌کند. مقدار پیش‌فرض 65536 است.
جستجوهای معکوس DNS را برای استانداردسازی نام‌های میزبان SASL انجام ندهید. مقدار پیش‌فرض off است.
نوع پیوند کانال (channel-binding) مورد استفاده؛ همچنین LDAP_OPT_X_SASL_CBINDING را ببینید. مقدار پیش‌فرض none است.

اگر OpenLDAP با پشتیبانی از Generic Security Services Application Programming Interface ساخته شده باشد، گزینه‌های بیشتری وجود دارند که می‌توانید مشخص کنید.

مشخص می‌کند که آیا امضای GSSAPI (GSS_C_INTEG_FLAG) باید استفاده شود یا خیر. مقدار پیش‌فرض off است.
مشخص می‌کند که آیا رمزنگاری GSSAPI (GSS_C_INTEG_FLAG و GSS_C_CONF_FLAG) باید استفاده شود یا خیر. مقدار پیش‌فرض off است.
مشخص می‌کند که آیا احراز هویت مبتنی بر GSSAPI باید تلاش کند نام principal هدف را از صفت ldapServiceName یا dnsHostName مدخل RootDSE هدف تشکیل دهد یا خیر. مقدار پیش‌فرض off است.

اگر OpenLDAP با پشتیبانی از Transport Layer Security ساخته شده باشد، گزینه‌های بیشتری وجود دارند که می‌توانید مشخص کنید. این گزینه‌ها زمانی استفاده می‌شوند که یک ldaps:// URI (به‌صورت پیش‌فرض یا غیر آن) انتخاب شده باشد، یا زمانی که برنامه با صدور عملیات StartTLS در LDAP، بر سر TLS مذاکره کند.

پرونده‌ای را مشخص می‌کند که حاوی گواهی‌های تمام مراجع صدور گواهی (Certificate Authorities) است که کلاینت آن‌ها را به رسمیت می‌شناسد.
مسیر پوشه‌هایی را مشخص می‌کند که حاوی گواهی‌های مراجع صدور گواهی در پرونده‌های مجزا و انفرادی هستند. می‌توان چندین پوشه را که با یک نقطه ویرگول از هم جدا شده‌اند مشخص کرد. گزینهٔ TLS_CACERT همیشه پیش از TLS_CACERTDIR استفاده می‌شود.
فایلی را مشخص می‌کند که شامل گواهی کلاینت است. این گزینه تنها مختص کاربر است.
نام منحنی(های) مورد استفاده برای تبادل کلید موقت دیفی-هلمن با منحنی بیضوی را مشخص می‌کند. این گزینه تنها برای OpenSSL استفاده می‌شود. این گزینه با GnuTLS استفاده نمی‌شود؛ منحنی‌ها ممکن است در مشخصات ciphersuite در GnuTLS انتخاب شوند.
فایلی را مشخص می‌کند که شامل کلید خصوصی منطبق با گواهی ذخیره‌شده در فایل TLS_CERT است. در حال حاضر، کلید خصوصی نباید با گذرواژه محافظت شود، بنابراین محافظت دقیق از فایل کلید از اهمیت حیاتی برخوردار است. این گزینه تنها مختص کاربر است.
مجموعه‌رمزهای قابل‌قبول و ترتیب اولویت آن‌ها را مشخص می‌کند. <cipher-suite-spec> باید یک مشخصهٔ رمز برای کتابخانهٔ TLS مورد استفاده (OpenSSL یا GnuTLS) باشد. مثال:
TLS_CIPHER_SUITE HIGH:MEDIUM:+SSLv2
TLS_CIPHER_SUITE SECURE256:!AES-128-CBC

برای بررسی این‌که یک مشخصه در OpenSSL چه رمزهایی را انتخاب می‌کند، از دستور زیر استفاده کنید:

openssl ciphers -v <cipher-suite-spec>

در GnuTLS، مشخصات موجود را می‌توان در صفحهٔ راهنمای gnutls-cli(1) یافت (توضیحات گزینهٔ --priority را ببینید).

در نسخه‌های قدیمی‌تر GnuTLS که gnutls-cli از گزینهٔ --priority پشتیبانی نمی‌کند، می‌توانید فهرست — محدودتر — رمزها را با فراخوانی دستور زیر به دست آورید:

gnutls-cli -l
حداقل نسخه پروتکل SSL/TLS را که مذاکره خواهد شد، مشخص می‌کند. اگر سرور حداقل از آن نسخه پشتیبانی نکند، دست‌دهی SSL با شکست مواجه خواهد شد. برای الزام TLS 1.x یا بالاتر، این گزینه را روی 3.(x+1) تنظیم کنید، برای مثال:
TLS_PROTOCOL_MIN 3.2

نیازمند TLS 1.1 خواهد بود. مشخص کردن مقداری حداقلی که بالاتر از مقدار پشتیبانی‌شده توسط پیاده‌سازی OpenLDAP باشد، منجر به الزامی شدن بالاترین سطحی می‌شود که از آن پشتیبانی می‌کند. این پارامتر با GnuTLS نادیده گرفته می‌شود.

فایلی را برای دریافت بیت‌های تصادفی در زمانی که /dev/[u]random در دسترس نیست مشخص می‌کند. معمولاً روی نام سوکت EGD/PRNGD تنظیم می‌شود. از متغیر محیطی RANDFILE نیز می‌توان برای مشخص کردن نام فایل استفاده کرد. این پارامتر با GnuTLS نادیده گرفته می‌شود.
مشخص می‌کند چه بررسی‌هایی روی گواهی‌های سرور در یک نشست TLS انجام شود. مقدار <level> می‌تواند به عنوان یکی از کلیدواژه‌های زیر مشخص شود:
کلاینت هیچ گواهی سروری را درخواست یا بررسی نخواهد کرد.
گواهی سرور درخواست می‌شود. اگر گواهی نامعتبری ارائه شود، نادیده گرفته شده و نشست به صورت عادی ادامه می‌یابد.
گواهی سرور درخواست می‌شود. اگر گواهی نامعتبری ارائه شود، نشست بلافاصله خاتمه می‌یابد.
این کلیدواژه‌ها معادل یکدیگر و همانند try هستند. این تنظیم پیش‌فرض است.
مشخص می‌کند هنگام اعتبارسنجی نام گواهی در برابر نام میزبان مشخص‌شده برای سرور، چه بررسی‌هایی روی افزونه‌های subjectAlternativeName (SAN) در گواهی سرور انجام شود. مقدار <level> می‌تواند به عنوان یکی از کلیدواژه‌های زیر مشخص شود:
کلاینت هیچ SANای را در گواهی بررسی نخواهد کرد.
مقدار SAN در برابر نام میزبان مشخص‌شده بررسی می‌شود. اگر SAN وجود داشته باشد اما هیچ‌کدام با نام میزبان مشخص‌شده مطابقت نداشته باشد، SANها نادیده گرفته می‌شوند و بررسی معمول در برابر DN گواهی اعمال می‌شود. این تنظیم پیش‌فرض است.
مقدار SAN در برابر نام میزبان مشخص‌شده بررسی می‌شود. اگر هیچ SANای در گواهی سرور وجود نداشته باشد، بررسی معمول در برابر DN گواهی استفاده می‌شود. اگر SAN وجود داشته باشد اما با نام میزبان مشخص‌شده مطابقت نداشته باشد، نشست بلافاصله خاتمه می‌یابد. این تنظیم ممکن است زمانی ترجیح داده شود که ترکیبی از گواهی‌های دارای SAN و بدون SAN در حال استفاده باشند.
این کلیدواژه‌ها معادل یکدیگرند. مقدار SAN در برابر نام میزبان مشخص‌شده بررسی می‌شود. اگر هیچ SANای در گواهی سرور وجود نداشته باشد یا هیچ SANای مطابقت نداشته باشد، نشست بلافاصله خاتمه می‌یابد. این تنظیم باید زمانی استفاده شود که تنها از گواهی‌های دارای SAN استفاده می‌شود.
مشخص می‌کند که آیا فهرست ابطال گواهی (CRL) متعلق به CA باید برای بررسی باطل نشدن گواهی‌های سرور استفاده شود یا خیر. این مورد نیازمند تنظیم پارامتر TLS_CACERTDIR است. این پارامتر در GnuTLS نادیده گرفته می‌شود. <level> می‌تواند به عنوان یکی از کلیدواژه‌های زیر مشخص شود:
هیچ بررسی CRLای انجام نمی‌شود
بررسی CRL گواهی همتا (peer)
بررسی CRL برای کل زنجیرهٔ گواهی
فایلی حاوی یک فهرست ابطال گواهی (CRL) را مشخص می‌کند که برای بررسی باطل نشدن گواهی‌های سرور استفاده می‌شود. این پارامتر فقط در GnuTLS پشتیبانی می‌شود.

غیرفعال کردن تمام پیش‌فرض‌ها
مسیر یک فایل پیکربندی
نام پایه فایل ldaprc در $HOME یا $CWD
تنظیم <option-name> همانند ldap.conf

فایل پیکربندی سراسری ldap
$HOME/ldaprc, $HOME/.ldaprc
فایل پیکربندی کاربر ldap
$CWD/ldaprc
فایل پیکربندی محلی ldap

ldap(3), ldap_set_option(3), ldap_result(3), openssl(1), sasl(3)

Kurt Zeilenga, The OpenLDAP Project

See the file ../Project.

RELEASEDATE OpenLDAP LDVERSION