В данном руководстве мы обсудим процесс установки и настройки сервера OpenLDAP на Ubuntu 22.04 и 20.04 LTS. Кроме того, мы установим веб-интерфейс управления phpLDAPadmin.
Содержание статьи
- 1 OpenLDAP — это программное обеспечение с открытым исходным кодом, предназначенное для реализации протокола LDAP (Lightweight Directory Access Protocol). Оно позволяет хранить и управлять данными в виде иерархической структуры, что делает его полезным для организации информации о пользователях, группах и других объектах в сети.
- 2 Установка сервера OpenLDAP на Ubuntu версии 22.04 или 20.04.
- 3 Основная конфигурация после завершения установки
- 4 Конфигурация LDAP-клиентов
- 5 Проверка работы сервера OpenLDAP
- 6 Инсталляция phpLDAPadmin
- 7 При использовании Apache
- 8 Если вы работаете с Nginx
- 9 Конфигурация phpLDAPadmin
- 10 Получение доступа к веб-интерфейсу phpLDAPadmin.
OpenLDAP — это программное обеспечение с открытым исходным кодом, предназначенное для реализации протокола LDAP (Lightweight Directory Access Protocol). Оно позволяет хранить и управлять данными в виде иерархической структуры, что делает его полезным для организации информации о пользователях, группах и других объектах в сети.
OpenLDAP представляет собой открытый и высокоскоростной сервер каталогов, который обеспечивает клиентам доступ к различным службам каталогов. Приложения-клиенты устанавливают соединение с сервером OpenLDAP через Протокол Легкого Доступа к Каталогам (LDAP) для получения организационной информации, хранящейся на этом сервере. При наличии необходимых прав пользователи могут осуществлять поиск в каталоге, а также изменять и управлять его записями. OpenLDAP демонстрирует высокую эффективность как при чтении, так и при модификации данных в каталоге.
Серверы OpenLDAP обычно применяются для централизованного управления учетными записями пользователей. К примеру, вы можете создать учетную запись в OpenLDAP, и если она связана с почтовым сервером, FTP-сервером, сервером Samba или любым другим сервером, вы сможете использовать эту учетную запись для авторизации на всех этих платформах, не создавая новую учетную запись для каждого из них.
Установка сервера OpenLDAP на Ubuntu версии 22.04 или 20.04.
Чтобы установить сервер OpenLDAP и клиентские утилиты командной строки из репозитория пакетов Ubuntu 22.04/20.04, выполните следующую команду. slapd обозначает Автономный LDAP Демон (Stand-Alone LDAP Daemon).
sudo apt install slapd ldap-utils
Вам будет необходимо задать пароль для учетной записи администратора в LDAP-каталоге.

После выполнения этого действия slapd будет запущен автоматически. Чтобы проверить его состояние, используйте команду:
systemctl status slapd
По умолчанию служба запускается под учетной записью пользователя openldap, что указано в файле /etc/default/slapd.
Основная конфигурация после завершения установки
Процесс инсталляции устанавливает пакет без предварительных настроек. Для правильной работы нашего сервера OpenLDAP потребуется провести начальную настройку после завершения установки. Чтобы запустить мастер настройки, выполните следующую команду.
sudo dpkg-reconfigure slapd
Необходимо будет ответить на несколько вопросов. Пожалуйста, дайте ответы следующим образом:

- DNS-имя домена: Укажите свое доменное имя, например, linux16.ru. Вам потребуется корректно настроить A-запись для данного домена. Также возможно использование поддомена, например, directory. linux16.ru. Эти данные необходимы для формирования основного DN (distinguished name) в LDAP-структуре.

- Название вашей компании: Укажите наименование вашей организации, например, LinuxBabe.

- Пароль администратора: Укажите тот же пароль, который был задан в процессе установки.

- База данных для серверной части: MDB.
- BDB (Беркли База Данных) является медленным и неэффективным решением. Этот инструмент устарел, и его поддержка будет прекращена в следующих версиях OpenLDAP.
- HDB (Иерархическая база данных) представляет собой альтернативу бэкенду BDB и также станет устаревшей.
- MDB осуществляет чтение в 5-20 раз быстрее, чем BDB, а запись происходит в 2-5 раз быстрее. Кроме того, он потребляет в 4 раза меньше оперативной памяти по сравнению с BDB. Именно поэтому мы предпочитаем использовать MDB в качестве бэкенда для базы данных.

- Вы желаете, чтобы база данных была устранена во время очистки slapd? Нет.


- Разрешить использование протокола LDAPv2? Нет. Последней версией LDAP является LDAP v.3, разработанный в 1997 году. Протокол LDAPv2 считается устаревшим.

