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

149 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```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
```