Коли і навіщо потрібен OpenLDAP?
Уявіть: ваша компанія зростає — 50, 100, 500 співробітників. Щодня приходять нові люди, і адміну потрібно створювати облікові записи в пошті, VPN, GitLab, Nextcloud, Grafana, SSH та інших системах. А коли співробітник звільняється, відключення доступу перетворюється на квест по восьми різних інтерфейсах. Помилка — і колишній співробітник зберігає доступ до критичних даних. OpenLDAP вирішує цю проблему раз і назавжди: єдиний LDAP сервер, одна точка керування, миттєве блокування.
Ми розгорнули OpenLDAP для 50+ організацій — від стартапів до холдингів з тисячами співробітників. Наш досвід показує, що правильно спроектований LDAP-каталог знижує час адміністрування облікових записів на 70%, а MTTR при інцидентах — з годин до хвилин (середній uptime 99.9%). OpenLDAP — це відкрита реалізація LDAP, що відповідає стандарту RFC 4511. На відміну від Windows Active Directory, він не вимагає ліцензій і працює на будь-якому Linux. Економія на ліцензіях сягає 70% порівняно з AD.
Але LDAP корисний не лише для автентифікації. Його можна використовувати як універсальний довідник контактів, централізоване сховище сертифікатів, каталог мережевих ресурсів. У компаніях, де вже є AD, OpenLDAP часто стає концентратором між Linux- та Windows-інфраструктурами.
Порівняння рішень для централізованої автентифікації
| Критерій | OpenLDAP | FreeIPA | Active Directory |
|---|---|---|---|
| Ліцензія | Open Source (BSD-like) | GPL | Пропрієтарна |
| Платформа | Linux, *BSD | Linux | Windows Server |
| Підтримка Kerberos | Вручну | Вбудована | Вбудована |
| Інтеграція з DNS | Налаштування BIND | Вбудована | Вбудована |
| Складність впровадження | Середня | Середня | Висока (ліцензії) |
| Типовий сценарій | Linux-інфраструктура, веб-сервіси | Linux+Kerberos, домен | Windows-домен, Office 365 |
Отримайте консультацію з вибору рішення для вашої інфраструктури — ми допоможемо уникнути типових помилок.
Як спроектувати дерево LDAP?
LDAP — це ієрархічне дерево об'єктів (DIT). Перед встановленням обов'язково спроектуйте структуру. Типова схема:
dc=example,dc=com
├── ou=users — облікові записи користувачів
├── ou=groups — групи
├── ou=services — сервісні акаунти для додатків
└── ou=computers — комп'ютери (якщо потрібно)Кожен користувач — об'єкт з класами inetOrgPerson та posixAccount. Це забезпечує сумісність з PAM, NSS та більшістю веб-додатків.
Приклад запису користувача:
dn: uid=jsmith,ou=users,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
uid: jsmith
cn: John Smith
sn: Smith
mail: [email protected]
uidNumber: 10001
gidNumber: 10000
homeDirectory: /home/jsmith
loginShell: /bin/bash
userPassword: {SSHA}hashhereСтруктура додається командою: ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f structure.ldif.
Встановлення та налаштування TLS
Встановлення: apt install slapd ldap-utils, потім dpkg-reconfigure slapd для завдання пароля admin та суфікса. Конфігурація ведеться через OLC (cn=config) — це live and running, без перезапуску slapd.
Без TLS паролі передаються у відкритому вигляді — це критична вразливість. Налаштовуємо TLS через LDIF:
dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/ca-certificates.crt
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ldap/ssl/ldap.crt
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ldap/ssl/ldap.key
-
add: olcTLSVerifyClient
olcTLSVerifyClient: never
Застосувати: ldapmodify -Y EXTERNAL -H ldapi:/// -f tls.ldif. На клієнтах у ldap.conf пропишіть TLS_CACERT та TLS_REQCERT demand. Ми завжди налаштовуємо StartTLS або LDAPS залежно від вимог безпеки.
Реплікація для відмовостійкості
Для production мінімум два сервери. Ми використовуємо MirrorMode: зміни застосовуються на будь-який сервер, реплікуються асинхронно. При недоступності одного сервера клієнти автоматично перемикаються на другий. Час перемикання — менше 5 хвилин. Uptime — 99.9%.
Конфігурація реплікації:
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001 provider=ldap://ldap01.example.com bindmethod=simple binddn="cn=replicator,dc=example,dc=com" credentials=replicapassword searchbase="dc=example,dc=com" schemachecking=on type=refreshAndPersist retry="5 5 300 +"
add: olcMirrorMode
olcMirrorMode: TRUE
Для аварійного відновлення — щоденний експорт через slapcat -l /backup/ldap-$(date +%Y%m%d).ldif. Зберігання 30 днів. Відновлення через slapadd.
Інтеграція з сервісами
Кожному додатку — окремий сервісний акаунт в ou=services з мінімальними правами (принцип least privilege). ACL обмежують доступ лише до необхідних атрибутів. Наприклад, для GitLab:
olcAccess: to * by dn.base="uid=gitlab-svc,ou=services,dc=example,dc=com" read by * none Nextcloud, GitLab, Grafana, Zabbix, OpenVPN — всі підтримують LDAP. Новий співробітник отримує доступ до всіх систем одночасно. Час на створення обліковки — 30 секунд.
Реальний кейс: розгортання для e-commerce з 5000 користувачів
Великий інтернет-магазин звернувся до нас для централізації автентифікації. Спершу кожен сервіс (1С-Бітрікс, Jira, GitLab, Zabbix, Grafana, пошта) мав власну базу користувачів. При звільненні співробітника доступ залишався ще тижнями.
Ми спроектували дерево: ou=users (5000 записів), ou=groups (200 груп), ou=services (15 акаунтів). Розгорнули 2 сервери OpenLDAP у різних дата-центрах з MirrorMode, налаштували TLS та ACL. Інтегрували всі 15 сервісів, створили веб-інтерфейс на LDAP Account Manager для самообслуговування (зміна пароля, оновлення контактів). Результат: час на адміністрування облікових записів скоротився з 20 годин на тиждень до 2 годин. Час автентифікації — менше 10 мс. Uptime 99.95% за рік.
Процес роботи та терміни
| Етап | Тривалість |
|---|---|
| Аналітика (аудит поточної інфраструктури) | 1 день |
| Проектування дерева та прав доступу | 1 день |
| Встановлення OpenLDAP, налаштування TLS та реплікації | 1-2 дні |
| Інтеграція додатків та імпорт користувачів | 1-2 дні |
| Тестування автентифікації, failover та бекапів | 1 день |
| Документування та навчання адміністраторів | 1 день |
Орієнтовні терміни: від 5 до 10 робочих днів залежно від кількості сервісів та обсягів міграції. Вартість розраховується індивідуально. Оцінимо ваш проєкт — зв'яжіться з нами для консультації.
Що ви отримуєте в результаті
За підсумком проєкту ви отримуєте:
- Працюючий OpenLDAP-каталог з TLS та реплікацією.
- Інтеграцію з усіма зазначеними сервісами (до 20).
- Скрипти резервного копіювання та відновлення.
- Документацію: архітектура, інструкції, контакти.
- Навчання ваших адміністраторів (2-3 години).
- Підтримку протягом 2 тижнів після впровадження.
Типові помилки та як їх уникнути
- Пропуск TLS — паролі передаються відкритим текстом. Завжди вмикайте TLS або StartTLS.
- Один акаунт для всіх додатків — кожному сервісу свій акаунт з мінімальними правами.
- Відсутність реплікації — єдиний сервер — точка відмови. Мінімум два сервери.
- Складна структура — надто глибокі ou або надлишкові objectClass. Проектуйте під реальні завдання, не ускладнюйте.
- Невраховані залежності — перед міграцією проведіть аудит. Наш досвід: у 30% проєктів виявляються приховані залежності, які без аудиту ведуть до простою.
Замовте аудит вашої інфраструктури — ми виявимо ризики та запропонуємо план міграції.







