
warpgate v0.29.0-beta.1
Bastion/PAM entièrement transparent pour SSH, HTTPS, Kubernetes, bases de données et RDP/VNC, qui ne nécessite aucun logiciel supplémentaire côté client.
Warpgate est un bastion intelligent et entièrement transparent pour SSH, HTTPS, Kubernetes, MySQL, PostgreSQL, RDP et VNC qui ne nécessite ni application cliente ni wrapper SSH.
- Installez-le dans votre DMZ, ajoutez des comptes utilisateurs et assignez-les facilement à des hôtes et des URL spécifiques au sein du réseau.
- Warpgate enregistre chaque session pour que vous puissiez la visionner (en direct) et la rejouer ultérieurement via une interface d'administration web intégrée.
- L'accès SSH, RDP et VNC via navigateur est intégré ; les clients natifs continuent de fonctionner.
- Ce n'est pas un hôte de rebond — il transmet la connexion directement à la cible de manière totalement transparente pour le client.
- Prise en charge native de la 2FA et du SSO (TOTP et OpenID Connect)
- Protection intégrée contre la force brute avec blocage d'adresses IP et verrouillage d'utilisateurs
- Binaire unique sans dépendances.
- Écrit en Rust 100 % sûr.
Soutenu par :
Démarrage et téléchargements
- Consultez la page de documentation Démarrage (ou Démarrage avec Docker).
- Binaires de version / bêta
- Builds nocturnes
Documentation
La documentation complète est disponible sur warpgate.null.page, notamment :
- Protection de connexion - Configurer la protection contre la force brute
- SSO - Authentification unique avec OpenID Connect
- Tickets - Identifiants d'accès temporaires
En quoi Warpgate diffère-t-il d'un hôte de rebond / VPN / Teleport ?
| Warpgate | Hôte de rebond SSH | VPN | Teleport |
|---|---|---|---|
| ✅ Assignation précise 1:1 entre utilisateurs et services | (Généralement) accès complet au réseau derrière l'hôte de rebond | (Généralement) accès complet au réseau | ✅ Assignation précise 1:1 entre utilisateurs et services |
| ✅ Aucun client personnalisé requis | Configuration de l'hôte de rebond requise | ✅ Aucun client personnalisé requis | Client personnalisé requis |
| ✅ 2FA intégrée | 🟡 2FA possible avec des plugins PAM supplémentaires | 🟡 Dépend du fournisseur | ✅ 2FA intégrée |
| ✅ SSO intégré | 🟡 SSO possible avec des plugins PAM supplémentaires | 🟡 Dépend du fournisseur | Payant |
| ✅ Audit au niveau des commandes | 🟡 Audit au niveau des connexions sur l'hôte de rebond, aucun audit sécurisé sur la cible si un accès root est accordé | Aucun audit sécurisé sur la cible si un accès root est accordé | ✅ Audit au niveau des commandes |
| ✅ Enregistrement complet des sessions | Aucun enregistrement sécurisé possible sur la cible si un accès root est accordé | Aucun enregistrement sécurisé possible sur la cible si un accès root est accordé | ✅ Enregistrement complet des sessions |
| ✅ Connexions non interactives | 🟡 Les connexions non interactives sont possibles si les clients prennent en charge les hôtes de rebond nativement | ✅ Connexions non interactives | Les connexions non interactives nécessitent un wrapper client SSH ou l'exécution d'un tunnel |
| ✅ Auto-hébergé, vous possédez vos données | ✅ Auto-hébergé, vous possédez vos données | 🟡 Dépend du fournisseur | SaaS |
| ✅ Protection intégrée contre la force brute | 🟡 Nécessite la configuration de fail2ban | 🟡 Dépend du fournisseur | ✅ Protection intégrée contre la force brute |
|
|
|
Signaler des problèmes de sécurité
Veuillez utiliser le système de signalement de vulnérabilités de GitHub.
État du projet
Warpgate est activement utilisé dans des environnements d'entreprise.
Ce qui est prévu et en cours de développement est suivi sur la feuille de route publique.
Comment ça fonctionne
Warpgate est un service que vous déployez sur l'hôte bastion/DMZ, qui accepte les connexions SSH, HTTPS, Kubernetes, MySQL, PostgreSQL, RDP et VNC et fournit une interface d'administration web (optionnelle).
Exécutez warpgate setup pour générer interactivement un fichier de configuration, y compris les liaisons de ports. Consultez Démarrage pour plus de détails.
Il reçoit des connexions avec des identifiants au format spécifique, authentifie l'utilisateur localement, se connecte lui-même à la cible, puis relie les deux parties tout en enregistrant (optionnellement) la session.
Lors d'une connexion via HTTPS, Warpgate présente une sélection des cibles disponibles, puis relaie tout le trafic de la session vers la cible sélectionnée. Vous pouvez basculer entre les cibles à tout moment.
Vous gérez les listes de cibles et d'utilisateurs et les assignez les unes aux autres via l'interface d'administration, et l'historique des sessions est stocké dans une base de données SQLite (par défaut : dans /var/lib/warpgate).
Vous pouvez également utiliser l'interface web d'administration pour consulter la liste des sessions en direct, revoir les enregistrements de sessions, les journaux et plus encore.
Déclaration de transparence sur l'IA
Fin 2025, ce projet a commencé à accepter des contributions assistées par l'IA. Les contributeurs sont tenus de divulguer l'utilisation de l'IA. Je crois qu'en appliquant la même norme de haute qualité à toutes les demandes de tirage (PR), qu'elles soient assistées par l'IA ou non, aucun sacrifice en matière de qualité ou de sécurité n'est nécessaire.
L'IA étant un spectre entre les enthousiastes sans discernement et les utilisateurs d'autocomplétion, je crois que la transparence quant à son utilisation aide à établir et à limiter la place de l'IA dans ce projet.
Les décisions architecturales et de sécurité de ce projet sont 100 % humaines.
Contribuer / compiler à partir des sources
- Vous aurez besoin de Rust, NodeJS et NPM
- Clonez le dépôt
- Just est utilisé pour exécuter les tâches — installez-le :
cargo install just - Installez les dépendances de l'interface d'administration :
just npm install - Compilez le frontend :
just npm run build - Compilez Warpgate :
cargo build(optionnellement--release)
Le binaire se trouve dans target/{debug|release}.
Pile technologique
- Rust 🦀
- HTTP :
poem-web - Base de données : SQLite via
sea-orm+sqlx - SSH :
russh
- HTTP :
- Typescript
- Svelte 5
- Bootstrap
API backend
- Les API orientées administration et utilisateur de Warpgate utilisent des schémas et SDK OpenAPI autogénérés. Pour mettre à jour les SDK après avoir modifié les structures de requête/réponse, exécutez
just openapi-all.
Contributeurs ✨
Merci à ces personnes formidables (clé des emojis) :
Ce projet suit la spécification all-contributors. Toutes les contributions, quel qu'en soit le type, sont les bienvenues !































