После установки 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 config
INSTANCE="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.d
OPTS="${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