# mini-ldap Легковесный LDAP сервер на Python с поддержкой Active Directory атрибутов для тестирования и разработки. ## 🎯 Возможности - ✅ **Cовместимость с AD** - ✅ **Поддержка основных операций** - BIND, SEARCH, MODIFY, ADD, DELETE - ✅ **Wildcard поиск** - поддержка масок в фильтрах - ✅ **Динамические тестовые пользователи** - генерация до 10,000+ пользователей на лету - ✅ **Высокая производительность** - индексы, кэширование, асинхронная запись - ✅ **Гибкая конфигурация** - внешний INI файл с настройками - ✅ **Debug режим** - детальное логирование для отладки ## 🔧 Установка собранного пакета ```bash # На ЛЮБОЙ машине 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 ``` ## 📖 Документация ### Основные команды: ```bash # Управление сервисом sudo systemctl start mini-ldap sudo systemctl stop mini-ldap sudo systemctl status mini-ldap sudo journalctl -u mini-ldap -f ``` ### 👥 Управление пользователями ### Утилита `mini-ldap-manage`: ```bash # Список всех пользователей 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 | Email | Роль | 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} ## 🧪 Тестирование ```bash # Поиск всех пользователей 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 ``` ## 🗑️ Удаление ```bash # Удалить пакет (сохранить конфиги) sudo apt remove mini-ldap # Полное удаление (включая конфиги и данные) sudo apt purge mini-ldap ```