3.6 KiB
A01.P010 - W-ZOMBI Relay Switch (Alcance a Redes Internas)
Estado: ⏳ Pendiente
Pertenece a: A01 - Ecosistema ADN
Fecha: 2026-04-09
Responsable: Lic. Ricardo MONLA
Versión: 1.0 — Plan inicial
Prerequisito: W-Zombi v2.1 (A01.P003)
📋 Resumen Ejecutivo
Extender W-Zombi para alcanzar PCs y VMs en redes internas que no tienen conectividad directa con NS8 vía Tailscale, usando un nodo intermedio (ej: srv-dasu) como relay/switch.
Topología actual (problema):
NS8 (Tailscale) ──✔──► srv-dasu (Tailscale + LAN)
│
NS8 ──────✖──────────► VM-interna (solo LAN)
Topología objetivo:
NS8 ──► srv-dasu (relay) ──► VM/PC interna (LAN)
↕ retransmite
cmd.json + log
🎯 Objetivo
Permitir que W-Zombi controle PCs/VMs en redes internas inaccesibles directamente desde NS8, utilizando un nodo intermedio con visibilidad en ambas redes como relay transparente.
🏗️ Opciones de Arquitectura
Opción A: Relay HTTP en srv-dasu (Recomendada)
srv-dasu corre un mini-servidor que:
- Escucha en puerto local (ej: 8001)
- El zombi PS1 en la VM interna se conecta a
srv-dasu:8001 - srv-dasu reenvía
cmd.jsondesde NS8 yloghacia NS8
Pros: Independiente, no requiere cambios en firewall Contras: Requiere un servicio en srv-dasu
NS8:8000 ←──tailscale──→ srv-dasu:8001 ←──LAN──→ VM-target
(server) (relay) (zombi)
Opción B: SSH Port Forward
# Desde NS8:
ssh -L 8001:IP_VM_INTERNA:8000 srv-dasu
Pros: Cero código nuevo Contras: Requiere sesión SSH activa, no es autónomo
Opción C: Tailscale Subnet Router
Configurar srv-dasu como subnet router para exponer la LAN interna.
Pros: Solución nativa Tailscale, todas las VMs accesibles Contras: Requiere configuración de Tailscale admin, posibles implicaciones de seguridad
📋 Tareas (Opción A — Relay HTTP)
| ID | Tarea | Descripción | Estado |
|---|---|---|---|
| T1 | Diseño del relay | Definir protocolo de retransmisión | ✅ |
| T2 | relay.rb / relay.ps1 |
Comando sub-relay y engine ps1 | ✅ |
| T3 | Multi-target | Soportar múltiples VMs (ej: cmd_vm101.json, cmd_vm102.json) |
⏳ |
| T4 | CLI w-zombi relay |
Subcomando para gestionar relays | ✅ |
| T5 | Validación | Test con PC Windows real vía relay | ⏳ |
📝 Contexto Técnico
Nodos involucrados
| Nodo | Red | Rol | IP Tailscale |
|---|---|---|---|
| NS8 | Tailscale | Servidor W-Zombi (control) | 100.111.195.4 |
| srv-dasu | Tailscale + LAN | Relay/Switch | 100.116.210.36 |
| PC target | Solo LAN | Zombi (ejecuta comandos) | ¿? (LAN interna) |
Flujo de datos
1. NS8 escribe cmd.json (id:201, cmd:"ipconfig")
2. srv-dasu (relay) polling NS8:8000/cmd.json cada 5s
3. srv-dasu sirve cmd.json en su puerto local 8001
4. PC-target (zombi PS1) polling srv-dasu:8001/cmd.json cada 5s
5. PC-target ejecuta "ipconfig", POST resultado a srv-dasu:8001/log
6. srv-dasu reenvía log a NS8:8000/log
🔮 Evolución Futura
- Multi-relay: Cadena de relays para redes muy segmentadas
- Registro automático: Zombis se anuncian al conectarse
- Dashboard: Ver estado de todos los zombis (directos + relay)
- Integración Dron: Lanzar comandos remotos como drones con eventos en Bitácora
📚 Referencias
- A01.P003 — W-ZOMBI v2.0
- Fix v2.1: Ruta
/cmd+ JSON parsing robusto (2026-04-09)