Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Cowrie and Grafana Honeypot using Terraform on DigitalOcean — SSH/Telnet honeypot среднего уровня взаимодействия, созданный с помощью Cowrie, Loki, Promtail и Grafana - развернутый на DigitalOcean через Terraform с конвейером валидации GitLab CI. | Kitploit
Инструменты/GitLabGitLab/oseguera12/cowrie-honeypot-digitalocean
Безопасность облачной инфраструктурыСетевая безопасностьDevSecOpsРазведка угрозАнализ Журналов
GitLaboseguera12/cowrie-honeypot-digitalocean

Cowrie and Grafana Honeypot using Terraform on DigitalOcean

SSH/Telnet honeypot среднего уровня взаимодействия, созданный с помощью Cowrie, Loki, Promtail и Grafana - развернутый на DigitalOcean через Terraform с конвейером валидации GitLab CI.

РепозиторийСайт
13426 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Honeypot Cowrie и Grafana с использованием Terraform на DigitalOcean

Демонстрационное видео

Содержание

  • Обзор системы
  • Технологии
  • Структура каталогов проекта
  • Требования к оборудованию
  • Установка и настройка
  • Управление состоянием Terraform
  • Конвейер CI/CD
  • Архитектура системы
  • Наблюдения
  • Метрики времени выполнения
  • Использование
  • Документация проекта
    • Проектирование архитектуры и компромиссы
    • Пошаговое описание выполнения системы
    • Возникшие проблемы и ограничения
    • Будущие улучшения
  • Вопросы безопасности
  • Участники
  • Лицензия

Обзор системы

Стек honeypot для SSH/Telnet, развёрнутый на droplet DigitalOcean с помощью Terraform. Атаки перехватываются Cowrie, сохраняются в Loki и визуализируются в Grafana с живой картой мира источников атак.

Технологии

  • DigitalOcean
  • Terraform
  • Docker
  • Cowrie
  • Loki
  • Grafana
  • Promtail
  • DB-IP (загрузка City Lite)

