Установка OpenLdap в Debian Squeeze.

Что такое Ldap очень хорошо описано в статье LDAP: каталог для всех
Для чего используется читайте Централизованная схема управления сетью с использованием OpenLDAP

Установка в Debian
#aptitude install slapd ldap-utils
В процессе установки нужно будет создать пароль администратора.

Настройка

Открываем в любимом редакторе файл /etc/ldap/ldap.conf
Изменяем или добавляем строки
BASE dc=example,dc=com
URI ldap://ldap.example.com/

В новых версиях OpenLdap начиная с 2.4.23-3 в Debian вы не найдете конфигурационного файла slapd.conf. Дело в том что Debian переходит на динамический конфиг cn=config взамен устаревшего статического slapd.conf. Все конфиги теперь располагаются в каталоге /etc/ldap/slapd.d/, ни в коем случае напрямую эти файлы править нельзя. Это можно сделать следующими способами.
В интерактивном режиме в командной строке
Добавим пару индексов для лучшей производительности как советуют на http://wiki.debian.org/LDAP/OpenLDAPSetup.

Смотрим какие индексы созданы по умолчанию
#ldapsearch -LLLQY EXTERNAL -H ldapi:/// -b cn=config olcDatabase={1}hdb olcDbIndex
dn: olcDatabase={1}hdb,cn=config
olcDbIndex: objectClass eq
ldapsearch - утилита для поиска в LDAP.
-LLL - первая L ограничивает вывод форматом LDIFv1, вторая L удаляет в выводе комментарии к конфигу, третья L убирает название версии в выводе.
-H идентификатор ресурса. ldapi указывает на то что мы подключаемся через UNIX -сокет.
-b - указывает точку начала поиска. В нашем случае поиск начинается с ветки cn=config ищем все записи относящиеся к экземпляру базы данный hdb с индексом {1}, показать индексы для этой бд olcDbIndex.
Добавим индексы в интерактивном режиме в командной строке.
Входим в интерактивный режим
#ldapmodify -QY EXTERNAL -H ldapi:///
Набираем внимательно после перехода на следующую строку вернуться на предыдущую для исправления не получится и придется заново входить в интерактивный режим и набирать все заново.
dn: olcDatabase={1}hdb,cn=config #Уникальное имя. Запись
add:olcDbIndex # действие:имя_атрибута
olcDbIndex: cn pres,sub,eq #атрибут:значение 
olcDbIndex: sn pres,sub,eq #атрибут:значение 
olcDbIndex: uid pres,sub,eq #атрибут:значение 
olcDbIndex: displayName pres,sub,eq #атрибут:значение 
olcDbIndex: default sub #атрибут:значение 
olcDbIndex: uidNumber eq #атрибут:значение 
olcDbIndex: gidNumber eq #атрибут:значение 
olcDbIndex: mail,givenName eq,subinitial #атрибут:значение 
olcDbIndex: dc eq #атрибут:значение 
Нажимаем Ctrl+D.
modifying entry "olcDatabase={1}hdb,cn=config"
#
Проверяем
# ldapsearch -LLLQY EXTERNAL -H ldapi:/// -b cn=config olcDatabase={1}hdb olcDbIndex
dn: olcDatabase={1}hdb,cn=config
olcDbIndex: objectClass eq
olcDbIndex: cn pres,sub,eq
olcDbIndex: sn pres,sub,eq
olcDbIndex: uid pres,sub,eq
olcDbIndex: displayName pres,sub,eq
olcDbIndex: default sub
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: mail,givenName eq,subinitial
olcDbIndex: dc eq
Один из плюсов динамического конфига в том что изменения вступают в силу сразу, без перезагрузки.

Другой способ изменить конфигурацию, с помощью заранее подготовленyого файла в формате LDIF.
1. Первая строчка должна содержать версию используемого формата 1, в противном случае возможна ситуация когда ваш файл будет интерпретироваться как старый формат. Это требование rfc 2849, для современных реализаций ldap серверов это не обязательно.
version: 1
2. Если вы хотите добавить комментарий то строчка должна начинаться с символа "#".
3. Задаем уникальное имя записи(dn) с которой мы будет производить какие-то действия. В нашем случае dn: olcDatabase={1}hdb,cn=config
4. Задаем действие(changetype), применимое к записи(entry). Действия могут быть следующими: add - добавить новую запись, delete - удалить, modify - изменить и modrdn - изменить относительное уникальное имя записи rdn.
В нашем случае мы хотим изменить данные уникальное имя которой dn: olcDatabase={1}hdb,cn=config следовательно указываем
changetype: modify
5. Далее указываем что мы хотим сделать внутри записи, доступные действия add добавить, delete удалить, replace заменить или изменить. Мы хотим добавить атрибуты olcDbIndex
add: olcDbIndex
6. Список атрибут:значение
olcDbIndex: cn pres,sub,eq
olcDbIndex: sn pres,sub,eq
olcDbIndex: uid pres,sub,eq
olcDbIndex: displayName pres,sub,eq
olcDbIndex: default sub
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: mail,givenName eq,subinitial
olcDbIndex: dc eq
В итоге содержание файла должно выглядеть следующим образом:

version: 1
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: cn pres,sub,eq
olcDbIndex: sn pres,sub,eq
olcDbIndex: uid pres,sub,eq
olcDbIndex: displayName pres,sub,eq
olcDbIndex: default sub
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: mail,givenName eq,subinitial
olcDbIndex: dc eq
Сохраняем все это в файл и выполняем команду.
Я сохранил в текущий каталог, имя файла test
# ldapmodify -QY EXTERNAL -H ldapi:/// -f ./test 
modifying entry "olcDatabase={1}hdb,cn=config"

Комментарии

Популярные сообщения