Files
honeypot.es/README.md
Malin 1aa164263f feat: initial T-Pot attack map with Spanish UI and Docker support
- Full Spanish interface (all UI text, popups, charts, tables)
- Dark and light mode support
- Disclaimer banner: no data logged, public European service
- Footer: Servicio ofrecido por Cloud Host (cloudhost.es)
- Docker: single container (Redis + DataServer + AttackMapServer)
- Remote T-Pot support via ELASTICSEARCH_URL env var (direct or SSH tunnel)
- Based on telekom-security/t-pot-attack-map (Apache 2.0)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 21:23:28 +01:00

2.8 KiB

Mapa de Ataques honeypot.es

Visualización pública en tiempo real de ataques detectados por T-Pot, con interfaz completamente en español. Servicio ofrecido por Cloud Host.

Características

  • Mapa mundial de ataques en tiempo real (D3.js + Leaflet)
  • Interfaz completamente en español
  • Modo oscuro y claro con un clic
  • Tablas en vivo: IPs más activas, países atacantes, feed de ataques
  • Panel de control con gráficos (distribución, timeline, protocolos, honeypot, mapa de calor)
  • Sin registro de datos personales — servicio público europeo
  • Pie de página con enlace a cloudhost.es
  • Contenedor Docker autónomo (Redis interno + DataServer + AttackMapServer)

Requisitos

  • Docker + Docker Compose
  • Acceso a la instancia Elasticsearch del T-Pot remoto (puerto 64298 por defecto)

Instalación rápida

# 1. Copiar y editar la configuración
cp .env.example .env
nano .env   # Ajustar ELASTICSEARCH_URL

# 2. Construir y levantar
docker compose up -d --build

# 3. Abrir en el navegador
# http://tu-servidor:8080

Conexión al T-Pot remoto

Opción A — Conexión directa (si el ES del T-Pot es accesible en red)

ELASTICSEARCH_URL=http://tu-tpot-host:64298

Opción B — Túnel SSH (recomendado)

En tu servidor host, crea el túnel antes de levantar Docker:

ssh -N -L 64298:localhost:9200 usuario@tu-tpot-host -i ~/.ssh/id_ed25519

Luego en .env:

ELASTICSEARCH_URL=http://host.docker.internal:64298

El docker-compose.yml ya incluye extra_hosts: host.docker.internal:host-gateway para que el contenedor alcance tu host.

Opción C — Túnel SSH persistente con systemd

Crea /etc/systemd/system/tpot-tunnel.service:

[Unit]
Description=Túnel SSH hacia T-Pot Elasticsearch
After=network.target

[Service]
ExecStart=/usr/bin/ssh -N -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes \
    -L 64298:localhost:9200 usuario@tu-tpot-host -i /root/.ssh/id_ed25519
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
systemctl enable --now tpot-tunnel

Variables de entorno

Variable Default Descripción
ELASTICSEARCH_URL http://localhost:9200 URL del Elasticsearch del T-Pot
WEB_PORT 8080 Puerto donde se expone la web
TPOT_ATTACKMAP_TEXT ENABLED Mostrar log de ataques en consola

Arquitectura

Elasticsearch (T-Pot remoto)
    → DataServer.py (sondeo cada 0.5s)
        → Redis (interno al contenedor)
            → AttackMapServer.py (WebSocket, puerto 8080)
                → Navegador (Leaflet + D3 + Chart.js)

Créditos

Basado en t-pot-attack-map de Telekom Security (Deutsche Telekom Security GmbH), licencia Apache 2.0.