Гид по технологиям

Установка и настройка OpenLDAP на Debian 11 (Bullseye)

• 6 min read • Серверы • Обновлено 24 Nov 2025
OpenLDAP на Debian 11 — установка и настройка
OpenLDAP на Debian 11 — установка и настройка

Важно: перед началом убедитесь, что у вас есть резервная копия и доступ под пользователем с sudo-привилегиями.

О чём эта инструкция

Это практическое руководство предназначено для системных администраторов и инженеров DevOps, которым нужно развернуть локальный LDAP-сервер на Debian 11. Показаны команды, примеры LDIF и распространённые проблемы с решениями.

Основные термины (в одну строку)

  • LDAP — протокол для централизованного хранения и поиска учётных записей и атрибутов.
  • slapd — демон OpenLDAP, реализующий LDAP-сервер.
  • LDIF — текстовый формат для импорта/экспорта записей LDAP.

Предварительные требования

  • Сервер с Debian 11 (Bullseye).
  • Ненулевой пользователь с sudo/root-привилегиями.
  • Желательно статический IP и правильная настройка DNS/FQDN.

Шаг 1. Установка пакетов OpenLDAP

Обновите список пакетов и установите slapd и ldap-utils (в репозиториях Debian доступна стабильная ветка OpenLDAP 2.4):

sudo apt update
sudo apt install slapd ldap-utils

Во время установки будет предложено задать пароль администратора и некоторые параметры. Подтвердите установку, нажав Y и Enter.

Скриншот установки пакета slapd в Debian

Далее задайте пароль администратора OpenLDAP при появлении диалога конфигурации, подтвердите его и дождитесь завершения установки.

Скриншот ввода пароля администратора OpenLDAP

Скриншот подтверждения пароля администратора OpenLDAP

Шаг 2. Настройка FQDN и /etc/hosts

Для корректной работы сертификатов и логов задайте полное доменное имя (FQDN):

sudo hostnamectl set-hostname ldap.mydomain.local

Отредактируйте /etc/hosts и добавьте строку с IP и FQDN:

sudo nano /etc/hosts

Пример строки в hosts (замените IP и домен на свои значения):

192.168.10.50 ldap.mydomain.local ldap

Сохраните файл и переподключитесь по SSH, чтобы обновлённый hostname применился.

Шаг 3. Переконфигурация slapd (если нужно)

Если вы хотите изменить параметры, можно запустить:

sudo dpkg-reconfigure slapd

Когда спросят, удалять ли старую конфигурацию, выберите No, чтобы сохранить текущую конфигурацию и данные.

Выбор не удалять старую базу slapd

Далее укажите локальный DNS-домен (например, mydomain.local), организацию, и повторно введите пароль администратора.

Настройка имени организации OpenLDAP

Ввод пароля администратора OpenLDAP

После завершения выполните проверку дампа БД:

sudo slapcat

В выводе вы должны увидеть структуру dc=mydomain,dc=local и организационные подразделения.

Вывод команды slapcat с конфигурацией домена mydomain.local

Перезапустите сервис и проверьте его статус:

sudo systemctl restart slapd
sudo systemctl status slapd

Статус должен быть active (running).

Перезапуск и проверка статуса службы slapd

Шаг 4. Правила UFW (опционально)

Если на сервере включён UFW, откройте порты для LDAP и LDAPS:

sudo ufw allow LDAP
sudo ufw allow LDAPS
sudo ufw reload
sudo ufw status

Это добавит профили сервисов LDAP/LDAPS в правила UFW.

Скриншот правил UFW с LDAP и LDAPS

Важно: открывайте порты только при необходимости и из доверенных сетей.

Шаг 5. Создание организационного подразделения (OU) через LDIF

LDIF — текстовый формат для описания записей LDAP. Создадим OU People:

sudo nano /etc/ldap/users.ldif

Вставьте:

dn: ou=People,dc=mydomain,dc=local
objectClass: organizationalUnit
ou: People

