mini-ldap/README.md
2026-03-23 23:11:55 +03:00

5.1 KiB
Raw Blame History

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