Установка OpenLDAP и LDAP Account Manager (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
2. Установка OpenLDAP и утилит
Обновите индекс пакетов и установите slapd и ldap-utils:
sudo apt update
sudo apt install slapd ldap-utilsПри установке система предложит задать пароль администратора (cn=admin). Укажите надёжный пароль.

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

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
Проверьте базовую конфигурацию через ldapi:
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:///
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'
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
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
8. Установка LDAP Account Manager (LAM)
Установите пакет из репозитория Ubuntu:
sudo apt install ldap-account-managerПакет установит Apache и PHP, как зависимости. После завершения откройте браузер по адресу http://192.168.5.25/lam или http://<ваш-IP>/lam

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

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


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 (в общих чертах):
- Получите сертификат (CA-signed или внутренний).
- Поместите cert и key в /etc/ssl/ и укажите пути в cn=config через ldapmodify.
- Включите требование 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 20015. Mini-SOP: Быстрое восстановление после случайного удаления OU
- Немедленно экспортируйте текущую конфигурацию slapd и данные (slapcat).
- Если есть свежий .ldif с бэкапом, остановите slapd: sudo systemctl stop slapd.
- Восстановите данные через slapadd.
- Исправьте права: sudo chown -R openldap:openldap /var/lib/ldap.
- Запустите 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.ldif17. Роль‑базированные контрольные списки
Администратор (развёртывание):
- Настроить 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 требует отдельного руководства.
Похожие материалы
Как сбросить Samsung планшет до заводских настроек
Удаление дубликатов Burst на iPhone
iHome SmartMonitor: руководство и настройка
Pin Window на Samsung: настройка и безопасность
Как исправить VCRUNTIME140.dll is missing в Windows 10