
warpgate v0.29.0-beta.1
Fully transparent SSH, HTTPS, Kubernetes, database and RDP/VNC bastion/PAM that doesn't need additional client-side software Bastión/PAM totalmente transparente para SSH, HTTPS, Kubernetes, bases de datos y RDP/VNC que no requiere software adicional en el lado del cliente.
Warpgate es un host bastión inteligente y totalmente transparente para SSH, HTTPS, Kubernetes, MySQL, PostgreSQL, RDP y VNC que no requiere una aplicación cliente ni un wrapper de SSH.
- Configúralo en tu DMZ, añade cuentas de usuario y asígnalas fácilmente a hosts y URLs específicos dentro de la red.
- Warpgate grabará cada sesión para que puedas verla (en vivo) y reproducirla más tarde a través de una interfaz web de administración integrada.
- El acceso SSH, RDP y VNC basado en navegador está integrado; los clientes nativos siguen funcionando.
- No es un host de salto: reenvía la conexión directamente al destino de una manera totalmente transparente para el cliente.
- Soporte nativo de 2FA y SSO (TOTP y OpenID Connect)
- Protección integrada contra fuerza bruta con bloqueo de IP y bloqueo de usuarios
- Un único binario sin dependencias.
- Escrito en Rust 100% seguro.
Con el apoyo de:
Primeros pasos y descargas
- Consulta la página de documentación Primeros pasos (o Primeros pasos con Docker).
- Binarios de versiones / beta
- Compilaciones nocturnas
Documentación
La documentación completa está disponible en warpgate.null.page, e incluye:
- Protección de inicio de sesión - Configura la protección contra fuerza bruta
- SSO - Inicio de sesión único con OpenID Connect
- Tickets - Credenciales de acceso temporales
¿En qué se diferencia Warpgate de un host de salto / VPN / Teleport?
| Warpgate | Host de salto SSH | VPN | Teleport |
|---|---|---|---|
| ✅ Asignación precisa 1:1 entre usuarios y servicios | (Normalmente) acceso completo a la red detrás del host de salto | (Normalmente) acceso completo a la red | ✅ Asignación precisa 1:1 entre usuarios y servicios |
| ✅ No se necesita un cliente personalizado | Se necesita configuración del host de salto | ✅ No se necesita un cliente personalizado | Se requiere un cliente personalizado |
| ✅ 2FA incluido de serie | 🟡 2FA posible con plugins PAM adicionales | 🟡 Depende del proveedor | ✅ 2FA incluido de serie |
| ✅ SSO incluido de serie | 🟡 SSO posible con plugins PAM adicionales | 🟡 Depende del proveedor | De pago |
| ✅ Auditoría a nivel de comandos | 🟡 Auditoría a nivel de conexión en el host de salto, sin auditoría segura en el destino si se otorga acceso root | Sin auditoría segura en el destino si se otorga acceso root | ✅ Auditoría a nivel de comandos |
| ✅ Grabación completa de sesiones | No es posible una grabación segura en el destino si se otorga acceso root | No es posible una grabación segura en el destino si se otorga acceso root | ✅ Grabación completa de sesiones |
| ✅ Conexiones no interactivas | 🟡 Las conexiones no interactivas son posibles si los clientes soportan hosts de salto de forma nativa | ✅ Conexiones no interactivas | Las conexiones no interactivas requieren usar un wrapper de cliente SSH o ejecutar un túnel |
| ✅ Autoalojado, tú eres dueño de los datos | ✅ Autoalojado, tú eres dueño de los datos | 🟡 Depende del proveedor | SaaS |
| ✅ Protección integrada contra fuerza bruta | 🟡 Requiere configuración de fail2ban | 🟡 Depende del proveedor | ✅ Protección integrada contra fuerza bruta |
|
|
|
Reporte de problemas de seguridad
Utiliza el sistema de reporte de vulnerabilidades de GitHub.
Estado del proyecto
Warpgate se utiliza activamente en entornos empresariales.
Lo que está planificado y en lo que se está trabajando a continuación se rastrea en la hoja de ruta pública.
Cómo funciona
Warpgate es un servicio que despliegas en el host bastión/DMZ, que aceptará conexiones SSH, HTTPS, Kubernetes, MySQL, PostgreSQL, RDP y VNC y proporcionará una interfaz web de administración (opcional).
Ejecuta warpgate setup para generar interactivamente un archivo de configuración, incluidos los enlaces de puertos. Consulta Primeros pasos para más detalles.
Recibe conexiones con credenciales con formato específico, autentica al usuario localmente, se conecta al destino por sí mismo y luego conecta a ambas partes mientras (opcionalmente) graba la sesión.
Al conectarse a través de HTTPS, Warpgate presenta una selección de destinos disponibles y luego proxyará todo el tráfico de la sesión al destino seleccionado. Puedes cambiar entre destinos en cualquier momento.
Gestionas las listas de destinos y usuarios y las asignas entre sí a través de la interfaz de administración, y el historial de sesiones se almacena en una base de datos SQLite (por defecto: en /var/lib/warpgate).
También puedes usar la interfaz web de administración para ver la lista de sesiones en vivo, revisar grabaciones de sesiones, registros y más.
Divulgación de transparencia sobre IA
A finales de 2025, este proyecto comenzó a aceptar contribuciones asistidas por IA. Se requiere que los contribuyentes revelen el uso de IA. Creo que al aplicar el mismo estándar de alta calidad a todos los PR, ya sea asistidos por IA o no, no es necesario hacer ningún sacrificio en calidad o seguridad.
Dado que la IA es un espectro entre entusiastas sin criterio y usuarios de autocompletado, creo que ser transparente sobre su uso ayuda a establecer y limitar el lugar de la IA en este proyecto.
Las decisiones arquitectónicas y de seguridad en este proyecto son 100% humanas.
Contribuir / compilar desde el código fuente
- Necesitarás Rust, NodeJS y NPM
- Clona el repositorio
- Just se utiliza para ejecutar tareas - instálalo:
cargo install just - Instala las dependencias de la interfaz de administración:
just npm install - Compila el frontend:
just npm run build - Compila Warpgate:
cargo build(opcionalmente--release)
El binario está en target/{debug|release}.
Stack tecnológico
- Rust 🦀
- HTTP:
poem-web - Base de datos: SQLite mediante
sea-orm+sqlx - SSH:
russh
- HTTP:
- Typescript
- Svelte 5
- Bootstrap
API de backend
- Las APIs de administración y de cara al usuario de Warpgate utilizan esquemas OpenAPI y SDKs autogenerados. Para actualizar los SDKs después de cambiar las estructuras de consulta/respuesta, ejecuta
just openapi-all.
Colaboradores ✨
Gracias a estas maravillosas personas (clave de emojis):
Este proyecto sigue la especificación all-contributors. ¡Se aceptan contribuciones de cualquier tipo!































