Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Cowrie and Grafana Honeypot using Terraform on DigitalOcean — Honeypot de interacción media para SSH/Telnet construido con Cowrie, Loki, Promtail y Grafana - aprovisionado en DigitalOcean mediante Terraform con un pipeline de validación de GitLab CI. | Kitploit
Herramientas/GitLabGitLab/oseguera12/cowrie-honeypot-digitalocean
Seguridad de Infraestructura en la NubeSeguridad de RedesDevSecOpsInteligencia de AmenazasAnálisis de Registros
GitLaboseguera12/cowrie-honeypot-digitalocean

Cowrie and Grafana Honeypot using Terraform on DigitalOcean

Honeypot de interacción media para SSH/Telnet construido con Cowrie, Loki, Promtail y Grafana - aprovisionado en DigitalOcean mediante Terraform con un pipeline de validación de GitLab CI.

Ver RepositorioSitio web
134hace 26 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Honeypot Cowrie y Grafana usando Terraform en DigitalOcean

Video de demostración

Tabla de contenidos

  • Descripción general del sistema
  • Tecnologías
  • Estructura de directorios del proyecto
  • Requisitos de hardware
  • Instalación y configuración
  • Gestión del estado de Terraform
  • Pipeline de CI/CD
  • Arquitectura del sistema
  • Observaciones
  • Métricas en tiempo de ejecución
  • Uso
  • Documentación del proyecto
    • Diseño de la arquitectura y compensaciones
    • Recorrido de la ejecución del sistema
    • Problemas y limitaciones encontrados
    • Mejoras futuras
  • Consideraciones de seguridad
  • Colaboradores
  • Licencia

Descripción general del sistema

Una pila de honeypot SSH/Telnet desplegada en un droplet de DigitalOcean usando Terraform. Los ataques son capturados por Cowrie, almacenados en Loki y visualizados en Grafana con un mapa mundial en vivo de los orígenes de los ataques.

Tecnologías

  • DigitalOcean
  • Terraform
  • Docker
  • Cowrie
  • Loki
  • Grafana
  • Promtail
  • DB-IP (descarga de City Lite)

Estructura de directorios del proyecto```

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

## Requisitos de Hardware

> Nota: Estos requisitos se basan en el plan Basic Droplet de DigitalOcean a partir de mayo de 2026 y son los requisitos mínimos para ejecutar el proyecto.

- Proveedor: DigitalOcean
- Plan: Basic Droplet - 1 Intel vCPU
- RAM: 1 GB (+2 GB de swap)
- Almacenamiento: 35 GB NVMe SSD
- SO: Ubuntu 24.04 LTS

> **Margen de memoria tras las actualizaciones de versión de los contenedores:** `docker-compose.yml` fija imágenes más recientes de Grafana (12.0.0), Loki y Promtail (3.6.13) que aquellas para las que este tamaño de droplet fue originalmente ajustado. Los valores de `mem_limit`/`memswap_limit` por servicio no han cambiado — vigila `docker stats` tras el primer despliegue, y aumenta el plan del droplet (o reduce el `retention_period` de Loki / la caché de Grafana) si algún contenedor está constantemente cerca de su límite.

## Instalación y Configuración

>Nota: Tras la instalación, se recomienda abrir una nueva terminal y verificar que aún puedes conectarte por SSH en `ADMIN_SSH_PORT` (Predeterminado: 2022) antes de cerrar tu sesión original.

### Despliegue con Terraform (Recomendado)

1. Crea un token de API de DigitalOcean con permisos de lectura/escritura:

- Inicia sesión en DigitalOcean y navega a Account > API > Tokens > Generate New Token.
- Nombra tu token (p. ej., "Cowrie Honeypot") y selecciona los permisos de "Full Access".
- Haz clic en "Generate Token" y copia el valor del token en un lugar seguro (no podrás verlo de nuevo).

2. Crea un par de claves SSH en tu máquina local y copia la ruta de la clave pública.

3. Ve al directorio `terraform` y luego copia y edita el archivo de variables:

> Nota: `do_token`, `ssh_public_key_path` y `grafana_admin_password` deben configurarse como mínimo en `terraform.tfvars` antes de aplicar.```bash
cd terraform
cp terraform.tfvars.example terraform.tfvars
  1. Aplique la configuración e inicie el despliegue:

Nota: Terraform debe estar instalado en su máquina local. Visite la Guía de instalación de Terraform para obtener instrucciones.```bash terraform init # Initialize Terraform and download providers terraform apply

5. Si es una prueba: volver a desplegar con el reemplazo:```bash
terraform apply -replace="digitalocean_droplet.honeypot" 
  1. Limpieza - Destruye la infraestructura cuando hayas terminado:```bash terraform destroy
### Despliegue Manual (Heredado)

1. Crea un droplet de DigitalOcean con los requisitos de hardware anteriores y tu clave SSH.

2. Accede al droplet por SSH o utiliza la consola web de DigitalOcean y ejecuta los siguientes comandos:```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

Gestión del estado de Terraform

Nota: Por defecto, Terraform escribe el estado en terraform/terraform.tfstate en tu máquina local. Este archivo contiene valores de salida sensibles (IP del droplet, contraseña de Grafana, huella de la clave SSH) y nunca debe ser confirmado. .gitignore cubre *.tfstate y *.tfstate.*.

Descargar herramienta