LDAP, или Lightweight Directory Access Protocol – это протокол для управления информацией из централизованного места за счет использования иерархии файлов и каталогов. Его работа чем-то похожа на реляционные базы данных.
LDAP позволяет систематизировать и хранить любого рода информацию. Этот протокол часто используется для централизованной аутентификации.
Данное руководство покажет, как установить и настроить сервер OpenLDAP на выделенный сервер Ubuntu 12.04, а также создать все необходимые группы и пользователей.
Примечание: О настройке LDAP для авторизации можно прочесть в следующем руководстве этой серии.
Установка LDAP
Сервер OpenLDAP можно загрузить из стандартных репозиториев Ubuntu. Искомый пакет называется slapd. Кроме того, нужно установить несколько дополнительных утилит.
sudo apt-get update
sudo apt-get install slapd ldap-utils
Система предложит выбрать и подтвердить пароль администратора LDAP.
Настройка slapd
Когда установка будет завершена, нужно перенастроить пакет LDAP. Чтобы открыть инструмент для конфигурации пакета, введите:
sudo dpkg-reconfigure slapd
Система задаст ряд вопросов, чтобы перенастроить пакет.
- Omit OpenLDAP server configuration? No
- DNS domain name? (Это создаст базовую структуру путей к каталогам; чтобы понять, как это работает, читайте подсказку программы. В целом, общепринятых правил для этой настройки нет. Если у вас есть домен, укажите его здесь. В руководстве используется тестовый домен test.com).
- Organization name? (Укажите любое имя; в руководстве – example)
- Administrator password? (Укажите пароль, выбранный во время установки пакета, или установите другой пароль).
- Database backend to use? HDB
- Remove the database when slapd is purged? No
- Move old database? Yes
- Allow LDAPv2 protocol? No
Установка PHPldapadmin
Для управления LDAP понадобится веб-интерфейс PHPldapadmin. Его тоже можно скачать из репозиториев Ubuntu.
sudo apt-get install phpldapadmin
Эта команда установит необходимый пакет и его PHP-зависимости.
Настройка PHPldapadmin
Прежде чем запустить интерфейс, нужно изменить некоторые настройки в конфигурационных файлах.
Откройте конфигурации с правами root:
sudo nano /etc/phpldapadmin/config.php
Найдите следующий раздел и отредактируйте его, как показано ниже:
$servers->setValue('server','host','domain_nam_or_IP_address');
Примечание: Значения, выделенные красным, нужно заменить своими данными.
Следующий раздел должен содержать доменное имя (или IP), указанное при перенастройке slapd. Домен нужно преобразовать в формат, который понимает LDAP; для этого нужно разделить все компоненты домена.
Примечание: Компоненты домена – это те его части, что разделены точками.
К примеру, доменное имя imaginary.lalala.com LDAP видит как dc=imaginary,dc=lalala,dc=com. Отредактируйте следующую запись, указав свой домен в правильном формате; условное доменное имя test.com указывается так:
$servers->setValue('server','base',array('dc=test,dc=com'));
Следующее значение, которое нужно изменить, также должно использовать компоненты домена, которые были добавлены в последней записи. Внесите их после cn=admin:
$servers->setValue('login','bind_id','cn=admin,dc=test,dc=com');
Найдите следующий раздел, а в нём – атрибут hide_template_warning. Раскомментируйте строку и установите значение true, чтобы отключить некоторые несущественные предупреждения.
$config->custom->appearance['hide_template_warning'] = true;
Сохраните и закройте файл.
Запуск веб-интерфейса
Откройте в браузере свой домен или IP, добавив сегмент /phpldapadmin.
domain_name_or_IP_address/phpldapadmin
На экране появится приветственная страница интерфейса.
Кликните по ссылке login слева.
На экране появится форма входа. Если все настройки были выполнены верно, Login DN (имя) будет уже указано (в данном случае это cn=admin,dc=test,dc=com).
Введите пароль, установленный во время настройки slapd.
На экране появится интерфейс с довольно небольшим списком опций.
Нажмите плюсик рядом с доменным именем слева (в данном случае dc=test,dc=com), чтобы развернуть список и увидеть используемую учётную запись.
Добавление подразделений, групп и пользователей
Сервер LDAP очень гибок. Он позволяет создавать иерархии и отношения разными способами в зависимости от информации и требований пользователя.
Создайте базовую структуру и заполните её информацией.
Создание подразделений
Для начала создайте категории информации. Для примера используем две категории: groups и users.
В левой панели нажмите Create new entry here.
Это меню содержит множество различных типов записей.
Чтобы создать простое подразделение, выберите шаблон «Generic: Organizational Unit».
Программа предложит выбрать имя подразделения. Введите groups. Затем нужно зафиксировать изменения.
После этого слева появится новая запись.
Создайте ещё одно подразделение. Повторите описанную выше процедуру, указав имя users.
Теперь в выпадающем списке слева появятся добавленные только что подразделения (чтобы просмотреть список, нажмите плюс рядом с dc=test,dc=com).
Создание групп
Группы позволяют управлять доступом и привилегиями пользователей.
Для примера создадим группы admin, irc и user. После этого нужно настроить аутентификацию пользователей различных групп.
Создайте группы в подразделении groups. Для этого кликните по groups и выберите опцию Create a child entry.
После этого выберите шаблон «Generic: Posix Group». В соответствующем поле укажите имя admin, а затем нажмите Create Object.
Повторите этот процесс, чтобы создать группы irc и user. Будьте внимательны: проверяйте текущую категорию (это должна быть ou=groups), иначе можно создать группу в других категориях.
Чтобы просмотреть созданные группы, откройте в левом меню ou=groups и выберите View 3 children.
Создание пользователей
Теперь нужно создать пользователей и добавить их в группы. Выберите категорию ou=users и нажмите Create a child entry. Выберите шаблон «Generic: User Account». На экране появится довольно большая форма. Заполните её соответствующими данными.
Обратите внимание: Значение Common Name должно быть уникальным для каждой записи в категории. Потому вместо автоматически вносимых в это поле значений рекомендуется указывать имя пользователя.
Нажмите Create Object.
Чтобы создать дополнительных пользователей, можно воспользоваться функцией копирования записей.
Кликните по только что созданному пользователю в левой панели и выберите опцию Copy or move this entry.
Отредактируйте cn=user, указав уникальное значение для common name, а затем нажмите Copy.
На экране появится уже заполненная форма для создания пользователя. При необходимости отредактируйте внесённую информацию. Обязательно измените uidNumber. Нажмите Create Object.
Добавление пользователей в группы
Чтобы добавить пользователя в группу, кликните по требуемой группе и выберите Add new attribute.
В выпадающем меню выберите memberUid. В текстовом поле укажите пользователя, которого нужно добавить, и нажмите Update Object.
Чтобы добавить в группу других пользователей, выберите modify group members и выберите из списка доступных пользователей.
Заключение
Теперь сервер LDAP установлен и готов к работе. Также на нём есть несколько пользователей и групп.
Чтобы узнать, как настроить аутентификация клиентов при помощи LDAP, читайте следующее руководство.