Esta página fue traducida automáticamente. Si encuentra errores o tiene sugerencias, contáctenos.
Problema que resuelveEsta guía te muestra cómo recibir webhooks de Rhombus en servidores detrás de firewalls o NAT sin necesidad de una dirección IP pública ni de una configuración de VPN compleja.
Casos de uso
Este método es ideal para distintos escenarios en los que no se dispone de acceso público directo o no se desea:Requisitos de seguridad
Tu servidor está detrás de un NAT/firewall y no puede tener una IP pública
Integración de webhooks
Necesitas recibir solicitudes POST de webhooks desde Rhombus
Seguro y sencillo
Quieres una forma segura de reenviar tráfico a tu receptor de webhooks local
Redes empresariales
Los firewalls corporativos impiden las conexiones entrantes directas
Descripción general de la arquitectura
Cómo funcionaEl túnel SSH inverso conecta el relay público de vuelta a tu servidor local, reenviando de forma segura el tráfico externo a tu receptor de webhooks.
Componentes
Implementación paso a paso
1
Aprovisiona un servidor relay público
Configura un servidor Linux ligero (por ejemplo, Ubuntu) en un proveedor de nube como AWS, GCP o DigitalOcean.Requisitos:
- Asigna una IP pública o un nombre de dominio (por ejemplo,
relay.yourdomain.com) - Abre los puertos entrantes (80 o 443) para el tráfico HTTP/HTTPS
- Especificaciones mínimas: 1 CPU, 512MB de RAM es suficiente
- AWS EC2
- DigitalOcean
- Google Cloud
AWS EC2 Setup
2
Configura SSH para el túnel remoto
En el servidor relay, modifica la configuración del daemon SSH para permitir el reenvío de puertos remotos:Asegúrate de que las siguientes opciones estén establecidas:Reinicia el servicio SSH:
Edit SSH Config
SSH Configuration
Restart SSH
3
Configura la autenticación con clave SSH
En tu servidor privado (donde se ejecuta el receptor de webhooks), genera claves SSH y cópialas al relay:Verifica el acceso SSH sin contraseña:
Generate SSH Keys
Test Connection
4
Establece el túnel SSH inverso
Ejecuta el siguiente comando en tu servidor privado:Explicación:
- Basic Tunnel
- Background Process
- Persistent Tunnel
Basic Reverse SSH Tunnel
80- Puerto externo expuesto por el servidor relaylocalhost:8080- Dirección de tu receptor de webhooks local- La conexión permanece activa en primer plano
5
Prueba la configuración
Ahora comprueba que tu túnel funciona correctamente:URL del webhook para Rhombus:
Test Webhook
Indicador de éxitoSi ves la solicitud en los logs de tu receptor de webhooks local, ¡el túnel funciona correctamente!
Mejoras de seguridad
HTTPS con NGINX
Para entornos de producción, añade soporte para HTTPS:- NGINX Setup
- SSL Certificate
- Configuration
Install NGINX
Buenas prácticas de seguridad
Autenticación
Autenticación
Autenticación basada en claves:
- Usa solo autenticación SSH basada en claves
- Deshabilita la autenticación por contraseña
- Rota las claves SSH con regularidad
Secure SSH
Seguridad de red
Seguridad de red
Configuración del firewall:
- Restringe el tráfico con reglas de firewall
- Usa fail2ban para proteger SSH
- Monitorea las conexiones del túnel
Firewall Rules
Control de acceso
Control de acceso
Restringe el acceso:
- Limita el acceso SSH a IPs específicas cuando sea posible
- Usa puertos SSH no estándar
- Habilita la autenticación de dos factores para SSH
IP Restriction
Despliegue en producción
Servicio systemd para el inicio automático
Crea un servicio systemd para iniciar automáticamente el túnel al arrancar:Create Service File
Systemd Service Configuration
Enable Service
Monitoreo y registro
Monitor Tunnel
Ventajas de este enfoque
Funciona detrás de firewalls
Funciona perfectamente detrás de un NAT o de firewalls corporativos sin ninguna regla de entrada
No requiere VPN
Elimina la configuración compleja de una VPN y su sobrecarga de mantenimiento
Automatización sencilla
Fácil de automatizar con autossh y systemd para una fiabilidad de producción
Seguro para empresas
Conexión totalmente saliente, segura para la mayoría de las políticas de red empresariales
Rentable
Usa recursos mínimos en una pequeña instancia de nube ($5-10/mes)
Muy fiable
Se reconecta automáticamente y se autorrepara con la configuración adecuada
Resolución de problemas
La conexión SSH falla
La conexión SSH falla
Problema: No se puede establecer la conexión SSH con el servidor relaySoluciones:
Diagnose SSH Issues
El túnel no funciona
El túnel no funciona
Problema: El túnel se estableció pero las solicitudes de webhook no llegan al servidor localSoluciones:
Diagnose Tunnel Issues
El puerto ya está en uso
El puerto ya está en uso
Problema: El puerto 80 ya está en uso en el servidor relaySoluciones:
Resolve Port Conflicts
La conexión se cae con frecuencia
La conexión se cae con frecuencia
Problema: El túnel se desconecta con regularidadSoluciones:
- Usa
autosshen lugar delsshnormal - Añade ajustes de keep-alive a la configuración de SSH
- Comprueba la estabilidad de la red entre servidores
- Aumenta los valores de timeout
SSH Keep-Alive
Ejemplos de implementaciones de webhooks
- Node.js
- Python
- C#
- Go
webhook-server.js
Configurar webhooks en Rhombus
Una vez que tu receptor esté en ejecución y el túnel esté establecido:1
Obtén la URL de tu webhook
La URL pública de tu webhook será:o con HTTPS:
2
Configura en la Consola de Rhombus
- Inicia sesión en Rhombus Console
- Navega a Settings → Third Party Integrations > Webhooks
- Haz clic en Add Webhook
- Introduce la URL pública de tu webhook
- Selecciona los eventos que quieres recibir
- Guarda la configuración
3
Monitorea los eventos
Observa los logs de tu servidor de webhooks para ver los eventos entrantes en tiempo real.
Próximos pasos
¡Éxito!Ahora tienes una forma segura y fiable de recibir webhooks de Rhombus en tu infraestructura privada sin exponer tus servidores a internet ni requerir configuraciones de VPN complejas.
Rhombus Console
Configura webhooks en la Consola de Rhombus
Webhooks Overview
Conoce los tipos de eventos de webhook de Rhombus y los formatos de carga útil
Developer Community
Únete a nuestra comunidad para obtener soporte sobre la integración de webhooks
Para despliegues en producción: valida las firmas de los webhooks, usa HTTPS, implementa la limitación de velocidad y mantén registros completos de los eventos de webhook. Configura monitoreo y alertas para los fallos en la entrega de webhooks.