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

Установка 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
Автор
Редакция

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

Как сбросить Samsung планшет до заводских настроек
Руководство

Как сбросить Samsung планшет до заводских настроек

Удаление дубликатов Burst на iPhone
iPhone фото

Удаление дубликатов Burst на iPhone

iHome SmartMonitor: руководство и настройка
Умный дом

iHome SmartMonitor: руководство и настройка

Pin Window на Samsung: настройка и безопасность
Мобильные устройства

Pin Window на Samsung: настройка и безопасность

Как исправить VCRUNTIME140.dll is missing в Windows 10
Windows

Как исправить VCRUNTIME140.dll is missing в Windows 10

Исправить ошибки CTF Loader в Windows 10
Windows

Исправить ошибки CTF Loader в Windows 10