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.

Популярное

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

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

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

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

Смотреть все инструменты →
РепозиторийСайт
1234 месяцев назадЕщё не проверено
Поделиться

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

Видео-демонстрация

Содержание

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

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

Стек хонейпота SSH/Telnet, развернутый на DigitalOcean droplet с помощью 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 ├── 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 ├── 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 ├── 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 ├── 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

## Аппаратные требования

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

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

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

>Примечание: После установки рекомендуется открыть новый терминал и проверить, что вы всё ещё можете подключиться по 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.```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. Подключитесь по SSH к droplet или используйте веб-консоль 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 капли, пароль Grafana, отпечаток SSH-ключа) и никогда не должен быть закоммичен. .gitignore покрывает *.tfstate и *.tfstate.*.

Риски локального состояния:

  • Потеряно, если компьютер потерян или файл удалён
  • Не может быть разделено между членами команды
  • Нет блокировки — два одновременных запуска apply могут повредить файл

Для всего, что выходит за рамки личной лаборатории, переключитесь на удаленный бэкенд. terraform/backend.tf содержит закомментированную конфигурацию DigitalOcean Spaces (совместимую с S3).

Чтобы включить удаленный бэкенд:

  1. Создайте корзину Spaces в своей учетной записи DigitalOcean
  2. Сгенерируйте ключ доступа Spaces в разделе API > Spaces Keys
  3. Экспортируйте ключи как переменные окружения (не помещайте их в terraform.tfvars): ```bash export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY=
  4. Раскомментируйте блок backend "s3" в terraform/backend.tf и укажите имя вашего бакета и endpoint региона.
  5. Выполните terraform init -migrate-state, чтобы перенести существующее локальное состояние в Spaces.

CI/CD конвейер

.gitlab-ci.yml запускает три задания при каждом пуше в одной стадии validate:

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