Структура каталогов проекта```

honeypot/ ├── cowrie/ │ └── etc/ │ ├── cowrie.cfg # Cowrie honeypot configuration │ └── userdb.txt # Accepted and rejected fake credentials ├── docs/ │ └── ttp-to-runtime-rules.md # Observed attacker TTPs → Falco rules (eks-gitops, platform-engineering-lab) ├── geoip/ │ └── .gitkeep # Placeholder - MMDB files are gitignored ├── grafana/ │ ├── provisioning/ │ │ ├── dashboards/ │ │ │ ├── dashboards.yml # Provisioning: dashboard provider │ │ │ └── honeypot-dashboard.json # Pre-built Attack Monitor dashboard │ │ └── datasources/ │ │ └── loki.yml # Auto-provisioned Loki datasource │ └── grafana.ini # Grafana server settings ├── loki/ │ └── config.yml # Loki single-binary config and retention ├── metrics/ │ ├── runtime-metrics.schema.json # Shared schema — identical across all 4 portfolio projects │ └── runtime-metrics.json # Generated by scripts/export-honeypot-metrics.sh; gitignored, not committed ├── promtail/ │ └── config.yml # Promtail scrape and GeoIP pipeline ├── scripts/ │ ├── geoip-update.sh # Download or refresh GeoIP database │ ├── setup-firewall.sh # Host UFW rules for honeypot ports │ ├── export-honeypot-metrics.sh # Queries Grafana/Loki, writes attacker_telemetry │ └── emit-runtime-metrics.py # Wraps attacker_telemetry in the shared metrics schema ├── terraform/ │ ├── templates/ │ │ ├── cloud-init.yaml.tftpl # Droplet first-boot script (Terraform-templated) │ │ └── env.tftpl # .env lines embedded via Terraform │ ├── backend.tf # Terraform backend config │ ├── main.tf # Droplet, SSH key, firewall, cloud-init │ ├── outputs.tf # IPs and helpful post-apply values │ ├── terraform.tfvars.example # Example variable values (copy to terraform.tfvars) │ ├── variables.tf # Terraform input variables │ └── versions.tf # Terraform and provider version constraints ├── .env.example # Example environment file for manual setup ├── .gitignore # Ignored paths and files ├── .gitlab-ci.yml # CI/CD pipeline: fmt, validate, Checkov, metrics schema/export ├── docker-compose.yml # Docker Compose file for the honeypot stack ├── LICENSE # GPLv2 license ├── manual-deployment.sh # Legacy VM bootstrap without Terraform └── README.md # Project documentation

## Требования к оборудованию

> Примечание: Эти требования основаны на плане DigitalOcean Basic Droplet по состоянию на май 2026 года и являются минимальными требованиями для запуска проекта.

- Провайдер: DigitalOcean
- План: Basic Droplet — 1 Intel vCPU
- RAM: 1 ГБ (+2 ГБ swap)
- Хранилище: 35 ГБ NVMe SSD
- ОС: Ubuntu 24.04 LTS

> **Запас памяти после обновления версий контейнеров:** `docker-compose.yml` фиксирует более новые образы Grafana (12.0.0), Loki и Promtail (3.6.13), чем те, под которые изначально подбирался размер этого дроплета. Значения `mem_limit`/`memswap_limit` для каждого сервиса не изменились — следите за `docker stats` после первого развёртывания и повысьте план дроплета (или уменьшите `retention_period` у Loki / кэш Grafana), если какой-либо контейнер постоянно находится near its limit.

## Установка и настройка

>Примечание: После установки рекомендуется открыть новый терминал и убедиться, что вы по-прежнему можете подключиться по SSH на `ADMIN_SSH_PORT` (по умолчанию: 2022), прежде чем закрывать исходную сессию.

### Развёртывание через Terraform (рекомендуется)

1. Создайте токен API DigitalOcean с правами на чтение/запись:

- Войдите в DigitalOcean и перейдите в Account > API > Tokens > Generate New Token.
- Назовите токен (например, "Cowrie Honeypot") и выберите права "Full Access".
- Нажмите "Generate Token" и скопируйте значение токена в надёжное место (вы больше не сможете его увидеть).

2. Создайте пару SSH-ключей на локальной машине и скопируйте путь к публичному ключу.

3. Перейдите в каталог `terraform`, затем скопируйте и отредактируйте файл переменных:

> Примечание: `do_token`, `ssh_public_key_path` и `grafana_admin_password` должны быть настроены как минимум в `terraform.tfvars` перед применением.```bash
cd terraform
cp terraform.tfvars.example terraform.tfvars
  1. Примените конфигурацию и запустите развёртывание:

Примечание: Terraform должен быть установлен на вашей локальной машине. Инструкции см. в Terraform Installation Guide.```bash terraform init # Initialize Terraform and download providers terraform apply

5. Если тестирование — выполните повторное развёртывание с заменой:```bash
terraform apply -replace="digitalocean_droplet.honeypot" 
  1. Очистка — уничтожьте инфраструктуру, когда закончите:```bash terraform destroy
### Ручное развёртывание (устаревший способ)

1. Создайте droplet в DigitalOcean с указанными выше требованиями к оборудованию и вашим SSH-ключом.

2. Подключитесь к droplet по SSH или воспользуйтесь веб-консолью DigitalOcean и выполните следующие команды:```bash
ssh root@<your-droplet-ip> # If using DigitalOcean web console, skip this command
git clone https://gitlab.com/Oseguera12/cowrie-honeypot-digitalocean.git /opt/honeypot
cd /opt/honeypot
cp .env.example .env
nano .env
bash manual-deployment.sh

Управление состоянием Terraform

Примечание: По умолчанию Terraform записывает состояние в terraform/terraform.tfstate на вашей локальной машине. Этот файл содержит конфиденциальные выходные значения (IP-адрес droplet, пароль Grafana, отпечаток SSH-ключа) и никогда не должен попадать в репозиторий. .gitignore охватывает *.tfstate и *.tfstate.*.

Скачать инструмент