Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Cowrie and Grafana Honeypot using Terraform on DigitalOcean — Honeypot SSH/Telnet di media interazione costruito con Cowrie, Loki, Promtail e Grafana - provisionato su DigitalOcean tramite Terraform con una pipeline di validazione GitLab CI. | Kitploit
Strumenti/GitLabGitLab/oseguera12/cowrie-honeypot-digitalocean
Sicurezza dell'Infrastruttura CloudSicurezza di ReteDevSecOpsThreat IntelligenceAnalisi dei Log
GitLaboseguera12/cowrie-honeypot-digitalocean

Cowrie and Grafana Honeypot using Terraform on DigitalOcean

Honeypot SSH/Telnet di media interazione costruito con Cowrie, Loki, Promtail e Grafana - provisionato su DigitalOcean tramite Terraform con una pipeline di validazione GitLab CI.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi RepositorySito web
1234 mesi faNon ancora revisionato
Condividi

Honeypot Cowrie e Grafana con Terraform su DigitalOcean

Video dimostrativo

Indice dei contenuti

  • Indice dei contenuti
  • Panoramica del sistema
  • Tecnologie
  • Struttura della directory del progetto
  • Requisiti hardware
  • Installazione e configurazione
  • Gestione dello stato di Terraform
  • Pipeline CI/CD
  • Architettura del sistema
  • Osservazioni
  • Utilizzo
  • Documentazione del progetto
    • Progettazione dell'architettura e compromessi
    • Procedura dettagliata di esecuzione del sistema
    • Problemi e limitazioni incontrati
    • Miglioramenti futuri
  • Considerazioni sulla sicurezza
  • Contributori
  • Licenza

Panoramica del sistema

Uno stack di honeypot SSH/Telnet distribuito su un droplet DigitalOcean utilizzando Terraform. Gli attacchi vengono catturati da Cowrie, archiviati in Loki e visualizzati in Grafana con una mappa mondiale in tempo reale delle origini degli attacchi.

Tecnologie

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

Struttura della directory del progetto```

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

## Requisiti Hardware

> Nota: Questi requisiti si basano sul piano DigitalOcean Basic Droplet di maggio 2026 e sono i requisiti minimi per eseguire il progetto.

- Provider: DigitalOcean
- Piano: Basic Droplet - 1 vCPU Intel
- RAM: 1 GB (+2 GB di swap)
- Storage: 35 GB NVMe SSD
- OS: Ubuntu 24.04 LTS

## Installazione e Configurazione

>Nota: Dopo l'installazione, si consiglia di aprire un nuovo terminale e verificare di poter ancora eseguire SSH su `ADMIN_SSH_PORT` (Predefinito: 2022) prima di chiudere la sessione originale.

### Distribuzione con Terraform (Consigliata)

1. Crea un token API DigitalOcean con autorizzazioni di lettura/scrittura:

- Accedi a DigitalOcean e vai su Account > API > Tokens > Generate New Token.
- Assegna un nome al token (ad es., "Cowrie Honeypot") e seleziona le autorizzazioni "Full Access".
- Fai clic su "Generate Token" e copia il valore del token in un luogo sicuro (non potrai vederlo di nuovo).

2. Crea una coppia di chiavi SSH sulla tua macchina locale e copia il percorso della chiave pubblica.

3. Vai nella directory `terraform` quindi copia e modifica il file delle variabili:

> Nota: `do_token`, `ssh_public_key_path` e `grafana_admin_password` devono essere configurati come minimo in `terraform.tfvars` prima di applicare.```bash
cd terraform
cp terraform.tfvars.example terraform.tfvars
  1. Applica la configurazione e avvia il deployment:

Nota: Terraform deve essere installato sulla tua macchina locale. Visita la Guida all'installazione di Terraform per le istruzioni.```bash terraform init # Initialize Terraform and download providers terraform apply

5. Se Testing - Ridistribuire con sostituzione:```bash
terraform apply -replace="digitalocean_droplet.honeypot" 
  1. Pulizia - Distruggi l'infrastruttura quando hai finito:```bash terraform destroy
### Distribuzione Manuale (Legacy)

1. Crea un droplet DigitalOcean con i requisiti hardware sopra indicati e la tua chiave SSH.

2. Connettiti al droplet via SSH o usa la console web DigitalOcean ed esegui i seguenti comandi:```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

Gestione dello Stato di Terraform

Nota: Per impostazione predefinita, Terraform scrive lo stato in terraform/terraform.tfstate sulla tua macchina locale. Questo file contiene valori di output sensibili (IP del droplet, password di Grafana, impronta digitale della chiave SSH) e non deve mai essere committato. .gitignore copre *.tfstate e *.tfstate.*.

Rischi dello stato locale:

  • Perso se la macchina viene smarrita o il file viene cancellato
  • Non può essere condiviso tra i membri del team
  • Nessun blocco — due esecuzioni concorrenti di apply possono danneggiare il file

Per qualsiasi cosa oltre a un laboratorio personale, passa a un backend remoto. terraform/backend.tf contiene una configurazione DigitalOcean Spaces (compatibile con S3) commentata.

Per abilitare il backend remoto:

  1. Crea un bucket Spaces nel tuo account DigitalOcean
  2. Genera una chiave di accesso Spaces in API > Spaces Keys
  3. Esporta le chiavi come variabili d'ambiente (non inserirle in terraform.tfvars): ```bash export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY=
  4. Decommenta il blocco backend "s3" in terraform/backend.tf e inserisci il nome del tuo bucket e l'endpoint della regione.
  5. Esegui terraform init -migrate-state per spostare lo stato locale esistente su Spaces.

Pipeline CI/CD

.gitlab-ci.yml esegue tre job a ogni push in un'unica fase validate:

Scarica lo strumento