Сохраните и импортируйте:

sudo ldapadd -D "cn=admin,dc=mydomain,dc=local" -W -H ldapi:/// -f /etc/ldap/users.ldif

Для подключения используется LDAPI (локальная сокетная связь). После успешного добавления вы увидите сообщение о создании новой записи.

Скриншот добавления OU People в OpenLDAP

Проверка через ldapsearch:

sudo ldapsearch -x -b "dc=mydomain,dc=local" ou

В выводе должна быть запись ou=People.

Скриншот вывода ldapsearch, показывающий OU People

Шаг 6. Создание пользователя через LDIF

Пример добавления пользователя alice. Создайте файл alice.ldif:

sudo nano alice.ldif

Вставьте следующий блок, заменив пароль и UID/GID по необходимости:

# Add user alice to LDAP Server
dn: cn=alice,ou=People,dc=mydomain,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: alice
uid: alice
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/alice
userPassword: AlicePassword
loginShell: /bin/bash

Сохраните и импортируйте:

sudo ldapadd -D "cn=admin,dc=mydomain,dc=local" -W -H ldapi:/// -f alice.ldif

После успешного выполнения пользователь alice появится в списке:

sudo ldapsearch -x -b "ou=People,dc=mydomain,dc=local"

Скриншот создания пользователя alice в OpenLDAP

Скриншот вывода ldapsearch со списком пользователей OpenLDAP

Важно: хранить пароли в виде открытого текста в LDIF не рекомендуется для production. Используйте хеширование (например, SSHA) — пример ниже.

Хэширование пароля (рекомендуется)

Создайте хеш пароля с помощью slappasswd:

slappasswd
# Введите пароль, получите строку вида {SSHA}... и замените userPassword на неё в LDIF.

Примерно:

userPassword: {SSHA}xYZ...generatedhash...

Повторно выполните ldapadd или ldapmodify для внесения безопасного пароля.

Проверка и отладка — распространённые ошибки и решения

  • Ошибка: «ldap_bind: Invalid credentials».
    Решение: проверьте DN и пароль администратора; при использовании ldapi:/// убедитесь, что вы запускаете команду от пользователя с правами или используете proper bind DN.

  • Ошибка: «Can’t contact LDAP server».
    Решение: проверьте, запущен ли slapd, нет ли блокировки UFW/firewall и корректен ли FQDN/IP.

  • При импорте LDIF «entry already exists».
    Решение: используйте ldapmodify для изменения существующих записей или удалите старую запись перед добавлением.

  • Проблемы с правами файлов: убедитесь, что дерективы в /etc/ldap соответствуют владельцу и правам доступа.

Минимальная методология развёртывания (шаги для повторяемости)

  1. Подготовка сервера: hostname, /etc/hosts, обновление пакетов.
  2. Установка slapd и ldap-utils.
  3. Переконфигурация (dpkg-reconfigure) при необходимости.
  4. Создание OU и базовых записей через LDIF.
  5. Настройка сети/фаервола.
  6. Бэкап конфигурации и данных (снимок /var/lib/ldap и /etc/ldap).
  7. Внедрение TLS и тесты.

Безопасность: базовая защита TLS и SASL

  1. Получите сертификат для FQDN сервера (самоподписанный или из CA).
  2. Поместите cert и key в /etc/ssl или каталог, указанный в конфигурации slapd.
  3. Настройте cn=config через ldapmodify или с помощью olcTLSCertificateFile/olcTLSCertificateKeyFile.

Пример (используя ldapmodify по LDAPI):

cat > tls.ldif <

После этого перезапустите slapd и проверьте подключение по LDAPS (порт 636) или StartTLS (порт 389).

Важно: используйте сильные ключи и следите за правами доступа к приватным ключам.

