- Разворачиваем LDAP в ОС Linux
- Записи в LDAP
- Установка под Linux
- Разворачиваем LDAP
- Настройка информационного дерева каталогов
- Добавляем записи в каталог
- Заключение
- Install and Configure Linux LDAP
- Step 1: Set Hostname and IP for the Ubuntu Server
- Step 2: Install the OpenLDAP Server to the Ubuntu 22.04 System
- Step 3: Confirm If the Installation Is Successful
- Step 4: Add a Base DN for all the Users and Groups
- Step 5: Configure the LDAP Server by Adding User Accounts and Groups
- Step 6: Configure the LDAP Database
- Conclusion
- About the author
- Kennedy Brian
Разворачиваем LDAP в ОС Linux
Глобальный каталог LDAP стал неотъемлемой частью современной ИТ инфраструктуры любой крупной организации. Сама технология каталога LDAP у большинства плотно ассоциируется с Active Directory от Майкрософт. Однако сейчас все больше организаций пытаются уйти от решений данного вендора и перейти на софт с открытым исходным кодом.
В этой статье мы поговорим о том, из каких компонентов состоит LDAP и выполним некоторые основные настройки под Ubuntu. Но сначала немного теории о том, что эта технология из себя представляет.
Итак, начнем с рассмотрения того, что из себя представляет LDAP. LDAP (Lightweight Directory Access Protocol, «легковесный протокол доступа к каталогам») — протокол прикладного уровня для доступа к службе каталогов X.500. LDAP — протокол, использующий TCP/IP и позволяющий производить операции аутентификации (bind), поиска (search) и сравнения (compare), а также операции добавления, изменения или удаления записей. При использовании настроек по умолчанию, LDAP-сервер принимает входящие соединения на порт 389 по протоколам TCP или UDP. Если же мы используем SSL, тогда для соединений назначается порт 636.
Записи в LDAP
Начнем рассмотрение основ протокола LDAP с понятия запись. В каталоге LDAP каждая запись может состоять из одного или нескольких атрибутов и обладать уникальным именем (DN, Distinguished Name). Это имя может выглядеть по-разному, например: «cn=Петр Иванов,ou=Менеджеры,dc=domain,dc=com». DN состоит из одного или нескольких относительных уникальных имён, разделённых запятой. Относительное уникальное имя имеет вид ИмяАтрибута=значение. LDAP имеет древовидную структуру. При этом необходимо отметить, что на одном уровне каталога не может существовать двух записей с одинаковыми относительными уникальными именами.
В LDAP должны быть определены описания классов записей (object class), объединенные в схемы (schema). Соответственно, запись в каталоге LDAP может состоять только из тех атрибутов, для которых мы определили классы и схемы. В схеме определено, какие атрибуты являются для данного класса обязательными, а какие — необязательными. Также схема определяет тип и правила сравнения атрибутов, при этом, каждый атрибут записи может хранить несколько значений.
Установка под Linux
В качестве примера развертывания LDAP под Linux мы будем использовать ОС Ubuntu. В роли автономного демона LDAP мы будем разворачивать приложение slapd. Далее, мы развернем минимальную рабочую конфигурацию с записью верхнего уровня и уникальным именем администратора. В частности, мы создадим экземпляр базы данных, который можно использовать для хранения своих данных. Однако суффикс (или базовый DN) этого экземпляра будет определен из доменного имени хоста. Надо понимать, что сменить базовый DN после развертывания LDAP невозможно без полного пересоздания всего дерева LDAP. Так, что если вас не устраивает приведенное в примере DN, то необходимо определиться с собственным DN до начала процесса развертывания.
Разворачиваем LDAP
Итак, приступаем к установке сервера и основных утилит командной строки. Для этого выполним следующую команду:
sudo apt install slapd ldap-utils
Если вы хотите изменить суффикс вашего информационного дерева каталогов (DIT), сейчас самое подходящее время, поскольку его изменение приводит к удалению существующего (если он был). Чтобы изменить суффикс, выполните следующую команду:
sudo dpkg-reconfigure slapd
На протяжении всего процесса установки мы будем выполнять множество команд с помощью утилит LDAP. Чтобы сэкономить на вводе текста, мы можем настроить библиотеки OpenLDAP с определенными значениями по умолчанию в файле /etc/ldap/ldap.conf (измените эти записи в соответствии с именем вашего сервера и суффиксом каталога):
Настройка информационного дерева каталогов
Используемый нами пакет slapd разработан таким образом, чтобы его работу можно было настроить в рамках самого сервиса, выделив для этой цели отдельное дерево каталогов. Благодаря этому мы можем динамически настраивать slapd без перезапуска службы или редактирования конфигурационных файлов. Сама конфигурация состоит из набора текстовых файлов LDIF, расположенных в каталоге /etc/ldap/slapd.d, но их никогда не следует редактировать напрямую. Традиционный метод правки конфигурации с использованием плоского файла (slapd.conf) также можно использовать, но он не рекомендуется.
Сразу после установки у нас будут созданы две базы данных, или как их еще называют суффиксы: один для ваших данных, основанный на домене вашего хоста (dc=domain,dc=com), и один для вашей конфигурации, с корнем в cn=config. Чтобы изменить данные на каждом из них, нам нужны разные учетные данные и методы доступа:
Пользователь с правами администратора для этого суффикса — cn=admin,dc=domain,dc=com, а его пароль — тот, который был выбран во время установки пакета slapd.
Конфигурация самого slapd будет храниться под этим суффиксом. Изменения в него могут быть внесены с помощью использования специального DN:
Добавляем записи в каталог
Давайте дополним наш каталог данными. Мы добавим узлы People, Groups, группу Managers и пользователя John.
Для этого мы создадим файл add_content.ldif:
dn: ou=People,dc=domain,dc=com objectClass: organizationalUnit ou: People dn: ou=Groups,dc=domain,dc=com objectClass: organizationalUnit ou: Groups dn: cn=miners,ou=Groups,dc=domain,dc=com objectClass: posixGroup cn: miners gidNumber: 5000 dn: uid=john,ou=People,dc=domain,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: john sn: Doe givenName: John cn: John Doe displayName: John Doe uidNumber: 10000 gidNumber: 5000 userPassword: x gecos: John Doe loginShell: /bin/bash homeDirectory: /home/john
Мы можем проверить правильность добавления информации с помощью утилиты ldapsearch. Например, давайте выполним поиск записи john и запросим атрибуты cn и gidnumber:
$ ldapsearch -x -LLL -b dc=domain,dc=com ‘(uid=john)’ cn gidNumber
Как видно, учетная запись успешно найдена.
Заключение
В этой статье мы рассмотрели процесс базового развертывания каталога LDAP под Ubuntu Linux. В следующей статье мы подробно рассмотрим добавление групп и отдельных пользователей, а также внесение других изменений в конфигурацию LDAP.
Напоследок приглашаю всех читателей на бесплатный вебинар, где мы разберём основные методы для решения двух задач: увеличение производительности веб-приложений и работа с высокими нагрузками. Для этого погрузимся в процесс взаимодействия веб-браузера и веб-сервера, а также найдём множество полезных настроек модулей Nginx.
Install and Configure Linux LDAP
LDAP, or Lightweight Directory Access Protocol, is an open-vendor protocol for accessing directory information such as X.500 service containers. It is useable in Linux and other OS environments.
This write-up describes how to set up the LDAP directory on a Linux server. It will provide a step-by-step tutorial on installing, configuring, and testing the OpenLDAP server on Linux systems. It is an open-source implementation of LDAP.
This guide will use Ubuntu 22.04|20.04|18.04 LTS as our operating software.
Step 1: Set Hostname and IP for the Ubuntu Server
So, set a hostname for your system before beginning the installation process. This command should help:
As the host, you should proceed to add your IP address to the /etc/hosts file as shown below:
At this point, you can replace example.com with your valid hostname. For example, I may choose to use kenhint.com instead.
Step 2: Install the OpenLDAP Server to the Ubuntu 22.04 System
The actual installation begins at this point. And you will need to begin by installing LDAP alongside some of its management utilities and packages. This command will help you accomplish the installation on Ubuntu 22.04:
As part of the installation, you will see a prompt to set your LDAP administrator password. Enter your preferred password in the provided space and press to continue. This will be the interface on your screen:
The following interface will prompt you to enter the password. Key in your password again and press OK.
Step 3: Confirm If the Installation Is Successful
You can use the slapcat command to review the contents and packages in your installation. Expect an outcome similar to the ones in the screenshot below:
The result of the above command should read as shown in this illustration;
Step 4: Add a Base DN for all the Users and Groups
You can add a base DN for each user or group by creating a basedn.ldif file with the following contents:
Create a similar base DN for groups using the above format and replace the example and com in the file with your correct domain credentials and add the base file by running this command:
Step 5: Configure the LDAP Server by Adding User Accounts and Groups
Firstly, it is not recommended to edit the LDAP configuration files manually. So, for better results, it is advisable to add your edits into the configuration file and either use ldapmodify or ldapadd commands to load them into the directory.
You can create an OpenLDAP user account and assign a password to the account with the slappasswd command.
Proceed to create a ldif file which you will use for adding users.
We already talked about how you can replace example and com with the right domain credentials. Now, replace Zn4/E5f+Ork7WZF/alrpMuHHGufC3x0k with your password, cn and sn with the correct username values, and linhinttechs with the username you expect to add.
Once you are done editing, you are free to add the account by running this command:
You can do the same to create a group account by first creating the ldif file. This file is what you will use for adding entries into the directory.
Now, add the group by running this command:
Step 6: Configure the LDAP Database
Configuring the LDAP database starts with copying the sample database of slapd file into the corresponding /var/lib/ldap directory. You can then set the recommended permissions as in the screenshot below:
Import common LDAP protocol schemas from /etc/openldap/schema directory into the database. This example should help:
Add your domain to the database and create the ldapdomain.ldif, which will help you modify the credentials in the database. Create the file using the below command:
Add the following required information and replace the relevant sections as earlier advised and add the outcome into the database using the following command:
Conclusion
OpenLDAP is an open-vendor implementation of the LDAP protocol in Linux environments. The article demonstrates how to install and set up the OpenLDAP server and database for centralized authentication in Ubuntu.
About the author
Kennedy Brian
Brian is a computer scientist with a bias for software development, programming, and technical content development. He has been in the profession since 2015. He reads novels, jogs, or plays table tennis whenever not on gadgets. He is an expert in Python, SQL, Java, and data and network security.