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

Установка OpenLDAP и LDAP Account Manager (LAM) на Ubuntu 22.04

6 min read LDAP Обновлено 28 Nov 2025
OpenLDAP + LAM на Ubuntu 22.04 — Руководство
OpenLDAP + LAM на Ubuntu 22.04 — Руководство

Важно: в этом руководстве приведены рабочие примеры команд и LDIF-файлов. Измените домен, имена и пароли под свои нужды.

Коротко о терминах

  • OpenLDAP — реализация протокола LDAP, серверная часть называется slapd.
  • LAM (LDAP Account Manager) — веб-интерфейс для управления объектами LDAP.
  • DN (Distinguished Name) — уникальный путь к записи в дереве LDAP, например dc=localdomain,dc=com.

Цели руководства

  • Установить и настроить OpenLDAP на Ubuntu 22.04.
  • Создать базовую структуру (ou=People, ou=Groups).
  • Добавить группы и пользователей через LDIF.
  • Установить и сконфигурировать LDAP Account Manager.
  • Привести инструкции по проверке, бэкапам и базовой безопасности.

Подготовка и требования

  • Сервер Ubuntu 22.04 с доступом под пользователем с sudo.
  • Статический IP или стабильная запись в /etc/hosts для FQDN.
  • Простая политика паролей для администраторов и учётных записей LDAP.

Совет: разворачивайте сначала на тестовой машине или в виртуальной среде перед продакшеном.

1. Настройка FQDN

Для корректной работы сертификатов и сервисов убедитесь, что сервер имеет корректный FQDN.

В примере используем:

  • hostname: ldap
  • домен: localdomain.com
  • IP: 192.168.5.25

Выполните:

sudo hostnamectl set-hostname ldap.localdomain.com

Отредактируйте /etc/hosts:

sudo nano /etc/hosts

Добавьте строку (формат: IP FQDN hostname):

192.168.5.25 ldap.localdomain.com ldap

Проверьте FQDN и пинги:

sudo hostname -f
ping -c 3 ldap

Проверка FQDN и ответа ping

2. Установка OpenLDAP и утилит

Обновите индекс пакетов и установите slapd и ldap-utils:

sudo apt update
sudo apt install slapd ldap-utils

При установке система предложит задать пароль администратора (cn=admin). Укажите надёжный пароль.

Установка пакетов OpenLDAP

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

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

sudo dpkg-reconfigure slapd

Выберите “No” при вопросе о пропуске конфигурации. Укажите домен (localdomain.com), организацию и пароль администратора. Если предлагается удалить старую базу — внимательно читайте подсказки: в тестовой среде можно принять удаление, в продакшене — лучше переместить.

Переконфигурация slapd

4. Настройка /etc/ldap/ldap.conf

Отредактируйте конфигурацию клиента LDAP:

sudo nano /etc/ldap/ldap.conf

Убедитесь, что указаны BASE и URI:

BASE dc=localdomain,dc=com
URI ldap://ldap.localdomain.com

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

sudo systemctl restart slapd
sudo systemctl status slapd

Проверка статуса slapd

Проверьте базовую конфигурацию через ldapi:

sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:///

Проверка DN

5. Создание базовых OU (People и Groups)

Создадим организационные единицы для пользователей и групп через LDIF.

Создайте файл base-groups.ldif:

sudo nano base-groups.ldif

Вставьте:

dn: ou=People,dc=localdomain,dc=com
objectClass: organizationalUnit
ou: People

 dn: ou=Groups,dc=localdomain,dc=com
objectClass: organizationalUnit
ou: Groups

Добавьте в LDAP:

sudo ldapadd -x -D cn=admin,dc=localdomain,dc=com -W -f base-groups.ldif

Проверьте:

sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// | sed -n '1,120p'

Создание базовых OU

6. Создание группы (developers)

Создайте group.ldif:

sudo nano group.ldif

Пример содержимого:

dn: cn=developers,ou=Groups,dc=localdomain,dc=com
objectClass: posixGroup
cn: developers
gidNumber: 5000

Добавление:

sudo ldapadd -x -D cn=admin,dc=localdomain,dc=com -W -f group.ldif

Проверка:

sudo ldapsearch -x -LLL -b dc=localdomain,dc=com '(cn=developers)' gidNumber

Проверка группы developers

7. Добавление пользователя (john)

Сгенерируйте хеш пароля (SSHA):

sudo slappasswd

Он запросит пароль и вернёт строку вида {SSHA}… — вставьте её в LDIF.

Создайте user.ldif:

sudo nano user.ldif

Вставьте пример:

dn: uid=john,ou=People,dc=localdomain,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: {SSHA}ZdNAB+uH/zbK1mdS9JWlfOwRDf0mrsla
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/john

Добавление пользователя:

sudo ldapadd -x -D cn=admin,dc=localdomain,dc=com -W -f user.ldif

Проверка:

sudo ldapsearch -x -LLL -b dc=localdomain,dc=com '(uid=john)' cn uidNumber gidNumber

Создан пользователь john

8. Установка LDAP Account Manager (LAM)

Установите пакет из репозитория Ubuntu:

sudo apt install ldap-account-manager

Пакет установит Apache и PHP, как зависимости. После завершения откройте браузер по адресу http://192.168.5.25/lam или http://<ваш-IP>/lam

Страница входа LAM

9. Настройка профиля сервера в LAM

  1. На странице LAM нажмите “LAM configuration” → “Edit server profiles”.
  2. Вход по умолчанию: пароль “lam”. При первом входе смените пароль профиля.
  3. На “General settings” укажите DN: dc=localdomain,dc=com.
  4. В “Security settings” выберите метод входа Fixed list и укажите учётку администратора LDAP: cn=admin,dc=localdomain,dc=com.
  5. На вкладке “Account types” укажите суффиксы:
    • Users: ou=People,dc=localdomain,dc=com
    • Groups: ou=Groups,dc=localdomain,dc=com
  6. Сохраните.

Конфигурация LAM — профиль сервера

Войдите под администратором LDAP через интерфейс LAM. Вы должны увидеть ранее созданные объекты (john, developers).

Вход в LAM под admin

Список пользователей в LAM

10. Проверки приёмки

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

  • slapd запущен и отвечает: systemctl status slapd.
  • ldapsearch возвращает ожидаемые DN и записи.
  • LAM открывается в браузере и авторизуется под admin.
  • В интерфейсе LAM видны созданные пользователи и группы.

11. Резервное копирование и восстановление конфигурации

  • Экспорт всех записей LDAP (LDIF):
sudo slapcat -n 0 -l config.ldif   # конфигурация
sudo slapcat -n 1 -l data.ldif     # данные базы данных
  • Восстановление из LDIF (внимание: остановите slapd при восстановлении данных):
sudo systemctl stop slapd
sudo slapadd -n 1 -l data.ldif
sudo chown -R openldap:openldap /var/lib/ldap
sudo systemctl start slapd

Совет: храните резервные копии вне сервера и используйте контроль версий для конфигов.

12. Базовая безопасность и рекомендации

  • Минимально открывайте порты: 389 (LDAP), 636 (LDAPS) только для доверенных сетей.
  • Рассмотрите LDAPS (порт 636) или STARTTLS на 389 для шифрования трафика.
  • Ограничьте bind-операции администратора: используйте отдельные технические учётные записи с минимальными правами.
  • Периодически меняйте пароли и используйте сложные пароли.
  • Включите аудит (если требуется) через overlay ppolicy/auditlog.

Пример настройки TLS (в общих чертах):

  1. Получите сертификат (CA-signed или внутренний).
  2. Поместите cert и key в /etc/ssl/ и укажите пути в cn=config через ldapmodify.
  3. Включите требование TLS для внешних подключений.

Важно: настройка TLS выходит за рамки этого базового руководства — тестируйте изменения на стенде.

13. Технические советы и альтернативы

Когда стоит использовать LAM:

  • Если нужна простая веб-администрация для администраторов без навыков LDAP.
  • Быстрое создание учётных записей и групп.

Когда лучше CLI/скрипты:

  • Массовые операции, автоматизация (CI/CD), интеграция с Ansible и другими инструментами.

Альтернативы LAM:

  • phpLDAPadmin — более старый, но функциональный веб-интерфейс.
  • FusionDirectory — более крупная система с доп. функционалом.

14. Диагностика и типовые проблемы

Проблемы и быстрые проверки:

  • “Can’t contact LDAP server”: проверьте службу slapd, firewall и /etc/hosts.
  • “Invalid credentials”: проверьте DN и пароль администратора.
  • Невидимые записи в LAM: проверьте суффиксы (Users/Groups) в профиле LAM и права доступа bind-пользователя.