Ролевые чек-листы (кто за что отвечает)

  • Системный администратор: установка пакетов, настройка хоста, права файлов, бэкап.
  • Инженер безопасности: выпуск сертификатов, аудит соответствия, настройка TLS/SASL.
  • DevOps/интегратор: интеграция клиентов, массовая синхронизация учётных записей, CI/CD для LDIF-шаблонов.
  • Оператор: мониторинг службы, ответ на инциденты и восстановление из бэкапа.

Критерии приёмки

  • slapd активен и отвечает: sudo systemctl status slapd → active (running).
  • Базовая запись dc=mydomain,dc=local доступна через slapcat и ldapsearch.
  • OU People и пользователь alice видны через ldapsearch.
  • При необходимости TLS успешно установлен и проверен клиентом.

Модели зрелости внедрения (кратко)

  • Начальный: локальный LDAP, ручное управление LDIF.
  • Средний: автоматизация LDIF через репозиторий, бэкапы, базовый TLS.
  • Продвинутый: HA-кластеризация, репликация, централизованный аудит и интеграция с SSO.

Советы по миграции и совместимости

  • Избегайте ручных изменений в базе данных без использования cn=config или LDIF — это помогает репликации.
  • Перед обновлением Debian проверяйте совместимость пакетов OpenLDAP и модулей (SASL, ppolicy и т.п.).
  • Для репликации между мастером и слейвом используйте syncrepl/olcSyncRepl, настраивая соответствующие ACL.

Примеры часто используемых команд

  • Просмотреть всю базу: sudo slapcat
  • Поиск: sudo ldapsearch -x -b “dc=mydomain,dc=local” “(objectClass=*)”
  • Добавление из файла: sudo ldapadd -D “cn=admin,dc=mydomain,dc=local” -W -H ldapi:/// -f file.ldif
  • Изменение через ldapi по правам EXTERNAL: sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f change.ldif

Проверочные тесты / Acceptance

  • Тест 1: ldapsearch возвращает dc=mydomain,dc=local и ou=People.
  • Тест 2: аутентификация пользователя alice (например, с помощью pam_ldap) проходит локально.
  • Тест 3: TLS соединение по ldap:// или ldaps:// завершается успешно без ошибок сертификата (если доверенный CA).

Отказоустойчивость и откат (runbook)

  1. Если новый конфиг привёл к падению slapd — откатите изменения cn=config через резервную копию или восстановите каталог /var/lib/ldap из backup.
  2. Если LDAP недоступен для клиентов — переключите клиентов на резервный источник аутентификации (локальные учётные записи) и восстановите SLAPD.
  3. Для отката LDIF удалите добавленные записи через ldapdelete по DN.

FAQ

Как безопасно хранить пароли в LDIF?

Используйте slappasswd для генерации SSHA-хэшей и записывайте хэш в userPassword вместо открытого текста.

Можно ли использовать OpenLDAP в продакшене без TLS?

Технически можно, но крайне не рекомендуется: пароли и данные будут передаваться открытым текстом. Используйте TLS или StartTLS.

Как сделать репликацию между серверами OpenLDAP?

Настройте syncrepl/olcSyncRepl на серверах master/slave и убедитесь, что ACL и права доступа корректны.

1‑строчный глоссарий

  • slapd — демон OpenLDAP.
  • LDIF — формат импорта/экспорта LDAP.
  • LDAPI — локальный сокет для администрирования slapd.
  • SSHA — формат хеширования паролей.

Заключение

Поздравляем — вы установили и настроили OpenLDAP на Debian 11, создали OU и добавили пользователя через LDIF. Следующие шаги: настроить TLS, продумать резервное копирование и, при необходимости, подключить клиентов (Linux/Unix/приложения) с использованием PAM/ NSS или SSSD.

Важные заметки: используйте хешированные пароли, ограничивайте доступ к ключам и открывайте сетевые порты только для доверенных хостов.

Полезные дальнейшие темы

  • Интеграция Linux-клиентов (PAM, NSS, SSSD).
  • Настройка репликации и высокодоступных конфигураций.
  • Управление схемами и расширениями ppolicy, memberOf.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро