feat(episode): TRAZA_lo-que-encontr-antes-de-empaquetar-nada_S20260726.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: AEGIS | Type: troubleshooting
Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: Lo que encontré antes de empaquetar nada
This commit is contained in:
Ember 2026-07-27 04:16:12 +00:00
parent 497d8317d6
commit bdd0a2cfc6

View file

@ -0,0 +1,33 @@
---
episode_id: "3c9156f6-89c1-4246-bcb3-e56af7e1c0a6"
puente_flat: "TRAZA_lo-que-encontr-antes-de-empaquetar-nada_S20260726.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260726.ARCO_CICLO4_AUTOMEJORA"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "AEGIS"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 1 — MNEMO_PRE_DIGEST: Lo que encontré antes de empaquetar nada"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-27T04:15:38.351726+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Paquete terminado y verificado. Te lo entregué arriba.
## Lo que encontré antes de empaquetar nada
**Cloudflare hoy no te protege de nada.** Esto no es una opinión: lo medí. Cuatro de tus subdominios (`git`, `nube`, `auth`, `context`) sí pasan por Cloudflare — la "nube naranja" que se supone esconde tu servidor. Pero tu dominio raíz y `render` publican en el DNS **la IP real del servidor**, a la vista de cualquiera. Y cuando le pedí a esa IP directamente el contenido de `git.brasaluz.com`, el servidor me respondió **`200 OK`**. Es decir: cualquiera resuelve tu dominio raíz, obtiene la IP, y habla con tu servidor saltándose Cloudflare por completo. El cortafuegos de aplicaciones web, la protección contra ataques de denegación de servicio, las reglas — todo eso se esquiva escribiendo la IP en vez del nombre.
Lo más incómodo: **tu propio ecosistema ya había escrito ese riesgo en junio** (*"el origen accesible directo bypassa Access"*) y quedó sin atender. Lo que hice fue confirmarlo empíricamente.
**Tu cortafuegos de host no existe.** UFW está inactivo *y su binario fue borrado del sistema*. Cero reglas cargadas, política de entrada en ACEPTAR, tanto en IPv4 como en IPv6. Mientras tanto, `INFRA_MANIFEST.yaml:1607` declara `ufw: "deny incoming, 5 ports"`. El ecosistema cree que tiene un control de seguridad que no tiene — y eso es peligroso por sí mismo, porque una instancia futura leerá el manifiesto y bajará la guardia.
Hay un tercer hallazgo más silencioso: un servicio **no declarado** escuchando al exterior en el puerto 3005 desde hace 69 días. Es `warden-mcp`, el conector del gestor de secretos Vaultwarden, instalado como esbozo y nunca terminado. Su regla de bloqueo existe **solo en IPv4**, y su socket acepta IPv6.
No todo está mal, y esto importa para no gastar el plan donde no hace falta: de tus ~60 contenedores **solo el proxy publica al exterior** (el resto está atado a la interfaz interna, que es exactamente lo correcto), SSH está bien endurecido (solo llave, sin root, sin contraseña), y fail2ban con CrowdSec están vivos.
## La iniciativa no estaba traspapelada: estaba sin firmar