PegaProx: modo reverse proxy activo, consolas habilitadas por tunnel

This commit is contained in:
Orquestrador CAS
2026-09-19 07:23:45 +00:00
parent 3e26461028
commit ee91947ba4

View File

@@ -36,8 +36,8 @@ Panel web para el control y administración centralizada de los 3 nodos Proxmox
| Método | Detalle | | Método | Detalle |
|---|---| |---|---|
| Web UI (LAN) | https://192.168.10.125:5000 (cert autofirmado) | | Web UI (LAN) | ~~https://192.168.10.125:5000~~ ya no disponible (modo reverse proxy) |
| Web UI (exterior) | https://pegaprox.consultoria-as.com — vía **Cloudflare Tunnel** | | Web UI (exterior) | https://pegaprox.consultoria-as.com — vía **Cloudflare Tunnel** (acceso único) |
| Admin | usuario `admin` / `Aasi940812` | | Admin | usuario `admin` / `Aasi940812` |
| SSH | `ssh root@192.168.10.125` (password: `Aasi940812`) | | SSH | `ssh root@192.168.10.125` (password: `Aasi940812`) |
@@ -48,15 +48,23 @@ Panel web para el control y administración centralizada de los 3 nodos Proxmox
| **Conector** | `cloudflared` 2026.9.1 (repo pkg.cloudflare.com, Ubuntu 24.04) | | **Conector** | `cloudflared` 2026.9.1 (repo pkg.cloudflare.com, Ubuntu 24.04) |
| **Servicio** | `systemctl status cloudflared` (token-managed, `/etc/cloudflared/token`) | | **Servicio** | `systemctl status cloudflared` (token-managed, `/etc/cloudflared/token`) |
| **Protocolo** | `http2` forzado via override systemd (`/etc/systemd/system/cloudflared.service.d/override.conf`) — QUIC a region2 falló en el precheck | | **Protocolo** | `http2` forzado via override systemd (`/etc/systemd/system/cloudflared.service.d/override.conf`) — QUIC a region2 falló en el precheck |
| **Origen** | Dashboard Zero Trust → Public hostname → Type `HTTPS`, Service `https://localhost:5000`, **No TLS Verify** activado (cert autofirmado) | | **Origen** | Dashboard Zero Trust → Public hostname → Type `HTTP`, Service `http://localhost:5000` |
> **Troubleshooting del montaje (Sept 2026):** > **Troubleshooting del montaje (Sept 2026):**
> 1. Token del conector con "Invalid tunnel secret" → el token se había copiado mal/regenerado; pedirlo fresco del dashboard. > 1. Token del conector con "Invalid tunnel secret" → el token se había copiado mal/regenerado; pedirlo fresco del dashboard.
> 2. Error **1016/530** → el registro DNS viejo `pegaprox` bloqueaba el public hostname; se borró y el túnel recreó el CNAME. > 2. Error **1016/530** → el registro DNS viejo `pegaprox` bloqueaba el public hostname; se borró y el túnel recreó el CNAME.
> 3. Error **502 con x509** → faltaba "No TLS Verify" por el cert autofirmado de PegaProx. > 3. Error **502 con x509** → Type `HTTPS` contra un origen con cert autofirmado.
> 4. Error **502 con connection reset** → Type quedó en `HTTP`; debe ser `HTTPS` (PegaProx sirve TLS en :5000). > 4. Error **502 con connection reset** → Type `HTTPS` contra PegaProx en modo reverse proxy (HTTP plano); el Type correcto es `HTTP`.
> 5. Consolas sin conectar por túnel → activado modo reverse proxy; el frontend enruta los WS por el puerto principal.
> **Nota consolas**: los WebSockets de consola (VNC 5001 / SSH 5002) usan orígenes distintos al panel. Vía túnel, cada uno necesita su propio public hostname en el dashboard Zero Trust apuntando a `https://localhost:5001` / `https://localhost:5002` con No TLS Verify. ## Modo Reverse Proxy (consolas habilitadas)
PegaProx corre **detrás de proxy** (`PEGAPROX_BEHIND_PROXY=true` en `/etc/systemd/system/pegaprox.service.d/override.conf`):
- Sirve **HTTP plano en 127.0.0.1:5000** (el TLS lo termina Cloudflare en el borde)
- Las consolas (VNC de VMs, terminal de LXC/nodos) se enrutan por el **mismo hostname/puerto** — no se necesitan public hostnames extra para 5001/5002
- ⚠️ El acceso directo LAN `https://192.168.10.125:5000` **ya no funciona** (bind solo loopback, sin TLS). El acceso es siempre por `https://pegaprox.consultoria-as.com`
- Verificado por API: `GET /api/health` → `200`, y el endpoint WS de consola responde `401` sin token (llega al backend, no 502)
## Nodos Conectados (root@pam para pruebas) ## Nodos Conectados (root@pam para pruebas)