Conexión Remota y Clúster en AngelSQL

AngelRemote es el subsistema de interconexión privada y túneles TLS de alto rendimiento integrado en AngelSQL. Permite conectar servidores centrales en la nube (Master) con sucursales, terminales de punto de venta y aplicaciones locales (Client) sin requerir apertura de puertos en módems ni configuración de VPNs complejas.

Tecnología TLS Moderna vs SSH: A diferencia de túneles SSH externos, AngelRemote opera de forma 100% nativa en .NET mediante sockets TLS asíncronos y Certificate Pinning criptográfico SHA-256, garantizando baja latencia, reconexión automática instantánea y cero dependencias de software de terceros.
[Captura: Diagrama de Arquitectura Master / Cliente de AngelRemote]
Espacio reservado para el diagrama o captura visual del flujo de datos entre el Servidor Master y los Clientes conectados.

Roles del Clúster: Master y Client

Cualquier instancia de AngelSQLServer puede asumir uno de los siguientes roles configurables desde el panel de administración del puerto 4428:

Rol Descripción Responsabilidad Principal
Master Servidor Central / Cloud Escucha conexiones TCP/TLS entrantes en el puerto 7443. Gestiona Tenants y autoriza Clientes mediante claves secretas SHA-256.
Client Agente Remoto / Sucursal Se conecta hacia el Master a través de Internet (iniciando la conexión desde adentro hacia afuera, sin abrir puertos en el router) y reenvía tráfico a servicios locales o de red.
Disabled Modo Autónomo Local El servidor opera únicamente de forma local en la máquina actual sin conectarse ni aceptar túneles de clúster.

Seguridad TLS y Certificate Pinning

AngelRemote implementa una arquitectura de seguridad de nivel bancario en 3 capas:

  1. Cifrado TLS Punto a Punto: Todo el tráfico viaja completamente encriptado mediante certificados PKCS#12 (PFX).
  2. Huella Digital SHA-256 (Certificate Pinning): Cada nodo cliente verifica la huella criptográfica del servidor Master antes de transmitir cualquier dato, neutralizando ataques Man-in-the-Middle (MitM).
  3. Autenticación de Tenant y Cliente: Cada cliente cuenta con un Client ID (GUID) único y una Clave Secreta SHA-256 (64 hex) asignada a un Tenant específico.

Escenarios de Redirección (Local, LAN y URL)

Una de las mayores ventajas de AngelRemote es la flexibilidad de su destino de redirección. Cuando el Master envía una petición o túnel TCP hacia el nodo Cliente, este último puede reenviar el tráfico a tres destinos distintos según el valor especificado en el campo Destino de Redirección:

🖥️ 1. Mismo Equipo (Local)

Reenvía el tráfico a un puerto o aplicación que corre en la misma máquina física del agente cliente.

Formatos válidos:

49403 o 127.0.0.1:49403

Resultado: Se conecta a http://127.0.0.1:49403.

🏢 2. Red LAN (Puente / Gateway)

El cliente actúa como puerta de enlace para exponer un servidor o base de datos en su red de área local.

Formatos válidos:

192.168.1.50:1433 o 10.0.0.5:8080

Resultado: Se conecta a http://192.168.1.50:1433.

🌐 3. URL Completa

Especifica protocolo y puerto explícitos para APIs web locales o proxies reversos externos.

Formatos válidos:

http://localhost:8080 o https://mi-api.local

Resultado: Conexión directa a la URL.
[Captura: Ejemplos de Redirección Local vs Puente LAN a SQL Server]
Espacio reservado para capturas mostrando la redirección a una app local (ej. puerto 49403) frente a un SQL Server en la LAN (ej. 192.168.1.50:1433).

1. Configuración del Servidor Master

Para configurar el nodo central que recibirá a los clientes:

  1. Abre tu navegador y entra a: http://localhost:4428/index.html.
  2. Haz clic en el botón ⚙️ Configurar Clúster (AngelRemote) en el menú superior.
  3. En el selector Rol del Nodo, elige 🏢 Servidor (Master).
  4. Configura el Puerto Master (por defecto 7443) y tu IP Pública o Dominio (ej. midominio.com o tu IP estática).
  5. Copia la Huella Digital TLS SHA-256 mediante el botón 📋 Copiar Huella.
