2.9 Установка и настройка OpenLDAP-сервера
Входные данные
Основные термины
Объекты и атрибуты
Предварительная подготовка
Синхронизация времени
Настройка доменных имен
Настройка сетевого адаптера
Настройка сервера
Установка сервера
Запуск службы
Настройка пароля администратора
Добавление необходимых схем
Настройка базы данных
Создание базовой структуры каталога
Создание SSL-сертификата
Настройка SSL/TLS для OpenLDAP
Настройка брандмауэра Firewall
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Рабочая станция, Сервер графический, Сервер минимальный
- Редакция ОС: Стандартная
- Версия ПО: openldap-servers-2.4.55-10, openldap-clients-2.4.55-10
Служба каталога — это система для хранения и поиска информации о пользователях, устройствах и других объектах в сети.
LDAP (Lightweight Directory Access Protocol) — это протокол доступа к каталогам через TCP/IP.
Существует несколько реализаций LDAP-протокола от различных вендоров. В сегменте открытого программного обеспечения распространение получил OpenLDAP, который рассмотрен в качестве основного примера. Принципы, термины и логика работы универсальны для всех LDAP-серверов.
Входные данные
В рамках текущей инструкции будут использованы следующие данные:
- для сервера:
- IP-адрес — 192.168.101.164;
- имя хоста — ldap.example.com.
- для клиента:
- IP-адрес — 192.168.101.165;
- имя хоста — client.example.com.
Основные термины
Объект — это элемент каталога (например, учетная запись пользователя, компьютер или группа). Каждый объект состоит из атрибутов.
Атрибут — специальное поле, содержащее информацию об объекте. Например:
cn— имя пользователя;mail— электронная почта;telephoneNumber— телефон.
Схема — правила обработки, которые определяют какие атрибуты могут быть у объектов, формат данных, обязательные и дополнительные поля.
DN (Distinguished Name) — путь объекта в каталоге. DN формируется справа налево, включая все родительские объекты по цепочке. Пример:
cn=Иван Иванов,ou=people,dc=example,dc=com
DIT (Directory Information Tree) — дерево каталогов. Данные организованы в виде дерева, похожего на файловую систему. Вершиной иерархии является корневой объект.
Base DN — корень поиска в DIT. Пример:
dc=example,dc=com
RootDN — DN, указанный в настройках базы данных и обладающий полными правами на каталог.
Объекты и атрибуты
OpenLDAP поддерживает несколько типов хранилищ данных.
Пример файла LDIF (формат импорта/экспорта данных в OpenLDAP):
dn: dc=example,dc=com objectClass: top objectClass: organization o: Example Inc. dn: ou=People,dc=example,dc=com objectClass: top objectClass: organizationalUnit ou: People description: Employees of Example Inc.
где:
dn— путь объекта в дереве;objectClass— класс объекта (например,organization);o— обязательный атрибут для классаorganization, содержащий название организации;ou— обязательный атрибут для классаorganizationalUnit, указывающий название организационного подразделения;description— описание.
Классы, характеризующие объекты и атрибуты, описываются схемой базы. Пример:
attributetype ( 2.5.4.10 NAME ( 'o' 'organizationName' )
SUP name
)
attributetype ( 2.5.4.13 NAME 'description'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024}
)
objectclass ( 2.5.6.4 NAME 'organization' SUP top STRUCTURAL
MUST o
MAY ( userPassword $ searchGuide $ seeAlso $
telephoneNumber $ street $ postOfficeBox $ postalCode $
postalAddress $ st $ l $ description
)
)
где:
o,organizationName— наследует все свойства от родительского атрибутаname;description— строка длиной до1024байт, поиск без учёта регистра;organization— класс с обязательным атрибутомo;userPassword— хранение паролей пользователей;seeAlso— атрибут-ссылка на связанные записи в каталоге OpenLDAP;telephoneNumber— атрибут для телефонного номера;street— атрибут для названия улицы;postalAddress— атрибут для почтового адреса;postOfficeBox— атрибут для номера почтового ящика;postalCode— атрибут для почтового индекса;st— атрибут для указания области/штата/провинции в адресе;l— атрибут для указания населенного пункта (locality);description— атрибут используется для комментариев, пояснений или дополнительной информации об объекте.
Предварительная подготовка
Синхронизация времени
Для настройки синхронизации времени выполните настройку службы chrony. Подробную информацию см. в нашей статье «Установка и настройка chrony».
Настройка доменных имен
Назначьте доменное имя серверу:
sudo hostnamectl set-hostname ldap.example.com
Для проверки выполните команду:
hostname
Пример вывода:
ldap.example.com
Добавьте записи для всех узлов сети в /etc/hosts.
sudo sh -c "echo '192.168.101.164 ldap.example.com ldap' >> /etc/hosts" sudo sh -c "echo '192.168.101.165 client.example.com client' >> /etc/hosts"
где:
192.168.101.164— IP-адрес сервера;192.168.101.165— IP-адрес клиента.
Настройка сетевого адаптера
Для настройки DNS в системном трее ПКМ необходимо вызвать контекстное меню, нажав на иконку сетевых соединений. В контекстном меню выберите пункт «Параметры соединений...».

