- 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>
103 lines
2.8 KiB
Markdown
103 lines
2.8 KiB
Markdown
# 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](https://cloudhost.es).
|
|
|
|
## 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](https://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
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
```env
|
|
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:
|
|
|
|
```bash
|
|
ssh -N -L 64298:localhost:9200 usuario@tu-tpot-host -i ~/.ssh/id_ed25519
|
|
```
|
|
|
|
Luego en `.env`:
|
|
|
|
```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`:
|
|
|
|
```ini
|
|
[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
|
|
```
|
|
|
|
```bash
|
|
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](https://github.com/telekom-security/t-pot-attack-map) de Telekom Security (Deutsche Telekom Security GmbH), licencia Apache 2.0.
|