OpenLDAP — это программная реализация Lightweight Directory Access Protocol (LDAP). OpenLDAP — это бесплатное программное обеспечение с открытым исходным кодом, лицензия которого в стиле BSD называется OpenLDAP Public License. Его программное обеспечение LDAP с приводом командной строки доступно в большинстве дистрибутивов Linux, таких как CentOS, Ubuntu, Debian, SUSE и многих других.
OpenLDAP — это полный набор программного обеспечения для LDAP-серверов, который включает SLAPD (автономный LDAP-демон), SLURPD (автономный демон репликации обновлений LDAP), а также некоторые утилиты и инструменты для управления LDAP-серверами. OpenLDAP является высоконастраиваемым LDAP-сервером и поддерживает все основные вычислительные платформы.
В этом руководстве мы покажем вам, как установить OpenLDAP Server на AlmaLinux 9, чтобы вы могли с легкостью приступить к работе.
Настройка FQDN
Перед установкой сервера OpenLDAP необходимо убедиться, что fqdn настроен и указывает на правильный IP-адрес. Выполните следующие шаги, чтобы настроить fqdn на машине AlmaLinux.
Выполните следующую команду, чтобы настроить fqdn на машине AlmaLinux. В этом случае сервер будет иметь fqdn ldap.domain.local.
sudo hostnamectl set-hostname ldap.domain.local
Теперь откройте /etc/hosts файл с помощью следующей команды редактора nano.
sudo nano /etc/hosts
Вставьте следующую конфигурацию и не забудьте изменить IP-адрес, fqdn и имя хоста.
192.168.10.50 ldap.domain.local ldap
Сохраните файл и выйдите из редактора после завершения работы.
Наконец, выполните следующую команду, чтобы проверить fqdn вашей системы и убедиться, что она указывает на правильный локальный IP-адрес.
sudo hostname -f ping -c3 ldap.domain.local
В данном случае fqdn ldap.domain.local указывает на IP-адрес 192.168.10.50.

Установка сервера OpenLDAP
Пакет сервера OpenLDAP доступен в репозитории EPEL. Поэтому перед установкой сервера OpenLDAP необходимо установить репозиторий EPEL на ваш сервер AlmaLinux.
В следующем разделе мы покажем вам, как добавить репозиторий EPEL, установить сервер OpenLDAP и управлять службой OpenLDAP.
Сначала добавьте репозиторий EPEL на ваш сервер AlmaLinux с помощью команды dnf, приведенной ниже.
sudo dnf install epel-release -y

После этого выполните приведенную ниже команду dnf для установки пакетов сервера и клиента OpenLDAP.
sudo dnf install openldap-servers openldap-clients
Когда появится запрос, введите y для подтверждения и нажмите ENTER.

Также, когда появится запрос на добавление GPG-ключа репозитория EPEL, снова введите y и нажмите ENTER.

Теперь выполните приведенную ниже команду systemctl, чтобы запустить и включить службу OpenLDAP slapd.
sudo systemctl start slapd sudo systemctl enable slapd
Проверьте работу службы slapd с помощью следующей команды, чтобы убедиться, что служба запущена.
sudo systemctl status slapd
Если служба запущена, вы должны получить вывод типа active (running).

Наконец, вам нужно будет открыть обе службы LDAP и LDAPS в firewalld, чтобы разрешить клиентские соединения.
Выполните приведенные ниже команды firewall-cmd, чтобы добавить службы LDAP и LDAPS в firewalld. Затем перезагрузите firewalld, чтобы применить изменения.
sudo firewall-cmd --add-service={ldap,ldaps} --permanent
sudo firewall-cmd --reload
Теперь вы можете проверить список правил firewalld с помощью следующей команды.
sudo firewall-cmd --list-all
В случае успеха вы должны увидеть службы LDAP и LDAPS доступными в списке служб firewalld.

Базовая конфигурация сервера OpenLDAP
После установки сервера OpenLDAP вам предстоит настроить установку OpenLDAP. И первым шагом, который вы должны сделать, будет настройка пользователя-администратора и импорт некоторых базовых схем для вашей установки сервера OpenLDAP.
Выполните следующую команду, чтобы сгенерировать хэшированный пароль для вашего сервера OpenLDAP. Введите свой пароль и повторите, а затем скопируйте сгенерированный хэш-пароль.
slappasswd
Создайте новый файл chrootpw.ldif с помощью команды редактора nano, приведенной ниже.
nano chrootpw.ldif
Добавьте следующую конфигурацию и не забудьте заменить значение в строке olcRootPW параметр с вашим хэшированным паролем. Это изменит пароль для вашего сервера OpenLDAP.
# chrootpw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}yK9Dk+Kz9S9CLu3Y+ZtJVAYF+MPIRl1X
После завершения работы сохраните и выйдите из файла.
Теперь выполните приведенную ниже команду ldapadd, чтобы применить конфигурацию к серверу OpenLDAP.
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
В случае успеха вы должны получить следующий результат:

Наконец, выполните следующую команду, чтобы добавить несколько базовых схем на ваш сервер OpenLDAP.
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
Это добавит такие новые записи, как нис, косинус, и inetorgperson на ваш сервер OpenLDAP.

Настройка домена и базового домена
Теперь, когда пароль администратора для сервера OpenLDAP настроен, следующим шагом будет настройка доменного имени для вашего сервера OpenLDAP и создание некоторых базовых доменных имен для пользователей.
Выполните следующие шаги для настройки доменного имени и базового домена с помощью LDIF-файла.
Настройка доменного имени
Создайте новый LDIF-файл chdomain.ldif с помощью следующей команды редактора nano.
nano chdomain.ldif
Добавьте следующую конфигурацию и не забудьте изменить имя домена dc=domain,dc=local с именем домена вашего сервера OpenLDAP. Кроме того, внутри olcRootPW измените параметр на свой хэшированный пароль.
Это изменит доменное имя по умолчанию вашего сервера OpenLDAP на новый домен.
# chdomain.ldif # replace to your own domain name for [dc=***,dc=***] section # specify the password generated above for [olcRootPW] section
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base=»gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth»
read by dn.base=»cn=Manager,dc=domain,dc=local» read by * none
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=domain,dc=local
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=domain,dc=local
dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}yK9Dk+Kz9S9CLu3Y+ZtJVAYF+MPIRl1X
dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn=»cn=Manager,dc=domain,dc=local» write by anonymous auth by self write by * none
olcAccess: {1}to dn.base=»» by * read
olcAccess: {2}to * by dn=»cn=Manager,dc=domain,dc=local» write by * read
Сохраните файл и выйдите из редактора, когда закончите.
Далее выполните приведенную ниже команду ldapmodify, чтобы применить новые конфигурации к серверу OpenLDAP.
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif

После внесения изменений выполните приведенную ниже команду ldapsearch, чтобы проверить конфигурацию. В случае успеха вы должны увидеть, что namingContexts содержит доменное имя вашего сервера OpenLDAP. В данном случае доменное имя ldap.domain.local.
sudo ldapsearch -H ldap:// -x -s base -b "" -LLL "namingContexts"

Настройка базового домена
Создайте новый LDIF-файл basedomain.ldif с помощью редактора nano.
nano basedomain.ldif
Вставьте в файл следующую конфигурацию. С ее помощью вы создадите три различных объекта oragnizationalUnit Manager, Люди, и Группа.
# basedomain.ldif # replace to your own domain name for [dc=***,dc=***] section
dn: dc=domain,dc=local
objectClass: top
objectClass: dcObject
objectclass: organization
o: domainLocal
dc: domain
dn: cn=Manager,dc=domain,dc=local
objectClass: organizationalRole
cn: Manager
description: Directory Manager
dn: ou=People,dc=domain,dc=local
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=domain,dc=local
objectClass: organizationalUnit
ou: Group
Сохраните файл и выйдите из редактора после завершения работы.
Теперь выполните приведенную ниже команду ldapadd, чтобы добавить новый базовый домен на ваш сервер OpenLDAP.
sudo ldapadd -x -D cn=Manager,dc=domain,dc=local -W -f basedomain.ldif
Введите пароль OpenLDAP, когда появится запрос. В случае успеха вы должны получить следующее сообщение:

Наконец, вы можете проверить список ou на вашем сервере OpenLDAP с помощью следующей команды.
sudo ldapsearch -x -b "dc=domain,dc=local" ou
Если конфигурация выполнена успешно, вы должны увидеть три разных ou Менеджер, Люди, и Группа.

На этом этапе вы завершили установку сервера OpenLDAP на машину AlmaLinux. На следующем этапе вы узнаете, как создать пользователя OpenLDAP с помощью LDIF-файла.
Добавление нового пользователя на сервер OpenLDAP
Чтобы создать новых пользователей вручную на сервере OpenLDAP, вы можете использовать команду slappasswd для генерации хэшированного пароля и создания нового LDIF-файла для вашего нового пользователя. В этом шаге вы узнаете, как это сделать.
Чтобы создать нового пользователя, необходимо сначала сгенерировать хэш пароля с помощью команды slappasswd, приведенной ниже.
slappasswd
Введите свой пароль и скопируйте сгенерированный хэш.
Теперь создайте новый файл newuser.ldif с помощью приведенной ниже команды редактора nano.
nano newuser.ldif
Вставьте следующую конфигурацию для создания нового пользователя и группы OpenLDAP. Также не забудьте изменить данные о доменном имени, новом пользователе, gid и uid группы, а также хэш пароля.
# newuser.ldif # Change detail username and path home directory and default domain name
dn: uid=alma,ou=People,dc=domain,dc=local
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: alma
sn: temp
userPassword: {SSHA}l/lZ6zZSGgGP1s7pezz6faYX86Tx3Fv/
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/alma
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
dn: cn=alma,ou=Group,dc=domain,dc=local
objectClass: posixGroup
cn: alma
gidNumber: 2000
memberUid: alma
Сохраните файл и выйдите из редактора после завершения работы.
Далее запустите программу ldapadd команду ниже, чтобы добавить нового пользователя и группу OpenLDAP. Введите свой пароль OpenLDAP, когда появится запрос, и нажмите ENTER для подтверждения.
sudo ldapadd -x -D cn=Manager,dc=domain,dc=local -W -f newuser.ldif

После добавления новых пользователей и групп выполните приведенную ниже команду ldapsearch, чтобы получить список доступных пользователей и групп на вашем сервере OpenLDAP.
sudo ldapsearch -x -b "ou=People,dc=domain,dc=local" sudo ldapsearch -x -b "ou=Group,dc=domain,dc=local"
Если настройка прошла успешно, вы должны увидеть пользователя и группу alma , доступный на сервере OpenLDAP.
Ниже приведен пользователь альма доступно на сервере OpenLDAP.

Ниже приведена группа альма доступен на сервере OpenLDAP.

Заключение
Отлично! Вы выполнили все шаги и установили сервер OpenLDAP на свою машину с AlmaLinux 9. Теперь вы готовы использовать и интегрировать его в свои приложения. Кроме того, рекомендуется настроить безопасный OpenLDAP-сервер с SSL/TLS и установить веб-фронтенд для вашего OpenLDAP-сервера с помощью phpOpenLDAP или аналогичной программы.