Базовая настройка openldap с использованием конфигурации slapd.d

14

Я пытаюсь настроить тестовый сервер openldap, раньше не работал с openldap. Я использую стандартный пакет openldap-servers на машине, основанной на redhat (используя Oracle Linux). Я установил пакеты и запустил сервер.

Теперь я понятия не имею, как заставить сервер делать что-то полезное; Я не могу просмотреть его с помощью luma («Нет такого объекта» при попытке получить доступ к записи верхнего уровня), документы openldap тупы относительно того, как вы на самом деле приводите сервер в базовое рабочее состояние, и всей информации в Интернете. это для старого файла slapd.conf, а не для новых slapd.d и cn = config.

Как заставить работать пакет openldap в ванильной упаковке, где я могу найти root dn в luma?

thecoop
источник

Ответы:

20

Я чувствую твою боль.

Попробуйте это (он протестирован на Scientific Linux 6.5, поэтому он должен работать и на OL):

  • Установка серверов OpenLDAP: yum install openldap-servers openldap-clients)
  • начать slapd: service slapd start(и может быть chkconfig slapd on)
  • Создайте пароли для cn=configвашего и обычного администратора LDAP с помощью slappasswd. Обратите внимание на результат этого.
  • Создайте файл LDIF со следующим содержимым:
dn: olcDatabase = {0} config, cn = config
изменить тип: изменить
добавить: olcRootPW
olcRootPW: {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj

dn: olcDatabase = {2} bdb, cn = config
изменить тип: изменить
добавить: olcRootPW
olcRootPW: {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj
-
заменить: olcRootDN
olcRootDN: cn = admin, dc = ваш, dc = базовый, dc = com
-
заменить: olcSuffix
olcSuffix: dc = ваш, dc = базовый, dc = com
  • Значения для olcRootPWдолжны быть заменены на вывод, который slappaswdвы отметили ранее.
  • Естественно, olcSuffixи olcRootDNдолжны быть адаптированы к вашему новому базовому DN.
  • Передайте все это на сервер LDAP с помощью следующей команды:

    ldapmodify -a -Q -Y EXTERNAL -H ldapi:/// -f yourfile.ldif

После этого вы сможете подключиться к обоим cn=configи dc=your,dc=base,dc=comчерез LDAP.

Свен
источник
7
Спасибо, это как кошмар для начинающих. Конфиг есть, но в первых строках slap.d / * - НЕ РЕДАКТИРОВАТЬ, а все инструкции / руководства по началу работы / руководства рассказывают об «открытой конфигурации в вашем любимом редакторе»
fghj,
9

Прежде чем запустить сервер OpenLDAP, вам нужно сначала настроить несколько вещей.

Базовая конфигурация

Вам необходимо настроить пользователя root и пароль, а также определить базовый DN. В slapd.conf, найдите строки, следующие за строками, и установите для них нужные значения.

suffix "dc=example,dc=com"
rootdn "cn=root,dc=example,dc=com"

Обычно ваш базовый DN (определенный как suffixв файле) - это компоненты вашего доменного имени, разделенные запятыми и с префиксом dc=. Итак, serverfault.comможет стать dc=serverfault,dc=com. Вы rootdnдолжны быть под этим суффиксом.

Вам также необходимо изменить строку, которая определяет пароль пользователя root. Вы можете установить его в виде открытого текста или использовать slappasswdдля создания хэша. Затем вам нужно поместить либо значение открытого текста, либо значение хеширования slappasswdв строку, которая выглядит следующим образом:

rootpw myultrasecurepassword

Schemas

Это хорошая идея, чтобы начать думать о схемах, которые вы хотите использовать. Схема определяет атрибуты, которые может иметь объект, поэтому вам необходимо включить схемы, которые содержат необходимые вам атрибуты. Эти схемы включены в верхней части slapd.conf, и здесь, как правило, это абсолютные базовые схемы, которые вам понадобятся:

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema

Эти пути используются в Arch Linux, поэтому вам может потребоваться настроить их под Oracle Linux.

О slapd.confпротивslapd.d

OpenLDAP переключился с автономной конфигурации (сделано в slapd.conf) на онлайн-конфигурацию, храня данные в специальном cn=configдереве, найденном в slapd.d. Однако изменение ldifфайлов в файле slapd.dявляется болезненным процессом, поэтому его гораздо проще отредактировать, slapd.confкак указано выше, а затем преобразовать его в новый slapd.dформат.

Сначала удалите все в slapd.d. Затем выполните следующую команду, убедившись, что скорректировали пути к Oracle Linux:

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

Затем просто установите владельца для своего пользователя и группы LDAP в этом каталоге рекурсивно, и вы должны быть готовы к работе. Это нужно делать каждый раз, когда вы редактируете slapd.conf- просто не забудьте остановить сервер OpenLDAP перед этим!

Начальный прогон

Прежде чем вы действительно сможете использовать каталог, вам нужно создать базовое DN (и пользователь root). Создайте .ldifфайл, содержащий строки, подобные следующим:

dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: example.com
dc: example

dn: cn=root,dc=example,dc=com
objectclass: organizationalRole
cn: root

Теперь запустите сервер OpenLDAP. Нам просто нужно поместить эту информацию в каталог LDAP:

ldapadd -D "cn=root,dc=example,dc=com" -W -f initial.ldif

Очевидно, измените корневой DN и имя файла ldif, чтобы соответствовать тому, что у вас есть.

Теперь у вас должен быть настроен и готов к заполнению рабочий каталог LDAP!


Вики Arch Linux является отличным источником информации по этой теме - смотрите https://wiki.archlinux.org/index.php/OpenLDAP и https://wiki.archlinux.org/index.php/LDAP_Authentication, если вы хотите узнать больше.

Xenopathic
источник
Большая часть этого уже сделана менеджером пакетов и продолжает управлять конфигурацией с помощью slapd.confи, slaptestпока сервер остановлен, превосходит цель онлайн-конфигурации.
Свен
2
Для начальной конфигурации slapd.confработает просто отлично, и, безусловно, является более интуитивно понятным, чем редактирование slapd.dнапрямую. Я не знаю, какая часть каталога выполняется диспетчером пакетов в Oracle Linux, но если OP не может получить доступ к базовому DN, этого не может быть достаточно
Xenopathic
1
В принятом ответе есть информация, которая мне была нужна, но информация о создании начальных объектов также была полезна
thecoop