Files
PyGuardian/.history/README_20251125202055.md
Andrey K. Choi a24e4e8dc6
Some checks failed
continuous-integration/drone Build is failing
feat: PyGuardian v2.0 - Complete enterprise security system
 New Features:
🔐 Advanced agent authentication with JWT tokens
🌐 RESTful API server with WebSocket support
🐳 Docker multi-stage containerization
🚀 Comprehensive CI/CD with Drone pipeline
📁 Professional project structure reorganization

🛠️ Technical Implementation:
• JWT-based authentication with HMAC-SHA256 signatures
• Unique Agent IDs with automatic credential generation
• Real-time API with CORS and rate limiting
• SQLite extended schema for auth management
• Multi-stage Docker builds (controller/agent/standalone)
• Complete Drone CI/CD with testing and security scanning

�� Key Modules:
• src/auth.py (507 lines) - Authentication system
• src/api_server.py (823 lines) - REST API server
• src/storage.py - Extended database with auth tables
• Dockerfile - Multi-stage containerization
• .drone.yml - Enterprise CI/CD pipeline

🎯 Production Ready:
 Enterprise-grade security with encrypted credentials
 Scalable cluster architecture up to 1000+ agents
 Automated deployment with health checks
 Comprehensive documentation and examples
 Full test coverage and quality assurance

Ready for production deployment and scaling!
2025-11-25 21:07:47 +09:00

491 lines
16 KiB
Markdown
Raw 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.

