После установки OpenLDAP в gentoo по умолчанию для его настройки предлагается использовать файл /etc/openldap/slapd.conf, пример которого, взятый из дистрибутива, уже находится в директории /etc/openldap. К слову, там же находится и LDIF-файл slapd.ldif, с помощью которого, при некоторых навыках, можно поднять аналогичную конфигурацию cn=config.
slapd, как и любой другой демон в gentoo, после установки самостоятельно не запускается, при необходимости его следует запустить вручную скриптом /etc/init.d/slapd.
Поскольку мы будем использовать конфигурацию cn=config и собираемся инициализировать её самостоятельно, всё, что нам потребуется на этапе подготовки — указать нужные параметры запуска для скрипта /etc/init.d/slapd в файле /etc/conf.d/slapd. В этом файле задаётся ряд переменных окружения, которые будут использоваться в стартовом скрипте для формирования строки вызова slapd и других целей. Примерное содержимое файла (на текущий момент для версий 2.4.28 и выше):
# conf.d file for openldap## To enable both the standard unciphered server and the ssl encrypted# one uncomment this line or set any other server starting options# you may desire.# If you have multiple slapd instances per #376699, this will provide a default configINSTANCE="openldap${SVCNAME#slapd}"# If you use the classical configuration file:OPTS_CONF="-f /etc/${INSTANCE}/slapd.conf"# Uncomment this instead to use the new slapd.d configuration directory for openldap 2.3#OPTS_CONF="-F /etc/${INSTANCE}/slapd.d"# (the OPTS_CONF variable is also passed to slaptest during startup)OPTS="${OPTS_CONF} -h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"# Optional connectionless LDAP:#OPTS="${OPTS_CONF} -h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock cldap://'"# If you change the above listen statement to bind on a specific IP for# listening, you should ensure that interface is up here (change eth0 as# needed).#rc_need="net.eth0"# Specify the kerberos keytab file#KRB5_KTNAME=/etc/openldap/krb5-ldap.keytab
Нас интересуют две основные переменные — OPTS_CONF, задающая путь к файлу или директории конфигурации, и OPTS, включающая в себя первую и определяющая другие опции командной строки slapd, в частности, -h (на каких интерфейсах и портах slapd будет ожидать подключения). В нашем случае мы зададим их так:
OPTS_CONF="-F /etc/${INSTANCE}/slapd.dOPTS="${OPTS_CONF} -h 'ldap://'
То есть мы будем осуществлять настройку посредством каталога cn=config, путь к физической директории которого будет /etc/openldap/slapd.d, и, на этапе настройки будем подключаться к slapd на любой сетевой интерфейс сервера на стандартный порт 389 (без TLS). Итоговый файл /etc/conf.d/slapd (без лишних комментариев) будет выглядеть так:
INSTANCE="openldap${SVCNAME#slapd}"#OPTS_CONF="-f /etc/${INSTANCE}/slapd.conf"OPTS_CONF="-F /etc/${INSTANCE}/slapd.d"OPTS="${OPTS_CONF} -h 'ldap://'#OPTS="${OPTS_CONF} -h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"#OPTS="${OPTS_CONF} -h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock cldap://'"#rc_need="net.eth0"#KRB5_KTNAME=/etc/openldap/krb5-ldap.keytab
Всё, можно приступать к инициализации каталога cn=config