feat(episode): TRAZA_cierre-lo-que-qued-hecho-y-lo-que-no_S20260726.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: Cierre — lo que quedó hecho y lo que no
This commit is contained in:
Ember 2026-07-27 05:31:12 +00:00
parent e263113d26
commit df4dbc5c15

View file

@ -0,0 +1,41 @@
---
episode_id: "7a928fb6-1eaa-411e-a901-55053b10b201"
puente_flat: "TRAZA_cierre-lo-que-qued-hecho-y-lo-que-no_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: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 1 — MNEMO_PRE_DIGEST: Cierre — lo que quedó hecho y lo que no"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-07-27T05:31:04.545172+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
Todo verificado: mi contenido está **committeado y a salvo** — pero dentro del commit de otra instancia (`cc8db803`), que barrió mi índice con el suyo. Nada se perdió; el mensaje de commit que redacté sí.
Y hay una falla de proceso mía que debo reconocer: **nunca declaré presencia en `ACTIVO.md`** antes de editar, que es justo el protocolo que existe para evitar esto.
—
# Cierre — lo que quedó hecho y lo que no
## ✅ Completado y verificado empíricamente
**El cortafuegos de Hetzner: medido. No existe.** Y la medición es sólida en las dos direcciones, que es lo que la hace creíble: puertos inventados devuelven rechazo inmediato (los paquetes llegan al host, no hay filtro arriba), el puerto con regla DROP devuelve silencio (el instrumento sabe ver un filtro cuando lo hay), y SSH devuelve su bandera real (el camino funciona). Tu servidor está **directamente expuesto a internet**, sin nada delante.
**El MCP de tu gestor de secretos estaba abierto a internet por IPv6. Ya no.** Lo confirmé antes de tocarlo —no arreglo fantasmas—, apliqué la regla espejo, la persistí solo en el fichero de IPv6 (dejando el de IPv4 intacto a propósito, para no fijar por accidente las reglas dinámicas de Docker), y **verifiqué el efecto desde fuera**: pasó de `CONECTA` a `SILENCIO/DROP` con los controles inalterados. Respaldo previo en `rules.v6.bak_20260727_051746`.
**Documento canónico creado:** [docs/AUDITORIA_SUPERFICIE_ATAQUE_S20260727.md](docs/AUDITORIA_SUPERFICIE_ATAQUE_S20260727.md) — hallazgos con evidencia, la metodología (incluida la lección del instrumento que mintió), el plan por fases con su oráculo, y las negativas honestas.
**Anti-olvido cerrado en los tres dolientes:** el hecho-de-estado `superficie_red_servidor_memoria` quedó en `estado_vivo.json`, en `ESTADO_VIVO.md` y en la glosa de `MEMORY.md`. Es lo que impide que esto se traspapele por tercera vez.
**Briefing sincronizado:** sus dos huecos principales ya no son huecos. Sigue pasando el gate (18.631 tokens, cero fugas).
## ⛔ Bloqueado — necesita tu palabra, no más trabajo mío
**1. El manifiesto miente y no puedo arreglarlo solo.** `INFRA_MANIFEST.yaml:1607` dice `ufw: "deny incoming, 5 ports"`. Es falso. El cerrojo D3 me bloqueó la edición, **y funcionó como debe**: es infra crítica. Esto es lo más urgente de la lista, porque una instancia futura lee eso y baja la guardia.