Теперь служба OpenLDAP будет перенастроена в соответствии с вашими ответами. Ваш сервер OpenLDAP готов к эксплуатации.
Конфигурация LDAP-клиентов
Файл /etc/ldap/ldap.conf является конфигурационным файлом для всех клиентов OpenLDAP. Необходимо открыть этот файл.
sudo nano /etc/ldap/ldap.conf
Необходимо указать два параметра: базовый DN и URI нашего OpenLDAP сервера. Скопируйте и вставьте следующий текст в конец файла, заменив your-domain и com на актуальные значения.
BASE dc=your-domain,dc=com URI ldap://localhost
Начальная строка устанавливает основной DN. Она указывает клиентским приложениям, с какого уровня в директории следует начинать поиск. Если вы использовали поддомен при конфигурации сервера OpenLDAP, необходимо включить его в этот раздел, как указано ниже:
BASE dc=subdomain,dc=your-domain,dc=com
Второй пункт указывает URI нашего OpenLDAP сервера. Поскольку клиент и сервер LDAP располагаются на одном устройстве, необходимо задать URI в формате ldap://localhost.
Проверка работы сервера OpenLDAP
Теперь, когда сервер OpenLDAP запущен и настройка клиента завершена, введите следующую команду для тестирования соединений с сервером.
ldapsearch - x
# extended LDIF # # LDAPv3 # base (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # # linux16.ru dn: dc=linuxbabe, dc=com objectClass: top objectClass: dcObject objectClass: organization o: LinuxBabe # admin, linux16.ru dn: cn=admin, dc=linuxbabe, dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 результат: 0 Успех # numResponses: 3 # numEntries: 2
Результат: 0 Успех свидетельствует о том, что сервер OpenLDAP функционирует. Если вы видите следующую строку, это означает, что он не активен.
result: 32 No such object
Инсталляция phpLDAPadmin
phpLDAPadmin представляет собой веб-приложение, предназначенное для администрирования сервера OpenLDAP. Хотя для управления этим сервером можно применять командные утилиты, тем, кто предпочитает более удобный интерфейс, стоит рассмотреть возможность установки phpLDAPadmin.
Используйте следующую команду для установки phpLDAPadmin из репозитория пакетов Ubuntu.
sudo apt install phpldapadmin
Если на вашем сервере Ubuntu отсутствует веб-сервер, то команда, указанная выше, установит веб-сервер Apache в качестве зависимости. В случае, если уже имеется установленный веб-сервер, например, Nginx, Apache не будет добавлен.
При использовании Apache
В процессе установки будет создан файл конфигурации phpldapadmin.conf в директории /etc/apache2/conf-enabled/. По окончании установки вы сможете открыть веб-интерфейс phpLDAPadmin по указанному адресу:
your-server-ip/phpldapadmin
your-domain.com/phpldapadmin
Для активации HTTPS вы можете получить и установить бесплатный TLS-сертификат от Let’s Encrypt.
Если вы работаете с Nginx
Пользователям Nginx необходимо самостоятельно создать файл server block для phpLDAPadmin.
sudo nano /etc/nginx/conf.d/phpldapadmin.conf
Скопируйте приведённый ниже текст и поместите его в файл. Подмените ldap. your-domain.com на выбранное вами доменное имя.
server < listen 80; server_name ldap. your-domain.comкорень /usr/share/phpldapadmin/htdocs; индекс index.php index. html index. htm; журнал_ошибок /var/log/nginx/phpldapadmin. error; журнал_доступа /var/log/nginx/phpldapadmin. access; местоположение~ \.php$ < fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; >>
Сохраните изменения и закройте документ. После этого убедитесь в корректности настроек Nginx.
sudo nginx - t
После успешного завершения теста выполните перезагрузку Nginx для активации внесенных изменений.
sudo systemctl reload nginx
Теперь вы можете открыть веб-интерфейс phpLDAPadmin, перейдя по адресу ldap. your-domain.com. Чтобы активировать HTTPS, вам необходимо получить и установить бесплатный TLS-сертификат от Let’s Encrypt.
Конфигурация phpLDAPadmin
Необходимо произвести определённые настройки, аналогично тому, как это было сделано с клиентом командной строки. Конфигурационный файл phpLDAPadmin располагается по адресу /etc/phpldapadmin/config.php.
sudo nano /etc/phpldapadmin/config.php
Поскольку OpenLDAP и phpLDAPadmin установлены на одном сервере, мы конфигурируем phpLDAPadmin для доступа к localhost через стандартный порт LDAP 389 без использования шифрования SSL/TLS.
В строке 293 указано, что phpLDAPadmin будет осуществлять подключение к localhost.
$servers->setValue('server','host','127.0.0.1');
Строка 296 по умолчанию закомментирована, что подразумевает использование стандартного порта 389.
// $servers->setValue('server','port',389);
Строка 335 по умолчанию закомментирована, что указывает на то, что шифрование TLS отключено.
// $servers->setValue('server','tls',false);
После этого переместитесь к строке 300.
$servers->setValue('server','base',array('dc=example, dc=com'));
$servers->setValue('server','base',array());
Это даст возможность phpLDAPadmin самостоятельно установить базовый DN вашего сервера OpenLDAP. После этого вы сможете отключить анонимный доступ. Найдите строку 453.
// $servers->setValue('login','anon_bind',true);
Анонимный вход активирован по умолчанию. Для его отключения необходимо убрать комментарий (две косые черты) и изменить значение true на false.
$servers->setValue('login','anon_bind',false);
Скорее всего, вам стоит отключить уведомления о шаблонах, так как они могут быть надоедливыми и несущественными. Обратите внимание на строку 161.
// $config->custom->appearance['hide_template_warning'] = false;
Удалите комментарий и замените false на true.
$config->custom->appearance['hide_template_warning'] = true;
Сохраните изменения и закройте документ.
Получение доступа к веб-интерфейсу phpLDAPadmin.
Теперь мы можем провести тестирование инструмента phpLDAPadmin через наш веб-браузер. При первом запуске phpLDAPadmin он выглядит следующим образом.

Для доступа к нашему серверу OpenLDAP кликните на ссылку для входа. Появится окно авторизации. Стандартный логин — cn=admin, dc=example, dc=com, но возможно, вам придется изменить часть dc=example. В моем случае я использую cn=admin, dc=linuxbabe, dc=com.

Пароль — это администраторский пароль, который вы задали при конфигурации сервера OpenLDAP. Войдя в phpLDAPadmin, вы получите возможность управлять этим каталогом.

На этом всё! Надеюсь, данный урок был полезен для вас в установке и настройке серверов OpenLDAP и phpLDAPadmin на Ubuntu 22.04/20.04. В следующем уроке мы обсудим, как подготовить Ubuntu для аутентификации пользователей через OpenLDAP.

