
warpgate v0.29.0-beta.1
Fully transparent SSH, HTTPS, Kubernetes, database e bastion/PAM RDP/VNC che non richiede software aggiuntivo lato client
Warpgate è un bastion host intelligente e completamente trasparente per SSH, HTTPS, Kubernetes, MySQL, PostgreSQL, RDP e VNC che non richiede un'app client o un wrapper SSH.
- Configuralo nella tua DMZ, aggiungi account utente e assegnagli facilmente host e URL specifici all'interno della rete.
- Warpgate registrerà ogni sessione per consentirti di visualizzarla (in diretta) e riprodurla in seguito tramite una web UI di amministrazione integrata.
- L'accesso SSH, RDP e VNC basato su browser è integrato; i client nativi continuano a funzionare.
- Non è un jump host: inoltra la connessione direttamente al target in modo completamente trasparente per il client.
- Supporto nativo per 2FA e SSO (TOTP e OpenID Connect)
- Protezione integrata contro la forza bruta con blocco IP e blocco utente
- Singolo binario senza dipendenze.
- Scritto in Rust 100% sicuro.
Supportato da:
Per iniziare e download
- Consulta la pagina di documentazione Per iniziare (oppure Per iniziare con Docker).
- Binari di release / beta
- Build notturne
Documentazione
La documentazione completa è disponibile su warpgate.null.page, inclusi:
- Protezione degli accessi - Configura la protezione contro la forza bruta
- SSO - Single Sign-On con OpenID Connect
- Ticket - Credenziali di accesso temporanee
In cosa Warpgate è diverso da un jump host / VPN / Teleport?
| Warpgate | SSH jump host | VPN | Teleport |
|---|---|---|---|
| ✅ Assegnazione precisa 1:1 tra utenti e servizi | (Di solito) accesso completo alla rete dietro il jump host | (Di solito) accesso completo alla rete | ✅ Assegnazione precisa 1:1 tra utenti e servizi |
| ✅ Nessun client personalizzato necessario | Configurazione del jump host necessaria | ✅ Nessun client personalizzato necessario | Client personalizzato richiesto |
| ✅ 2FA inclusa | 🟡 2FA possibile con plugin PAM aggiuntivi | 🟡 Dipende dal provider | ✅ 2FA inclusa |
| ✅ SSO incluso | 🟡 SSO possibile con plugin PAM aggiuntivi | 🟡 Dipende dal provider | A pagamento |
| ✅ Audit a livello di comando | 🟡 Audit a livello di connessione sul jump host, nessun audit sicuro sul target se viene concesso l'accesso root | Nessun audit sicuro sul target se viene concesso l'accesso root | ✅ Audit a livello di comando |
| ✅ Registrazione completa della sessione | Nessuna registrazione sicura possibile sul target se viene concesso l'accesso root | Nessuna registrazione sicura possibile sul target se viene concesso l'accesso root | ✅ Registrazione completa della sessione |
| ✅ Connessioni non interattive | 🟡 Le connessioni non interattive sono possibili se i client supportano nativamente i jump host | ✅ Connessioni non interattive | Le connessioni non interattive richiedono l'uso di un wrapper client SSH o l'esecuzione di un tunnel |
| ✅ Self-hosted, i dati sono tuoi | ✅ Self-hosted, i dati sono tuoi | 🟡 Dipende dal provider | SaaS |
| ✅ Protezione integrata contro la forza bruta | 🟡 Richiede la configurazione di fail2ban | 🟡 Dipende dal provider | ✅ Protezione integrata contro la forza bruta |
|
|
|
Segnalazione di problemi di sicurezza
Utilizza il sistema di segnalazione delle vulnerabilità di GitHub.
Stato del progetto
Warpgate è attivamente utilizzato in ambienti enterprise.
Ciò che è pianificato e su cui si sta lavorando è tracciato nella roadmap pubblica.
Come funziona
Warpgate è un servizio che distribuisci sull'host bastion/DMZ, che accetterà connessioni SSH, HTTPS, Kubernetes, MySQL, PostgreSQL, RDP e VNC e fornirà una web UI di amministrazione (opzionale).
Esegui warpgate setup per generare in modo interattivo un file di configurazione, inclusi i binding delle porte. Consulta Per iniziare per i dettagli.
Riceve connessioni con credenziali formattate in modo specifico, autentica l'utente localmente, si connette al target stesso e quindi collega entrambe le parti mentre (opzionalmente) registra la sessione.
Quando ci si connette tramite HTTPS, Warpgate presenta una selezione dei target disponibili e quindi inoltrerà tutto il traffico della sessione al target selezionato. Puoi passare da un target all'altro in qualsiasi momento.
Gestisci gli elenchi di target e utenti e li assegni tra loro tramite la UI di amministrazione, e la cronologia delle sessioni è archiviata in un database SQLite (predefinito: in /var/lib/warpgate).
Puoi anche utilizzare l'interfaccia web di amministrazione per visualizzare l'elenco delle sessioni in diretta, rivedere le registrazioni delle sessioni, i log e altro.
Informativa sulla trasparenza dell'IA
A fine 2025, questo progetto ha iniziato ad accettare contributi assistiti dall'IA. Ai contributori è richiesto di dichiarare l'uso dell'IA. Credo che applicando lo stesso standard di alta qualità a tutte le PR, assistite dall'IA o meno, non sia necessario alcun sacrificio in termini di qualità o sicurezza.
Poiché l'IA è uno spettro tra utenti superficiali e utenti di autocompletamento, credo che essere trasparenti sul suo utilizzo aiuti a stabilire e limitare il posto dell'IA in questo progetto.
Le decisioni architetturali e di sicurezza su questo progetto sono al 100% umane.
Contribuire / compilare dal sorgente
- Ti serviranno Rust, NodeJS e NPM
- Clona il repository
- Just viene utilizzato per eseguire le attività - installalo:
cargo install just - Installa le dipendenze della UI di amministrazione:
just npm install - Compila il frontend:
just npm run build - Compila Warpgate:
cargo build(opzionalmente--release)
Il binario si trova in target/{debug|release}.
Stack tecnologico
- Rust 🦀
- HTTP:
poem-web - Database: SQLite tramite
sea-orm+sqlx - SSH:
russh
- HTTP:
- Typescript
- Svelte 5
- Bootstrap
API backend
- Le API rivolte all'amministratore e all'utente di Warpgate utilizzano schemi OpenAPI e SDK generati automaticamente. Per aggiornare gli SDK dopo aver modificato le strutture di query/risposta, esegui
just openapi-all.
Collaboratori ✨
Un ringraziamento va a queste persone meravigliose (chiave emoji):
Questo progetto segue la specifica all-contributors. Ogni tipo di contributo è benvenuto!































