Как установить и настроить сервер OpenLDAP на Ubuntu 22.04 или 20.04

В данном руководстве мы обсудим процесс установки и настройки сервера OpenLDAP на Ubuntu 22.04 и 20.04 LTS. Кроме того, мы установим веб-интерфейс управления 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-каталоге.

Читайте также:  Установка и настройка PostgreSQL на Linux для новичков

После выполнения этого действия slapd будет запущен автоматически. Чтобы проверить его состояние, используйте команду:

systemctl status slapd

По умолчанию служба запускается под учетной записью пользователя openldap, что указано в файле /etc/default/slapd.

Основная конфигурация после завершения установки

Процесс инсталляции устанавливает пакет без предварительных настроек. Для правильной работы нашего сервера OpenLDAP потребуется провести начальную настройку после завершения установки. Чтобы запустить мастер настройки, выполните следующую команду.

sudo dpkg-reconfigure slapd

Необходимо будет ответить на несколько вопросов. Пожалуйста, дайте ответы следующим образом:

Установка OpenLDAP на Ubuntu.

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

Установите OpenLDAP на Ubuntu.

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

Конфигурация LDAP-сервера в Ubuntu 16.04: пошаговое руководство.

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

Сервер OpenLDAP на Ubuntu 16.04.

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

OpenLDAP с использованием базы данных MDB

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

Установите сервер OpenLDAP на Ubuntu 16.04 LTS.
конфигурация сервера openldap

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

Установите LDAP на Ubuntu.

Теперь служба OpenLDAP будет перенастроена в соответствии с вашими ответами. Ваш сервер OpenLDAP готов к эксплуатации.

Конфигурация LDAP-клиентов

Файл /etc/ldap/ldap.conf является конфигурационным файлом для всех клиентов OpenLDAP. Необходимо открыть этот файл.

sudo nano /etc/ldap/ldap.conf

Необходимо указать два параметра: базовый DN и URI нашего OpenLDAP сервера. Скопируйте и вставьте следующий текст в конец файла, заменив your-domain и com на актуальные значения.

Читайте также:  Установка и настройка Git для управления проектами в Linux

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 на выбранное вами доменное имя.

Читайте также:  Переконвентировать образ *.ngr в *.iso в Linux

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 он выглядит следующим образом.

phpldapadmin

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

веб-интерфейс для openldap

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

Конфигурация phpldapadmin

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