LDAP.CONF(5)

НАЗВАНИЕ

ldap.conf, .ldaprc - конфигурационный файл/переменные окружения для LDAP-клиентов

ОБЗОР

/usr/local/etc/openldap/ldap.conf, ldaprc, .ldaprc, $LDAP<option-name>

ОПИСАНИЕ

Если определена переменная окружения LDAPNOINIT, все заданные значения по умолчанию не применяются.

Конфигурационный файл ldap.conf используется для задания общесистемных значений по умолчанию, применяемых при запуске ldap-клиентов.

Пользователи могут создавать в своих домашних директориях опциональные конфигурационные файлы ldaprc или .ldaprc, которые будут использованы для переопределения значений по умолчанию из общесистемного файла. Кроме того, будут применяться значения из файла ldaprc в текущей рабочей директории.

С помощью переменных окружения LDAPCONF и LDAPRC можно указать использование дополнительных конфигурационных файлов. В переменной LDAPCONF может быть задан путь к конфигурационному файлу. Этот путь может быть как абсолютным, так и относительным (от текущей рабочей директории). Если указывается переменная LDAPRC, то в ней должно быть задано имя файла в текущей рабочей директории или в домашней директории пользователя.

Для переопределения значений по умолчанию из файлов можно также использовать переменные окружения. Имя такой переменной представляет собой имя опции файла с добавлением префикса LDAP. Например, для определения опции BASE через окружение, нужное значение указывается в переменной LDAPBASE.

Некоторые опции может задавать только пользователь. Такие опции игнорируются при их указании в ldap.conf (или файле, заданном в переменной LDAPCONF).

Итак, файлы и переменные будут прочитаны в следующем порядке:

    переменная              $LDAPNOINIT, и, если она не задана, то:
    системный файл          /usr/local/etc/openldap/ldap.conf,
    пользовательские файлы  $HOME/ldaprc,  $HOME/.ldaprc,  ./ldaprc,
    системный файл          $LDAPCONF,
    пользовательские файлы  $HOME/$LDAPRC, $HOME/.$LDAPRC, ./$LDAPRC,
    переменные              $LDAP<имя опции заглавными буквами>.

Более поздние в списке установки переопределяют более ранние.

СИНТАКСИС

Названия опций конфигурации нечувствительны к регистру символов; их значения, в зависимости от ситуации, могут быть чувствительны к регистру символов.

