148 lines
5.1 KiB
Markdown
148 lines
5.1 KiB
Markdown
# 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
|
||
```
|