mini-ldap
Легковесный LDAP сервер на Python с поддержкой Active Directory атрибутов для тестирования и разработки.
🎯 Возможности
- ✅ Cовместимость с AD
- ✅ Поддержка основных операций - BIND, SEARCH, MODIFY, ADD, DELETE
- ✅ Wildcard поиск - поддержка масок в фильтрах
- ✅ Динамические тестовые пользователи - генерация до 10,000+ пользователей на лету
- ✅ Высокая производительность - индексы, кэширование, асинхронная запись
- ✅ Гибкая конфигурация - внешний INI файл с настройками
- ✅ Debug режим - детальное логирование для отладки
🔧 Установка собранного пакета
# На ЛЮБОЙ машине Debian/Ubuntu
sudo dpkg -i mini-ldap_1.0.0_all.deb
# Запуск
sudo systemctl start mini-ldap
# Проверка
sudo systemctl status mini-ldap
# Логи
sudo journalctl -u mini-ldap -f
# Конфигурация: /etc/mini-ldap/ldap_config.ini
# База данных: /var/lib/mini-ldap/ldap_users.json
📖 Документация
Основные команды:
# Управление сервисом
sudo systemctl start mini-ldap
sudo systemctl stop mini-ldap
sudo systemctl status mini-ldap
sudo journalctl -u mini-ldap -f
👥 Управление пользователями
Утилита mini-ldap-manage:
# Список всех пользователей
sudo mini-ldap-manage list
# Добавить пользователя (минимум)
sudo mini-ldap-manage add john password123
# Добавить пользователя (полный вариант)
sudo mini-ldap-manage add jane pass456 jane@company.com "Jane" "Smith"
# Показать детали пользователя
sudo mini-ldap-manage show john
# Изменить пароль
sudo mini-ldap-manage passwd john newpass789
# Удалить пользователя
sudo mini-ldap-manage delete john
# Добавить дополнительный email
sudo mini-ldap-manage addproxy john john.doe@company.com
# Справка
sudo mini-ldap-manage help
После изменений пользователей перезапускать сервер НЕ нужно - изменения применяются автоматически!
🔐 Дефолтные учётные записи
| Username | Password | Роль | DN | |
|---|---|---|---|---|
| admin | admin123 | admin@example.com | Администратор | cn=admin,dc=example,dc=com |
| user1 | password123 | ivan@example.com | Пользователь | uid=user1,ou=users,dc=example,dc=com |
| user2 | password456 | petr@example.com | Пользователь | uid=user2,ou=users,dc=example,dc=com |
| testUser1-100 | test123 | testuser{N}@emailaddr.com | Тестовые | uid=testUser{N},ou=users,dc=example,dc=com |
⚠️ ВАЖНО: Для тестовых(lbyfvbxtcrb[]) пользователей не работает MODIFY, DELETE
Основной конфиг: /etc/mini-ldap/ldap_config.ini
[server] host = 0.0.0.0 # IP для прослушивания (0.0.0.0 = все интерфейсы) port = 10389 # Порт LDAP (не требует root если >1024) base_dn = dc=example,dc=com
[logging] log_level = INFO # DEBUG, INFO
[admin] username = admin # admin домена password = admin123 # его dn > cn=admin,dc=example,dc=com
[test_users] enabled = true # Включить динамических пользователей prefix = testUser # Префикс (testUser1, testUser2...) domain = example.com mail_domain = emailaddr.com # почтовый домен изменить во время работы нельзя testUser1@emailaddr.com start_number = 1 end_number = 100 # До 10,000+ password = test123 # Пароль для всех динамических given_name_template = Test{number} surname_template = User{number}
🧪 Тестирование
# Поиск всех пользователей
ldapsearch -x -H ldap://localhost:10389 \
-D "cn=admin,dc=example,dc=com" \
-w admin123 \
-b "dc=example,dc=com" \
"(objectClass=person)"
# Поиск конкретного пользователя
ldapsearch -x -H ldap://localhost:10389 \
-D "cn=admin,dc=example,dc=com" \
-w admin123 \
-b "dc=example,dc=com" \
"(uid=user1)" -LLL
# Авторизация как пользователь
ldapsearch -x -H ldap://localhost:10389 \
-D "uid=user1,ou=users,dc=example,dc=com" \
-w password123 \
-b "dc=example,dc=com" \
"(uid=user1)" -LLL
🗑️ Удаление
# Удалить пакет (сохранить конфиги)
sudo apt remove mini-ldap
# Полное удаление (включая конфиги и данные)
sudo apt purge mini-ldap