Пустые строки игнорируются.
Строки, начинающиеся с символа решётки (`#'), являются комментариями и игнорируются.

Значимые строки состоят из названия опции (последовательности непробельных символов, по традиции записываемых в верхнем регистре, хотя такое требование не выдвигается), за которым следует значение. Значение начинается с первого непробельного символа после названия опции и завершается в конце строки, либо перед первым пробельным символом последовательности пробельных символов, которыми завершается строка. Разбиение значения на составляющие, если таковые имеются, делегируется определённому для этой опции обработчику (обработчикам), опять же, при их наличии. Значения в кавычках, содержащие пробельные символы, могут быть некорректными, поскольку символ кавычек может стать частью значения. Например,

	# Неверно - ошибочные кавычки:
	URI     "ldap:// ldaps://"

	# Верно - разделённый пробелами список URI, без кавычек:
	URI     ldap:// ldaps://

	# Верно - синтаксис DN требует заключать в кавычки Example, Inc:
	BASE    ou=IT staff,o="Example, Inc",c=US
	# или:
	BASE    ou=IT staff,o=Example\2C Inc,c=US

	# Неверно - комментарий на одной строке с опцией:
	DEREF   never           # Never follow aliases

Строка не может быть длиннее значения LINE_MAX, которое должно превышать 2000 на всех платформах. Не предусмотрено механизмов разбиения длинной строки на несколько строк (как в целях повышения читабельности, так и в целях недопущения превышения указанного лимита).

ОПЦИИ

Опции конфигурации различного назначения:

URI <ldap[si]://[name[:port]] ...>

Указывает 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; таким образом, сокет

/usr/local/var/ldapi

должен быть указан как

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

В данной опции может быть предоставлен список URI, разделённых пробелами.

BASE <base>

Определяет базовое DN, использующееся по умолчанию при выполнении операций ldap. Аргумент base должен быть указан как уникальное имя (Distinguished Name) в формате LDAP.

BINDDN <dn>

Определяет DN подключения, использующееся по умолчанию при выполнении операций ldap. DN подключения должен быть указан как уникальное имя (Distinguished Name) в формате LDAP. Эту опцию может задавать только пользователь.

DEREF <when>

Определяет, как будет осуществляться разыменование псевдонимов при выполнении поиска. В качестве аргумента <when> может быть указано одно из следующих ключевых слов:

never

Псевдонимы не разыменовываются никогда. Это значение по умолчанию.

searching

Псевдонимы разыменовываются, если они встречаются в нижестоящих по отношению к базе поиска объектах, но не разыменовываются при нахождении самого объекта базы поиска.

finding

Псевдонимы разыменовываются только при нахождении объекта базы поиска.

always

Псевдонимы разыменовываются как при осуществлении поиска, так и при нахождении объекта базы поиска.

HOST <name[:port] ...>

Указывает имя (имена) LDAP-сервера (серверов), к которым следует осуществлять подключение библиотеке LDAP. Каждое имя сервера может быть указано как доменное имя или как IP-адрес. Опционально, за именем сервера может следовать знак ':' и номер порта, на котором ожидает подключения LDAP-сервер. В данной опции может быть предоставлен список хостов, разделённых пробелами. Опция HOST считается устаревшей в пользу URI.

NETWORK_TIMEOUT <integer>

Указывает тайм-аут (в секундах), после которого вслед за вызовом connect(2), в случае отсутствия активности, возвращаются poll(2)/select(2).

PORT <port>

Определяет порт по умолчанию, используемый при соединении с LDAP-сервером (серверами). В качестве аргумента port указывается номер порта. Опция PORT считается устаревшей в пользу URI.

REFERRALS <on/true/yes/off/false/no>

Указывает, должен ли клиент автоматически следовать по отсылкам, возвращаемым LDAP-серверами. Значение по умолчанию - on. Имейте ввиду, что инструменты командной строки, такие как ldapsearch(1), всегда переопределяют эту опцию.

SIZELIMIT <integer>

Определяет ограничение по размеру (указывается в количестве записей), которое следует использовать при выполнении поиска. В качестве аргумента должно быть неотрицательное целое число. Значение ноль (0) опции SIZELIMIT указывает на то, что ограничений по размеру при выполнении поиска не запрашивается. Помните, что сервер может также применять свои ограничения на количество записей, которые могут быть возвращены операцией поиска.

TIMELIMIT <integer>

Определяет ограничение по времени (в секундах), которое следует использовать при выполнении поиска. В качестве аргумента должно быть неотрицательное целое число. Значение ноль (0) опции TIMELIMIT указывает на то, что ограничений по размеру при выполнении поиска не накладывается. Помните, что сервер может также применять свои ограничения на продолжительность выполнения операции поиска.

2.4.47 {2|3}

Указывает, какую версию протокола LDAP следует использовать.

TIMEOUT <integer>

Указывает тайм-аут (в секундах), после которого вызовы команд синхронного API LDAP, на которые не получены ответы, будут прерваны. Также используются для любых вызовов ldap_result(3), в которых параметру timeout было задано значение NULL.

ОПЦИИ SASL

Если OpenLDAP собран с поддержкой Simple Authentication and Security Layer, можно определить дополнительные опции:

SASL_MECH <mechanism>

Указывает, какой механизм SASL следует использовать.

SASL_REALM <realm>

Указывает SASL-realm.

SASL_AUTHCID <authcid>

Указывает аутентификационную идентификационную сущность. Эту опцию может задавать только пользователь.

SASL_AUTHZID <authcid>

Указывает прокси-авторизационную идентификационную сущность. Эту опцию может задавать только пользователь.

SASL_SECPROPS <properties>

Определяет параметры безопасности Cyrus SASL. В аргументе <properties> может быть указан разделённый запятыми список следующих параметров:

none

(без указания каких-либо других параметров) приводит к сбросу параметров по умолчанию ("noanonymous,noplain").

noplain

отключает механизмы, потенциально неустойчивые к простым пассивным атакам.

noactive

отключает механизмы, потенциально неустойчивые к активным атакам.

nodict

отключает механизмы, потенциально неустойчивые к простым атакам по словарю.

noanonymous

отключает механизмы, поддерживающие анонимные соединения.

forwardsec

требует обеспечения так называемой прямой секретности (forward secrecy) между сессиями.

passcred

требует использования механизмов, осуществляющих передачу удостоверяющих данных клиента (и, для осуществления этого, разрешает механизмы, способные передавать удостоверяющие данные).

minssf=<factor>

указывает минимально приемлемый фактор силы безопасности (security strength factor) в виде целого числа, приблизительно отражающего эффективную длину ключа, используемого для шифрования. 0 (ноль) подразумевает отсутствие защиты, 1 подразумевает только защиту целостности данных, 56 разрешает использование DES или других слабых шифров, 112 разрешает использование Triple DES и других сильных шифров, 128 разрешает использование RC4, Blowfish и других современных сильных шифров. Значение по умолчанию - 0.

maxssf=<factor>

указывает максимально возможный фактор силы безопасности (security strength factor) в виде целого числа (смотрите описание опции minssf). Значение по умолчанию - INT_MAX.

maxbufsize=<factor>

определяет максимально разрешённый размер буфера полученных уровней обеспечения безопасности. Значение 0 отключает уровни обеспечения безопасности. Значение по умолчанию - 65536.

SASL_NOCANON <on/true/yes/off/false/no>

Не выполнять обратные DNS-запросы для поиска канонической формы имён хостов SASL. Значение по умолчанию - off.

ОПЦИИ GSSAPI

Если OpenLDAP собран с поддержкой Generic Security Services Application Programming Interface, есть возможность определить дополнительные опции.

GSSAPI_SIGN <on/true/yes/off/false/no>

Указывает, следует ли использовать подписи GSSAPI (GSS_C_INTEG_FLAG). Значение по умолчанию - off.

GSSAPI_ENCRYPT <on/true/yes/off/false/no>

Указывает, следует ли использовать шифрование GSSAPI (GSS_C_INTEG_FLAG и GSS_C_CONF_FLAG). Значение по умолчанию - off.

GSSAPI_ALLOW_REMOTE_PRINCIPAL <on/true/yes/off/false/no>

Указывает, следует ли основанной на GSSAPI аутентификации пытаться формировать имя целевого принципала из значений атрибутов ldapServiceName или dnsHostName записи RootDSE каталога, содержащего целевой объект. Значение по умолчанию - off.

ОПЦИИ TLS

Если OpenLDAP собран с поддержкой Transport Layer Security, есть возможность определить дополнительные опции. Эти опции используются, когда при соединении выбран URI ldaps:// (по умолчанию или явно), или когда приложение устанавливает TLS путём запроса операции LDAP StartTLS.

TLS_CACERT <filename>

Указывает файл, содержащий сертификаты всех удостоверяющих центров (Certificate Authorities), которым доверяет клиент.

TLS_CACERTDIR <path>

Указывает путь к директории, содержащей сертификаты всех удостоверяющих центров в отдельных файлах. Сертификаты, указанные в опции TLS_CACERT, всегда используются перед теми, путь к которым указан в опции TLS_CACERTDIR. Библиотека GnuTLS игнорирует эту опцию.

При использовании библиотеки Mozilla NSS аргумент <path> может содержать путь к базе данных сертификатов/ключей Mozilla NSS. Если аргумент <path> содержит пути и к базе данных сертификатов/ключей Mozilla NSS, и к файлам сертификатов удостоверяющих центров, OpenLDAP будет использовать базу данных сертификатов/ключей, а файлы сертификатов удостоверяющих центров проигнорирует.

TLS_CERT <filename>

Указывает файл, содержащий сертификат клиента. Эту опцию может задавать только пользователь.

При использовании библиотеки Mozilla NSS и базы данных сертификатов/ключей (указанной в опции TLS_CACERTDIR), TLS_CERT определяет имя сертификата, который нужно использовать:

	TLS_CERT Certificate for Sam Carter

Если используется токен, отличный от встроенного внутреннего, сначала указывается имя этого токена, за которым следует двоеточие:

	TLS_CERT my hardware device:Certificate for Sam Carter

Для получения списка имён сертификатов используйте certutil -L:

	certutil -d /path/to/certdbdir -L
TLS_KEY <filename>

Указывает файл, содержащий закрытый ключ, соответствующий сертификату, хранящемуся в файле, указанном в опции TLS_CERT. В настоящее время данный закрытый ключ должен не иметь парольной защиты, поэтому критически важное значение имеет защита самого файла с ключом. Эту опцию может задавать только пользователь.

При использовании библиотеки Mozilla NSS, TLS_KEY указывает имя файла, содержащего пароль для ключа, соответствующего сертификату, указанному в опции TLS_CERT. Для отключения парольной защиты базы данных сертификатов/ключей можно использовать команду modutil. Например, если в опции TLS_CACERTDIR в качестве расположения базы данных сертификатов/ключей указано /home/scarter/.moznss, то для смены пароля на пустую строку используйте:

	modutil -dbdir ~/.moznss -changepw 'NSS Certificate DB'

Вы должны знать предыдущий пароль, если он был установлен. Предупреждение о запуске браузера следует проигнорировать. На запрос нового пароля нажмите 'Enter'.

TLS_CIPHER_SUITE <cipher-suite-spec>

Указывает допустимый набор шифров в порядке их предпочтения. Аргумент <cipher-suite-spec> должен представлять собой спецификацию шифров для используемой библиотеки TLS (OpenSSL, GnuTLS или Mozilla NSS). Примеры:

OpenSSL:

TLS_CIPHER_SUITE HIGH:MEDIUM:+SSLv2

GnuTLS:

TLS_CIPHER_SUITE SECURE256:!AES-128-CBC

Для проверки того, какие шифры доступны в данной спецификации OpenSSL, используйте команду:

	openssl ciphers -v <cipher-suite-spec>

В GnuTLS доступные спецификации можно найти в man-странице gnutls-cli(1) (смотрите описание опции --priority).

В старых версиях библиотеки GnuTLS, где утилита gnutls-cli не поддерживала опции --priority, можно получить — ограниченный — список шифров командой:

	gnutls-cli -l

При использовании библиотеки Mozilla NSS применяются спецификации наборов шифров OpenSSL, которые транслируются в формат, используемый внутри библиотеки Mozilla NSS. Не существует простого способа получить список наборов шифров из командной строки. Полный список можно найти в исходном коде Mozilla NSS, файл sslinfo.c, структура

        static const SSLCipherSuiteInfo suiteInfo[]
TLS_PROTOCOL_MIN <major>[.<minor>]

Указывает минимальную версию протокола SSL/TLS, которая будет использоваться для установки защищённого соединения. Если сервер не поддерживает как минимум данную версию протокола, переговоры SSL будут завершаться неудачей. Чтобы указать необходимость использования TLS 1.x или выше, задайте в качестве аргумента этой опции 3.(x+1), то есть при

	TLS_PROTOCOL_MIN 3.2

требуется использовать TLS 1.1. Если в качестве минимально допустимой указана та версия протокола, которая не поддерживается данной реализацией OpenLDAP, то в итоге будет требоваться та наибольшая версия протокола, которую OpenLDAP поддерживает. Библиотека GnuTLS игнорирует эту опцию.

TLS_RANDFILE <filename>

Указывает файл, из которого будут получены случайные данные, в случаях, когда /dev/[u]random недоступен. Обычно задаёт имя сокета EGD/PRNGD. Для указания имени файла источника случайных данных также может быть использована переменная окружения RANDFILE. Библиотеки GnuTLS и Mozilla NSS игнорируют эту опцию.

TLS_REQCERT <level>

Определяет, какие проверки требуется (и требуется ли вообще) выполнить с сертификатом сервера в сессии TLS. В качестве аргумента <level> может быть использовано одно из следующих ключевых слов:

never

Клиент не будет запрашивать или проверять какие-либо сертификаты сервера.

allow

Сертификат сервера будет запрошен. Если сертификат не был предоставлен, сессия будет продолжена нормальным образом. Если же был предоставлен плохой сертификат, он будет проигнорирован и сессия будет продолжена нормальным образом.

try

Сертификат сервера будет запрошен. Если сертификат не был предоставлен, сессия будет продолжена нормальным образом. Если же был предоставлен плохой сертификат, сессия будет немедленно завершена.

demand | hard

Эти ключевые слова эквивалентны. Сертификат сервера будет запрошен. Если сертификат не был предоставлен либо был предоставлен плохой сертификат, сессия будет немедленно завершена. Данная настройка используется по умолчанию.

TLS_CRLCHECK <level>

Определяет, следует ли использовать предоставляемые удостоверяющими центрами списки отзыва сертификатов (Certificate Revocation List, CRL) для проверки того, не был ли отозван сертификат сервера. Для использования данной опции требуется указание опции TLS_CACERTDIR. Библиотеки GnuTLS и Mozilla NSS игнорируют эту опцию. В качестве аргумента <level> может быть использовано одно из следующих ключевых слов:

none

Проверка CRL не выполняется.

peer

Выполняется проверка только CRL удостоверяющего центра, выдавшего сертификат сервера.

all

Выполняется проверка CRL всей цепочки сертификатов.

TLS_CRLFILE <filename>

Указывает файл, содержащий список отозванных сертификатов, который нужно использовать для проверки того, не был ли отозван сертификат сервера. Эта опция поддерживается только библиотеками GnuTLS и Mozilla NSS.

ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ

LDAPNOINIT

сбросить все установки по умолчанию.

LDAPCONF

путь к конфигурационному файлу.

LDAPRC

имя альтернативного для ldaprc файла в директориях $HOME или $CWD.

LDAP<option-name>

задать (переопределить) опцию <option-name> как в файле ldap.conf.

ФАЙЛЫ

/usr/local/etc/openldap/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, Проект OpenLDAP

ПРИЗНАНИЕ ЗАСЛУГ

Программное обеспечение OpenLDAP разработано и поддерживается проектом OpenLDAP <http://www.openldap.org/>. Программное обеспечение OpenLDAP является производным от релиза 3.3 LDAP Мичиганского Университета.

OpenLDAP 2.4.47 LDAP.CONF(5) 2018/12/19