[Captura: Formulario de Configuración del Perfil Master en el Puerto 4428]
Espacio reservado para la captura del panel Master, mostrando el puerto 7443, IP pública y el botón de copia de Huella SHA-256.

2. Creación de Tenants y Registro de Clientes

Paso 2.1: Crear un Tenant

Un Tenant representa una empresa, organización o grupo de sucursales. Haz clic en + Nuevo Tenant e introduce un nombre y descripción.

Paso 2.2: Registrar un Cliente Autorizado

Haz clic en + Nuevo Cliente dentro de la pestaña Master:

  • Tenant: Selecciona el tenant correspondiente.
  • Client ID: Se genera automáticamente un GUID único.
  • Nombre: Ej. "Caja 1 - Sucursal Norte".
  • Clave Secreta: Haz clic en Generar Secreto para obtener un hash SHA-256 de 64 caracteres.
  • Destino de Redirección: Especifica el puerto o IP local (ej. 49403 o 192.168.1.50:1433).
[Captura: Diálogo Modal de Creación / Edición de Cliente Conectado]
Espacio reservado para la captura del diálogo modal mostrando los campos de Client ID, Clave Secreta y el nuevo campo interactivo de Destino de Redirección.

3. Configuración del Nodo Cliente (Agente)

En el equipo de la sucursal o terminal remota donde corre AngelSQLServer:

  1. Abre el portal en http://localhost:4428/index.html.
  2. Selecciona el rol 💻 Cliente (Client).
  3. Opción Rápida (Recomendada): Haz clic en 📋 Pegar Portapapeles (habiendo copiado el snippet desde el Master) o en 📁 Cargar JSON desde Disco. Todos los campos se autocompletarán al instante.
  4. Verifica que el campo Destino de Redirección coincida con la aplicación local que deseas exponer.
  5. Haz clic en 💾 Guardar Configuración de Clúster.
[Captura: Importación de Configuración de Cliente y Pegado de Snippet]
Espacio reservado para la captura mostrando la carga de archivo JSON o pegado del portapapeles en el perfil Cliente.

Previsualización Dinámica de Destino en Vivo

Para evitar cualquier ambigüedad técnica, el portal de administración del puerto 4428 cuenta con un asistente visual interactivo que interpreta en tiempo real el formato ingresado:

Ejemplo de Respuestas del Asistente:

🖥️ Entrada: 49403Se conectará a http://127.0.0.1:49403 en este mismo equipo.
🏢 Entrada: 192.168.1.50:1433Se reenviará a http://192.168.1.50:1433 (Host/IP en la red local del cliente).
🌐 Entrada: http://localhost:8080Se conectará directamente a la URL indicada.
[Captura: Previsualización Interactiva en Tiempo Real del Campo de Destino]
Espacio reservado para la captura mostrando el cambio dinámico de las alertas de ayuda a medida que el usuario escribe.

Diagnóstico y Solución de Problemas

1. El cliente no conecta con el Master

Causa probable: El puerto 7443 en el firewall del servidor Master no está permitido o la Huella Digital SHA-256 no coincide.

Acción recomendada: Abre el puerto TCP 7443 en el firewall de Windows/Linux del Master y vuelve a copiar la huella digital SHA-256 generada en la pestaña Master.

2. El cliente conecta pero el servicio local responde 404 o rechaza la conexión

Causa probable: El puerto de destino local (ej. 49403) no corresponde a la aplicación en ejecución o la aplicación AngelApp no ha iniciado.

Acción recomendada: Verifica en la pestaña Aplicaciones del puerto 4428 cuál es el puerto asignado a tu AngelApp y configúralo en el campo de destino de redirección.

3. Reenvío a SQL Server en la LAN falla

Causa probable: SQL Server en la máquina remota (ej. 192.168.1.50) no tiene habilitado TCP/IP en SQL Server Configuration Manager o el puerto 1433 está bloqueado por el firewall local.

Acción recomendada: Habilita el protocolo TCP/IP en SQL Server Configuration Manager y permite el puerto 1433 en el equipo de destino.