feat(episode): TRAZA_el-orden-origen-primero-input-despus_S20260728.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: El orden: ORIGEN primero, INPUT después
This commit is contained in:
parent
c063fb2753
commit
62b4770c52
1 changed files with 37 additions and 0 deletions
|
|
@ -0,0 +1,37 @@
|
|||
---
|
||||
episode_id: "31682409-583d-4143-9513-b4860b26aa6f"
|
||||
puente_flat: "TRAZA_el-orden-origen-primero-input-despus_S20260728.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||
session_code: "S20260728.REINGESTA_CRISOL_FUGAS"
|
||||
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: El orden: ORIGEN primero, INPUT después"
|
||||
source_type: "claude_code"
|
||||
trust_boundary: "internal"
|
||||
created_at: "2026-07-28T23:37:09.520205+00:00"
|
||||
relectura_tagged: false
|
||||
forgejo_commit_sha: "pending"
|
||||
---
|
||||
|
||||
Orden decidido y preparación hecha. Te resumo.
|
||||
|
||||
## El orden: ORIGEN primero, INPUT después
|
||||
|
||||
El bypass del origen es el **único agujero realmente abierto**; la `INPUT` previene uno futuro. Pero lo que decide no es la urgencia sino el **modo de fallo**: los pasos del origen, si salen mal, hacen que una web deje de cargar — visible al instante y reversible con una orden. La `INPUT` es el único paso que puede **dejarte sin entrar al servidor**. Por eso va sola, al final, contigo delante. Dos capas peligrosas moviéndose a la vez significan que, si algo se rompe, no sabes cuál fue.
|
||||
|
||||
## Corregí el plan antes de escribirte instrucciones
|
||||
|
||||
El plan de ayer decía "pasa `render` y `lumbre` a naranja y restringe la entrada a Cloudflare". **Era incorrecto**, por dos medidas nuevas:
|
||||
|
||||
**`lumbre.brasaluz.com` es tu endpoint MCP**, y está en gris a propósito. Su bloque en Caddy lo protege con una lista de IPs permitidas **o** con un token. Si pasara por Cloudflare, todas las peticiones llegarían con IP de Cloudflare y esa lista dejaría de distinguir a nadie: una puerta de dos llaves se quedaría con una sola.
|
||||
|
||||
**Caddy no tiene ninguna directiva `tls`**, así que renueva por ACME. Restringir la entrada a los rangos de Cloudflare le habría cortado la validación, y tus certificados caducarían semanas después **en silencio**.
|
||||
|
||||
De ahí sale una conclusión incómoda pero honesta: como `lumbre` necesita acceso directo, **la IP de origen no se puede ocultar**. Perseguirlo es perseguir algo imposible. Lo alcanzable, y lo que de verdad importa, es que **el origen rechace las peticiones a los vhosts protegidos cuando no vengan de Cloudflare** — comprobando el carnet que Cloudflare presenta. Se aplica vhost por vhost, no toca ACME, no toca `lumbre`, y no hay lista de IPs que mantener.
|
||||
|
||||
## Ya hice mi parte previa
|
||||
|
||||
Descargué el certificado de la autoridad de Cloudflare y **verifiqué que es genuino** en vez de suponerlo: emisor `CloudFlare, Inc. / Origin Pull / origin-pull.cloudflare.net`, válido hasta 2029, huella SHA256 `9A:1A:C2:B4:...:A2:B9` por si quieres contrastarla. Lo coloqué en un volumen que el contenedor ya ve y comprobé desde dentro que puede leerlo. **Caddy lleva 2 meses en marcha y no lo reinicié** — recrearlo tumbaría los 27 sitios unos segundos, y no hago eso sin avisarte.
|
||||
Loading…
Reference in a new issue