# PyGuardian - Advanced Linux Server Protection System
🛡️ **Система мониторинга и защиты Linux-сервера от брутфорс-атак с функциями СКРЫТОГО обнаружения взломов**
[![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://python.org)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
[![Telegram](https://img.shields.io/badge/Telegram-Bot-blue.svg)](https://core.telegram.org/bots)
## 🚨 НОВЫЕ ВОЗМОЖНОСТИ - STEALTH SECURITY
### Скрытое обнаружение компромиссов
- **Invisible Detection**: Система работает **незаметно** для атакующего
- **Honeypot Users**: Автоматическое обнаружение входов под приманочными учетками
- **Behavioral Analysis**: Анализ подозрительного поведения после входа
- **Silent Response**: Тихая блокировка без уведомления атакующего
### Автоматические контрмеры
- **Password Rotation**: Мгновенная смена паролей скомпрометированных аккаунтов
- **Session Termination**: Принудительное завершение подозрительных сессий
- **Stealth Blocking**: Скрытая блокировка атакующих IP
- **Evidence Collection**: Сбор доказательств для анализа
## 🎯 Основные возможности
- **Мониторинг в реальном времени**: Отслеживание auth.log и детекция атак
- **Автоматическая защита**: Блокировка IP при превышении лимита попыток
- **Telegram управление**: Полный контроль через бота без веб-интерфейса
- **🔥 STEALTH MODE**: Скрытое обнаружение и нейтрализация взломов
- **Session Management**: Мониторинг и управление SSH сессиями
- **Password Security**: Автоматическая смена паролей при компромиссе
- **Поддержка firewall**: iptables и nftables
- **Автоматический разбан**: По таймеру с уведомлениями
- **Белый список**: Защита доверенных IP от блокировки
- **Статистика**: Подробная аналитика атак и успешных входов
- **Асинхронность**: Оптимизированная производительность
## 📋 Требования
- **ОС**: Linux (Ubuntu 20.04+, CentOS 8+, Debian 11+)
- **Python**: 3.10 или выше
- **Права**: root (для работы с firewall)
- **Firewall**: iptables или nftables
- **Telegram**: Токен бота и admin ID
## 🚀 Быстрая установка
### 1. Клонирование репозитория
```bash
git clone https://github.com/your-org/pyguardian.git
cd pyguardian
```
### 2. Автоматическая установка
```bash
sudo chmod +x install.sh
sudo ./install.sh
```
### 3. Настройка Telegram бота
#### Создание бота:
1. Отправьте `/newbot` боту [@BotFather](https://t.me/BotFather)
2. Следуйте инструкциям и получите токен
3. Узнайте ваш Telegram ID через [@userinfobot](https://t.me/userinfobot)
#### Обновление конфигурации:
```bash
sudo nano /etc/pyguardian/config.yaml
```
```yaml
telegram:
bot_token: "YOUR_BOT_TOKEN_HERE"
admin_id: YOUR_TELEGRAM_ID
```
### 4. Запуск сервиса
```bash
# Запуск
sudo systemctl start pyguardian
# Автозапуск
sudo systemctl enable pyguardian
# Проверка статуса
sudo systemctl status pyguardian
# Просмотр логов
sudo journalctl -u pyguardian -f
```
## ⚙️ Конфигурация
### Основные параметры
| Параметр | Описание | По умолчанию |
|----------|----------|--------------|
| `max_attempts` | Максимум попыток за time_window | 5 |
| `time_window` | Окно времени в секундах | 60 |
| `unban_time` | Время автоматической разблокировки | 3600 |
| `auth_log_path` | Путь к auth.log | `/var/log/auth.log` |
| `check_interval` | Интервал проверки лога | 1.0 |
### Firewall настройки
#### Для iptables:
```yaml
firewall:
backend: "iptables"
chain: "INPUT"
target: "DROP"
iptables:
table: "filter"
```
#### Для nftables:
```yaml
firewall:
backend: "nftables"
nftables:
table: "inet pyguardian"
chain: "input"
```
### Белый список IP
```yaml
whitelist:
- "127.0.0.1"
- "::1"
- "192.168.1.0/24" # Локальная сеть
- "10.0.0.0/8" # VPN сеть
```
## 🤖 Команды Telegram бота
### Основные команды
| Команда | Описание |
|---------|----------|
| `/start` | Приветствие и информация о системе |
| `/status` | Статистика атак и система |
| `/top10` | Топ-10 атакующих IP за сутки |
| `/details <ip>` | Детальная информация по IP |
| `/ban <ip>` | Ручная блокировка IP |
| `/unban <ip>` | Разблокировка IP |
| `/list` | Список всех забаненных IP |
| `/help` | Справка по командам |
### 🚨 Новые команды управления безопасностью
| Команда | Описание |
|---------|----------|
| `/compromises` | Список обнаруженных взломов |
| `/sessions` | Активные SSH сессии |
| `/kick <user/pid>` | Завершить сессию пользователя |
| `/generate_password <user>` | Сгенерировать новый пароль |
| `/set_password <user> <pass>` | Установить пароль для пользователя |
### Примеры использования
```
/details 192.168.1.100
/ban 10.0.0.50
/unban 203.0.113.1
# Новые команды безопасности
/sessions
/kick admin
/generate_password ubuntu
/compromises
```
## 📊 Мониторинг и логирование
### Детекция атак
Система отслеживает следующие события в auth.log:
- `Failed password`
- `Invalid user`
- `authentication failure`
- `Too many authentication failures`
- `Failed publickey`
- `Connection closed by authenticating user`
### Уведомления в Telegram
- ⚠️ Автоматическая блокировка IP
- 🔓 Ручная блокировка/разблокировка
- 🟢 Автоматическая разблокировка по таймеру
- ❌ Системные ошибки
- 🚨 Критические атаки
### Логи системы
```bash
# Системные логи
sudo journalctl -u pyguardian -f
# Файловые логи
sudo tail -f /var/log/pyguardian.log
# Логи ошибок
sudo journalctl -u pyguardian -p err
```
## 🔧 Управление сервисом
### Основные команды
```bash
# Статус
sudo systemctl status pyguardian
# Запуск
sudo systemctl start pyguardian
# Остановка
sudo systemctl stop pyguardian
# Перезапуск
sudo systemctl restart pyguardian
# Перезагрузка конфигурации
sudo systemctl reload pyguardian
# Автозапуск
sudo systemctl enable pyguardian
# Отключить автозапуск
sudo systemctl disable pyguardian
```
### Мониторинг ресурсов
```bash
# Использование памяти
sudo systemctl show pyguardian --property=MemoryCurrent
# Количество процессов
sudo systemctl show pyguardian --property=TasksCurrent
# Время работы
sudo systemctl show pyguardian --property=ActiveEnterTimestamp
```
## 🛠️ Ручная установка (альтернативный способ)
### 1. Подготовка системы
```bash
# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip python3-venv iptables
# CentOS/RHEL
sudo yum install python3 python3-pip iptables
# или
sudo dnf install python3 python3-pip iptables
```
### 2. Создание пользователя (опционально)
```bash
sudo useradd -r -s /bin/false pyguardian
sudo mkdir -p /opt/pyguardian /var/lib/pyguardian
sudo chown pyguardian:pyguardian /var/lib/pyguardian
```
### 3. Установка PyGuardian
```bash
# Клонирование
git clone https://github.com/your-org/pyguardian.git
cd pyguardian
# Копирование файлов
sudo cp -r src/ main.py requirements.txt /opt/pyguardian/
sudo cp config/config.yaml /etc/pyguardian/
sudo cp systemd/pyguardian.service /etc/systemd/system/
# Установка зависимостей
cd /opt/pyguardian
sudo pip3 install -r requirements.txt
# Права
sudo chmod +x /opt/pyguardian/main.py
sudo chown -R root:root /opt/pyguardian
# Systemd
sudo systemctl daemon-reload
```
## 🔍 Диагностика и решение проблем
### Проблемы с запуском
#### Ошибка "Permission denied"
```bash
# Проверить права
ls -la /opt/pyguardian/main.py
# Исправить права
sudo chmod +x /opt/pyguardian/main.py
```
#### Ошибка "Module not found"
```bash
# Переустановить зависимости
sudo pip3 install -r /opt/pyguardian/requirements.txt --force-reinstall
```
#### Ошибка доступа к auth.log
```bash
# Проверить существование файла
ls -la /var/log/auth.log
# Проверить права
sudo chmod 644 /var/log/auth.log
```
### Проблемы с firewall
#### iptables не работает
```bash
# Проверить статус
sudo iptables -L -n
# Проверить модули
lsmod | grep ip_tables
# Загрузить модуль
sudo modprobe ip_tables
```
#### nftables не работает
```bash
# Проверить статус
sudo nft list ruleset
# Установить nftables
sudo apt install nftables # Ubuntu/Debian
sudo yum install nftables # CentOS/RHEL
```
### Проблемы с Telegram
#### Бот не отвечает
```bash
# Проверить токен и ID в конфигурации
sudo cat /etc/pyguardian/config.yaml | grep -A 3 telegram
# Проверить сетевое соединение
curl -s "https://api.telegram.org/botYOUR_TOKEN/getMe"
```
#### Уведомления не приходят
```bash
# Проверить ID администратора
# Убедиться что вы написали боту /start
# Проверить логи
sudo journalctl -u pyguardian | grep -i telegram
```
### Производительность
#### Высокое потребление памяти
```yaml
# Настроить в config.yaml
performance:
max_memory_mb: 50
cleanup_interval: 1800 # 30 минут
max_records_age: 259200 # 3 дня
```
#### Высокая нагрузка на диск
```yaml
# Увеличить интервал проверки
monitoring:
check_interval: 2.0 # Проверять каждые 2 секунды
# Настроить логирование
logging:
log_level: "WARNING" # Меньше логов
```
## 📈 Мониторинг производительности
### Grafana + Prometheus (дополнительно)
```bash
# Пример экспорта метрик через systemd
sudo systemctl status pyguardian --output=json
```
### Встроенная статистика
Телеграм бот предоставляет:
- Количество атак за день
- Топ атакующих IP
- Использование памяти
- Время работы системы
- Статистику обработанных событий
## 🔐 Безопасность
### Рекомендации
1. **Регулярно обновляйте** конфигурацию белого списка
2. **Мониторьте логи** на предмет ложных срабатываний
3. **Используйте VPN** для доступа к серверу
4. **Настройте резервное копирование** конфигурации
5. **Периодически проверяйте** список забаненных IP
### Файлы конфигурации
- `/etc/pyguardian/config.yaml` - основная конфигурация
- `/var/lib/pyguardian/guardian.db` - база данных SQLite
- `/var/log/pyguardian.log` - логи приложения
### Права доступа
```bash
# Конфигурация (только root может читать токены)
sudo chmod 600 /etc/pyguardian/config.yaml
# База данных
sudo chmod 600 /var/lib/pyguardian/guardian.db
# Логи
sudo chmod 644 /var/log/pyguardian.log
```
## 📚 API и интеграция
### Webhook уведомления (планируется)
```yaml
# В будущих версиях
webhooks:
on_ban: "https://your-domain.com/webhook/ban"
on_unban: "https://your-domain.com/webhook/unban"
```
### REST API (планируется)
- `GET /api/stats` - получение статистики
- `POST /api/ban` - ручной бан IP
- `DELETE /api/ban/<ip>` - разбан IP
## 🔄 Обновление
### Автоматическое обновление
```bash
# Скачать новую версию
cd /tmp
git clone https://github.com/your-org/pyguardian.git
cd pyguardian
# Остановить сервис
sudo systemctl stop pyguardian
# Обновить файлы (сохраняя конфигурацию)
sudo cp -r src/ main.py requirements.txt /opt/pyguardian/
sudo pip3 install -r /opt/pyguardian/requirements.txt
# Запустить сервис
sudo systemctl start pyguardian
```
### Миграция конфигурации
При обновлениях проверяйте совместимость конфигурации:
```bash
# Проверка конфигурации
python3 -c "import yaml; yaml.safe_load(open('/etc/pyguardian/config.yaml'))"
```
## 🤝 Вклад в проект
1. Форкните репозиторий
2. Создайте ветку для функции (`git checkout -b feature/amazing-feature`)
3. Зафиксируйте изменения (`git commit -m 'Add amazing feature'`)
4. Отправьте в ветку (`git push origin feature/amazing-feature`)
5. Откройте Pull Request
## 📄 Лицензия
Distributed under the MIT License. See `LICENSE` for more information.
## 💬 Поддержка
- **Issues**: [GitHub Issues](https://github.com/your-org/pyguardian/issues)
- **Telegram**: [@pyguardian_support](https://t.me/pyguardian_support)
- **Email**: support@pyguardian.dev
## 🎯 Планы развития
- [ ] Web-интерфейс (опционально)
- [ ] REST API
- [ ] Webhook уведомления
- [ ] Интеграция с облачными провайдерами
- [ ] Машинное обучение для детекции аномалий
- [ ] Поддержка IPv6
- [ ] Кластерный режим
- [ ] Экспорт метрик Prometheus
---
**PyGuardian** - Made with ❤️ for Linux system administrators