Полезные команды:

# Поиск по базе
sudo ldapsearch -x -LLL -b dc=localdomain,dc=com '(objectClass=*)' | head -n 200

# Проверить порт
ss -ltnp | grep slapd

# Логи
sudo journalctl -u slapd --no-pager | tail -n 200

15. Mini-SOP: Быстрое восстановление после случайного удаления OU

  1. Немедленно экспортируйте текущую конфигурацию slapd и данные (slapcat).
  2. Если есть свежий .ldif с бэкапом, остановите slapd: sudo systemctl stop slapd.
  3. Восстановите данные через slapadd.
  4. Исправьте права: sudo chown -R openldap:openldap /var/lib/ldap.
  5. Запустите slapd и проверьте ldapsearch.

16. Шаблоны LDIF и примеры (чек-лист и готовые файлы)

  • base-groups.ldif (см. выше)
  • group.ldif (см. выше)
  • user.ldif (см. выше)

Шаблон добавления участника в группу (memberUid):

dn: cn=developers,ou=Groups,dc=localdomain,dc=com
changetype: modify
add: memberUid
memberUid: john

Применение:

sudo ldapmodify -x -D cn=admin,dc=localdomain,dc=com -W -f add-member.ldif

17. Роль‑базированные контрольные списки

Администратор (развёртывание):

  • Настроить FQDN и /etc/hosts.
  • Установить slapd и ldap-utils.
  • Переконфигурировать slapd при необходимости.
  • Создать OU, группы, первого пользователя.
  • Сделать экспорт конфигурации и данных.

Оператор (ежедневные задачи):

  • Создание/удаление пользователей через LAM.
  • Проверка статуса службы и логов.
  • Периодические бэкапы.

Аудитор / Безопасность:

  • Проверка прав доступа к admin-учётке.
  • Регулярный аудит логов (особенно failed binds).
  • Контроль использования TLS.

18. Приёмка и тесты (Test cases)

  • TC1: ldapsearch возвращает cn=John Doe для uid=john.
  • TC2: LAM отображает пользователя john при входе как admin.
  • TC3: Группа developers содержит gidNumber 5000 и memberUid=john после модификации.
  • TC4: После перезапуска slapd данные сохраняются и ldapsearch возвращает записи.

19. Краткое руководство по миграции с другого LDAP

  • Экспортируйте LDIF из старой системы.
  • Скорректируйте DN, атрибуты и схемы под OpenLDAP (cn=config vs slapd.conf).
  • Загрузите LDIF в тестовую среду и проверьте целостность.
  • Обновите клиенты/приложения на новые DN и адреса сервера.

20. Диаграмма принятия решения: LAM или CLI

flowchart TD
  A[Нужно управлять LDAP] --> B{Много объёмных автоматизированных операций?}
  B -- Да --> C[Использовать CLI/скрипты/Ansible]
  B -- Нет --> D{Нужен GUI для админов без LDAP опыта?}
  D -- Да --> E[Использовать LAM]
  D -- Нет --> C
  C --> F[Интеграция в CI/CD и автоматизация]
  E --> G[Упрощённое управление через браузер]

21. Глоссарий (1‑строчное определение)

  • DN: уникальное имя записи в дереве LDAP.
  • OU: организационная единица — контейнер для записей.
  • LDIF: формат для импорта/экспорта данных LDAP.
  • slapd: демон сервера OpenLDAP.
  • LAM: веб-интерфейс управления объектами LDAP.

22. Заключение

Вы успешно настроили базовый OpenLDAP с веб-интерфейсом LAM. У вас есть рабочая структура OU, группа developers и пользователь john. Следующие шаги — настроить шифрование (TLS), интегрировать с системами аутентификации и организовать регулярные бэкапы.

Важно: перед применением изменений в продакшене тестируйте на стенде. Документируйте все пароли, ключи и бэкапы в защищённом хранилище.


Краткое резюме (выводы):

  • OpenLDAP — гибкий LDAP-сервер. LAM облегчает повседневную администрирование.
  • Используйте LDIF для версионного контроля и автоматизации изменений.
  • Обеспечьте TLS и регулярные бэкапы перед выводом в прод.

Примечание: конкретная настройка TLS, ppolicy и сложных overlay требует отдельного руководства.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство