2026-03-23 23:11:07 +03:00
2026-03-23 22:52:30 +03:00
2026-03-23 23:11:07 +03:00

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 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}

🧪 Тестирование

# Поиск всех пользователей
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
Description
Легковесный LDAP сервер на Python с поддержкой Active Directory атрибутов для тестирования и разработки
Readme 15 MiB