Выберите нужный сетевой адаптер, нажмите кнопку «Изменить выбранное соединение».

В открывшемся окне перейдите на вкладку «Параметры IPv4». Заполните поля:
- в поле «Метод» установите значение
Вручную; - в поле «Адрес» укажите статический IP-адрес сервера (например,
192.168.101.164); - в поле «Маска сети» укажите
24или255.255.255.0; - в поле «Шлюз» укажите IP-адрес шлюза (например,
192.168.101.1); - в поле «Серверы DNS» напишите IP-адрес DNS-сервера;
- в поле «Поисковый домен» введите название сервера (например,
ldap.example.com).

Нажмите кнопку «Сохранить» и выполните переподключение к сети.
Настройка сервера
Установка сервера
На сервере OpenLDAP необходимо установить пакеты:
sudo dnf install openldap-servers openldap-clients
Запуск службы
Запустите сервер OpenLDAP и добавьте в автозагрузку:
sudo systemctl enable --now slapd
Проверьте статус:
systemctl status slapd
Пример вывода команды:
slapd.service - OpenLDAP Server Daemon
Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: active (running) since Thu 2025-10-23 10:41:32 MSK; 12s ago
Docs: man:slapd
man:slapd-config
man:slapd-mdb
file:///usr/share/doc/openldap-servers/guide.html
Main PID: 2648 (slapd)
Tasks: 2 (limit: 2325)
Memory: 3.3M
CPU: 98ms
CGroup: /system.slice/slapd.service
└─2648 /usr/sbin/slapd -u ldap -h "ldap:/// ldaps:/// ldapi:///"
В параметрах запуска должен присутствовать: -h "ldap:/// ldaps:/// ldapi:///".
Настройка пароля администратора
1. Сгенерируйте хеш пароля администратора:
slappasswd
Введите пароль администратора конфигурации (например, admin123) дважды и скопируйте полученный хеш:
New password: <пароль_администратора_сервера> Re-enter new password: <пароль_администратора_сервера> {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
2. Создайте файл chrootpw.ldif:
sudo nano chrootpw.ldif
Добавьте содержимое файла и укажите хеш, сгенерированный выше:
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
3. Примените изменения:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
Пример вывода:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
Добавление необходимых схем
Схемы входят в состав пакета OpenLDAP. Выполняйте импорт только если их нет в выводе команды ниже.
1. Проверьте, какие схемы уже загружены на сервер:
sudo ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn
2. Импортируйте схемы для работы с пользователями и организациями:
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
где:
cosine.ldif— схема для работы с организациями и подразделениями;nis.ldif— схема NIS (Network Information Service — сетевая служба каталогов) для интеграции с Unix-системами;inetorgperson.ldif— схема для работы с пользователями в интернет-среде.
Пример вывода:
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=cosine,cn=schema,cn=config" SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=nis,cn=schema,cn=config" SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=inetorgperson,cn=schema,cn=config"
3. После выполнения команд убедитесь, что схемы успешно загружены:
sudo ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn
Пример вывода команды:
# {1}cosine, schema, config
dn: cn={1}cosine,cn=schema,cn=config
# {2}nis, schema, config
dn: cn={2}nis,cn=schema,cn=config
# {3}inetorgperson, schema, config
dn: cn={3}inetorgperson,cn=schema,cn=config
Настройка базы данных
Для настройки базы данных выполните следующие действия:
1. Сгенерируйте пароль менеджера каталога:
slappasswd
Пример вывода команды:
New password: <пароль_администратора_каталога> Re-enter new password: <пароль_администратора_каталога> {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
2. Создайте конфигурационный файл configure-db.ldif:
sudo nano configure-db.ldif
Пример содержимого файла:
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=admin,dc=example,dc=com" read by * none
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=example,dc=com
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=example,dc=com" write by * read
3. Для применения настроек базы данных выполните команду:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f configure-db.ldif
Если команда выполнена успешно, в выводе будут строки вида: modifying entry "olcDatabase=...,cn=config".
Создание базовой структуры каталога
Рассмотрим создание базовой структуры OpenLDAP-каталога, которая включает корневую организацию и контейнеры для пользователей и групп.
1. Создайте файл структуры каталога:
sudo nano base-structure.ldif
Пример содержимого файла:
dn: dc=example,dc=com objectClass: top objectClass: dcObject objectClass: organization o: Example Inc. dc: example dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People dn: ou=Groups,dc=example,dc=com objectClass: organizationalUnit ou: Groups
2. Импортируйте структуру:
sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f base-structure.ldif
Пример вывода команды:
Enter LDAP Password: <пароль_администратора_каталога>
adding new entry "dc=example,dc=com"
adding new entry "ou=People,dc=example,dc=com"
adding new entry "ou=Groups,dc=example,dc=com"
Созданы корневая организация, контейнеры для пользователей и групп.
3. Для поиска всей структуры каталога выполните команду:
sudo ldapsearch -x -b "dc=example,dc=com" "(objectclass=*)"
Для проверки конкретных записей выполните команды:
sudo ldapsearch -x -b "ou=People,dc=example,dc=com" -s base "(objectclass=*)" sudo ldapsearch -x -b "ou=Groups,dc=example,dc=com" -s base "(objectclass=*)"
Создание SSL-сертификата
Процесс генерации самоподписанного сертификата и закрытого ключа подробно рассмотрен в нашей инструкции «Создание SSL-сертификата».
Настройка SSL/TLS для OpenLDAP
Для обеспечения защищенного соединения с OpenLDAP-сервером необходимо настроить SSL/TLS. Выполните следующие действия:
1. Скопируйте сертификаты в каталог OpenLDAP:
sudo cp /etc/pki/tls/certs/server.key \ /etc/pki/tls/certs/server.crt \ /etc/pki/tls/certs/ca-bundle.crt \ /etc/openldap/certs/
2. Настройте права доступа к SSL-сертификатам:
sudo chown ldap. /etc/openldap/certs/server.key \ /etc/openldap/certs/server.crt \ /etc/openldap/certs/ca-bundle.crt
3. Создайте конфигурационный файл для SSL/TLS:
nano mod_ssl.ldif
Пример содержимого файла:
dn: cn=config changetype: modify replace: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/openldap/certs/ca-bundle.crt - replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/openldap/certs/server.crt - replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/openldap/certs/server.key
4. Примените настройки конфигурации:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f mod_ssl.ldif
5. Перезапустите службу OpenLDAP:
sudo systemctl restart slapd systemctl status slapd
Настройка брандмауэра Firewall
Если запущен Firewalld, разрешите службы LDAP и LDAPS:
sudo firewall-cmd --permanent --add-service={ldap,ldaps}
sudo firewall-cmd --reload
Пример вывода команд:
success success
Дата последнего изменения: 04.09.2026
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.