Serveur Bastion · 12 min read · Sep 09, 2025
Comment configurer un serveur Bastion avec Warpgate sur Debian

Un serveur Bastion fait référence à un ordinateur/machine/serveur conçu et configuré spécifiquement pour résister aux attaques sur les réseaux informatiques. La fonctionnalité du serveur Bastion est similaire à celle d’un proxy ou d’un équilibreur de charge pour les applications. Il vous permet d’accéder à des ordinateurs ou des serveurs situés dans des réseaux DMZ.
Warpgate est une solution moderne qui peut être utilisée comme serveur Bastion. Il est écrit en Rust et fournit un tableau de bord d’administration basé sur le web. Vous pouvez l’installer sur un nœud spécifique, puis vous pouvez facilement ajouter des nœuds ou des serveurs cibles situés sur votre infrastructure privée. Warpgate peut actuellement être utilisé comme serveur Bastion pour SSH, MySQL/MariaDB et HTTP.
Dans ce tutoriel, vous allez configurer un serveur Bastion pour les connexions SSH et MySQL/MariaDB sur un serveur Debian 11 en utilisant Warpgate. Vous allez installer et configurer Warpgate sur le serveur Debian, puis ajouter le serveur cible SSH et le serveur MySQL à Warpgate. À la fin, vous vous assurerez que le serveur Bastion Warpgate fonctionne en vous connectant au serveur SSH cible et au serveur MySQL.
Prérequis
Vous aurez besoin des éléments suivants pour compléter ce tutoriel :
- Un serveur Linux exécutant Debian 11 - Cet exemple utilise un serveur avec un nom d’hôte ‘warpgate-debian‘ et une adresse IP ‘192.168.5.10‘.
- Un utilisateur non-root avec des privilèges d’administrateur sudo/root.
Télécharger le fichier binaire Warpgate
Dans cette section, vous allez télécharger manuellement le fichier binaire Warpgate depuis GitHub, puis le déplacer vers le répertoire ‘bin’ du système. Une autre façon d’installer Warpgate est de le compiler à partir du code source ou d’utiliser la version Docker de Warpgate.
Pour commencer, exécutez la commande wget suivante pour télécharger le fichier binaire Warpgate. Visitez la page de téléchargement officielle de GitHub pour la dernière version de Warpgate.
wget -q https://github.com/warp-tech/warpgate/releases/download/v0.7.0/warpgate-v0.7.0-x86_64-linuxUne fois téléchargé, déplacez le fichier binaire Warpgate vers ‘/usr/local/bin/warpgate ‘. Ensuite, rendez-le exécutable en utilisant la commande ‘chmod +x’.
mv warpgate-v0.7.0-x86_64-linux /usr/local/bin/warpgate
sudo chmod +x /usr/local/bin/warpgateEnsuite, exécutez la commande suivante pour localiser le fichier binaire ‘warpgate‘ sur votre système.
which warpgateVérifiez maintenant la version de Warpgate et listez les paramètres disponibles de la commande ‘warpgate’.
warpgate version
warpgate --helpVous devriez recevoir une sortie comme celle-ci.

Configurer Warpgate comme serveur Bastion
Avec le fichier binaire Warpgate téléchargé, vous allez maintenant configurer votre installation de Warpgate. Cela peut être fait de manière interactive via la commande ‘warpgate‘.
Exécutez la commande suivante pour configurer Warpgate en tant que serveur bastion.
warpgate setupAprès l’exécution de la commande, vous serez interrogé sur les configurations suivantes :
- Où souhaitez-vous stocker les données de Warpgate ? Laissez-le par défaut dans le répertoire ‘/var/lib/warpgate’.
- Le point de terminaison du tableau de bord d’administration web de Warpgate ? Laissez-le par défaut pour exécuter Warpgate sur votre adresse IP interne/publique avec le port 8888.
- Accepter les connexions SSH ? Entrez oui pour activer Warpgate en tant que serveur bastion SSH.
- Le point de terminaison du serveur bastion SSH ? Laissez-le par défaut pour exécuter le serveur bastion SSH sur l’adresse IP interne/publique avec le port 2222.
- Accepter les connexions MySQL ? Entrez oui pour activer Warpgate en tant que serveur bastion MySQL.
- Le point de terminaison du serveur bastion MySQL ? Laissez-le par défaut avec le port 33306.
- Enregistrer les sessions utilisateur ? Entrez oui pour l’activer.
- Configurez un mot de passe pour l’utilisateur par défaut admin. Entrez le mot de passe pour votre installation Warpgate.

Une fois le processus de configuration terminé, vous devriez recevoir une sortie comme celle-ci. Vous verrez également le fichier de configuration Warpgate ‘/etc/warpgate.yaml’ et le répertoire de données ‘/var/lib/warpgate’ créés pendant le processus.

Exécutez maintenant la commande suivante pour afficher le contenu du fichier ‘/etc/warpgate.yaml’ et la liste des fichiers et répertoires disponibles dans le ‘/var/lib/warpgate’.
cat /etc/warpgate.yaml
ls /var/lib/warpgateVoici la sortie qui sera imprimée sur votre terminal.

Exécutez maintenant la commande suivante pour exécuter Warpgate. Vous verrez la sortie ‘Warpgate est maintenant en cours d’exécution‘ et ouvrir les ports TCP pour les connexions SSH, MySQL et HTTP.
warpgate --config /etc/warpgate.yaml run
Ouvrez votre navigateur web et visitez l’adresse IP de Warpgate avec le port 8888 (c’est-à-dire : https://192.168.5.10:8888/). En cas de succès, vous devriez obtenir la page de connexion de Warpgate.

Retournez à votre terminal et appuyez sur Ctrl+c pour terminer le processus Warpgate.
Exécuter Warpgate en tant que service Systemd
Dans cette section, vous allez configurer Warpgate pour qu’il s’exécute avec Systemd. Cela vous permet d’exécuter Warpgate en arrière-plan et est plus facile à gérer via l’utilitaire de commande systemctl.
Créez un nouveau fichier d’unité systemd ‘/etc/systemd/system/warpgate.service’ en utilisant la commande suivante de l’éditeur nano.
sudo nano /etc/systemd/system/warpgate.serviceAjoutez les configurations d’unité systemd suivantes au fichier.
[Unit]
Description=Warpgate
After=network.target
StartLimitIntervalSec=0
[Service]
Type=notify
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/warpgate --config /etc/warpgate.yaml run
[Install]
WantedBy=multi-user.targetEnregistrez le fichier et quittez l’éditeur une fois terminé.
Exécutez la commande suivante pour recharger le gestionnaire systemd et appliquer les modifications.
sudo systemctl daemon-reloadEnsuite, démarrez et activez le service Warpgate en utilisant l’utilitaire de commande systemctl suivant.
sudo systemctl start warpgate
sudo systemctl enable warpgate
Après cela, vérifiez l’état du service Warpgate pour vous assurer que le service fonctionne.
sudo systemctl status warpgateLa sortie ci-dessous confirme que le service Warpgate fonctionne.

Si vous vérifiez la liste des ports ouverts sur votre serveur, vous verrez plusieurs ports 2222, 8888 et 33306 dans l’état LISTEN. Exécutez la commande ss ci-dessous.
ss -tulpnSortie :

Configurer UFW
Dans cette section, vous allez installer, exécuter et activer UFW sur votre serveur Debian. Vous allez également ouvrir les ports utilisés par Warpgate.
Installez UFW en exécutant la commande apt suivante.
sudo apt install ufwLorsque vous y êtes invité, entrez y pour confirmer et appuyez sur ENTRÉE.

Une fois UFW installé, exécutez la commande suivante pour ouvrir le service OpenSSH et les ports Warpgate 2222, 8888 et 33306.
sudo ufw allow OpenSSH
sudo ufw allow 8888/tcp
sudo ufw allow 2222/tcp
sudo ufw allow 33306/tcpEnsuite, démarrez et activez UFW en utilisant la commande ci-dessous. Entrez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.
sudo ufw enableAprès l’exécution de la commande suivante, UFW devrait être en cours d’exécution et activé, ce qui signifie que UFW s’exécutera automatiquement au démarrage du système.

Entrez maintenant la commande suivante pour vérifier l’état de UFW. Vous devriez voir que UFW est ‘Statut : Actif’ avec le service OpenSSH, les ports 2222, 8888, et 33306 ajoutés.
sudo ufw statusSortie :

Se connecter à Warpgate
Avec Warpgate fonctionnant en tant que service systemd et UFW en cours d’exécution, vous allez maintenant accéder à l’installation de Warpgate.
Ouvrez votre navigateur web et visitez l’adresse IP du serveur suivie du port 8888 (c’est-à-dire : https://192.168.5.20:8888 /) et vous verrez la page de connexion de Warpgate.
Entrez l’utilisateur par défaut ‘admin‘ et le mot de passe que vous avez configuré. Cliquez ensuite sur Connexion pour continuer.

Une fois connecté en tant que ‘admin‘, cliquez sur le menu ‘Gérer Warpgate‘.

Vous devriez maintenant voir le tableau de bord utilisateur de Warpgate.

À ce stade, vous avez terminé l’installation de Warpgate en tant que serveur Bastion SSH et MySQL sur le serveur Debian. Vous êtes maintenant prêt à ajouter votre serveur et le serveur MySQL à Warpgate.
Ajouter un serveur cible SSH
Dans cette section, vous allez ajouter le serveur Linux avec l’adresse IP 192.168.5.25 et le nom d’hôte ‘node1‘ au serveur Bastion Warpgate. Pour ce faire, vous devez ajouter la clé publique SSH de Warpgate à votre serveur cible.
Sur le tableau de bord Warpgate, cliquez sur le menu SSH et vous verrez les clés publiques et privées SSH de Warpgate qui seront utilisées pour vous connecter au serveur cible.
Copiez la clé publique SSH dans vos notes.

Connectez-vous maintenant au serveur cible, créez un nouveau répertoire ‘~/.ssh‘, puis créez le fichier ‘authorized_keys‘ en utilisant la commande suivante de l’éditeur nano.
mkdir -p ~/.ssh/
nano ~/.ssh/authorized_keysAjoutez la clé publique SSH de Warpgate à l’intérieur.

Ensuite, allez sur le tableau de bord Warpgate et cliquez sur le menu Config, puis cliquez sur ‘Ajouter une cible‘.

Entrez le nom d’hôte du serveur cible, sélectionnez le type comme SSH, puis cliquez sur Créer une cible.

Changez l’adresse IP du serveur cible et l’utilisateur qui sera utilisé pour se connecter au serveur. En ce qui concerne l’authentification, sélectionnez ‘Clés privées de Warpgate‘. Ensuite, vous devez activer le rôle ‘warpgate:admin’ dans la section ‘Autoriser l’accès pour les rôles‘.
Lorsque vous avez terminé, cliquez sur ‘Mettre à jour les configurations‘.

Avec cela, le serveur cible ‘node1‘ est ajouté à Warpgate. Vous pouvez maintenant vous connecter à ‘node1‘ via le serveur bastion Warpgate.
Exécutez la commande ssh suivante pour vous connecter à ‘node1‘ via le serveur bastion Warpgate. Dans cette commande, le format utilisé est ‘role: server-name’ avec l’adresse IP du serveur bastion 192.168.5.10 et le port 2222.
ssh 'admin:[email protected]' -p 2222Entrez oui pour confirmer et ajouter l’empreinte SSH de la cible. Lorsque vous êtes invité à entrer le mot de passe, saisissez le mot de passe de l’utilisateur bastion ‘admin‘.
Lorsque la connexion est réussie, vous devriez obtenir une sortie telle que ‘Warpgate connecté‘. Et vous serez connecté au serveur cible ‘node1‘.
Entrez la commande suivante pour vérifier le serveur actuel sur lequel vous êtes connecté. Vous verrez que vous êtes connecté au serveur ‘node1‘ via le serveur bastion SSH Warpgate.
id
hostnameSortie :

Si vous vérifiez sur le tableau de bord d’administration web de Warpgate, vous devriez voir l’empreinte de votre serveur cible SSH.

Ajouter un serveur cible MySQL/MariaDB
Dans cette section, vous allez ajouter un serveur MariaDB au serveur bastion Warpgate. Avant cela, vous allez configurer le serveur MariaDB pour qu’il fonctionne sur une adresse IP privée/interne, et également créer un nouvel utilisateur MariaDB pour les connexions à distance.
Connectez-vous au serveur MariaDB et ouvrez le fichier de configuration ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ en utilisant la commande suivante de l’éditeur nano.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnfDécommentez le paramètre ‘bind-address‘ et changez la valeur pour votre adresse IP interne. Dans cet exemple, le serveur MariaDB sera exécuté à l’adresse IP privée ‘192.168.5.25‘.
bind-address = 192.168.5.25Enregistrez le fichier, puis éditez l’éditeur.
Entrez la commande suivante pour redémarrer le service MariaDB et appliquer les modifications. Lors du redémarrage, le MariaDB devrait fonctionner à l’adresse IP ‘192.168.5.25’ au lieu de l’hôte par défaut.
sudo systemctl restart mariadbEnsuite, connectez-vous à l’interface de commande MariaDB en tant qu’utilisateur root pour configurer et créer un nouvel utilisateur.
sudo mariadb -u root -pEntrez les requêtes suivantes pour créer un nouvel utilisateur MariaDB ‘appuser’ et permettre à l’utilisateur d’accéder à toutes les bases de données sur le serveur MariaDB. Assurez-vous également de changer le mot de passe dans la requête suivante.
CREATE USER 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';
FLUSH PRIVILEGES;
EXIT;Ensuite, vous allez configurer le package client MariaDB sur la machine qui sera utilisée pour se connecter au serveur MariaDB.

Installez le package ‘mariadb-client‘ via la commande suivante. Entrez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.
sudo apt install mariadb-client
Maintenant, allez sur le serveur Warpgate, changez le répertoire de travail en ‘ /var/lib/warpgate‘, puis copiez les certificats TLS de Warpgate vers votre machine cliente MariaDB.
cd /var/lib/warpgate/
sudo scp tls.certificate.pem tls.key.pem [email protected]:/etc/mysql/
Retournez maintenant à la machine cliente et ouvrez la configuration du client MariaDB ‘/etc/mysql/mariadb.conf.d/50-client.cnf’ en utilisant la commande suivante de l’éditeur nano.
sudo nano /etc/mysql/mariadb.conf.d/50-client.cnfAjoutez les configurations suivantes à la section ‘[client]‘ pour activer une connexion client sécurisée.
[client]
....
ssl-cert=/etc/mysql/tls.certificate.pem
ssl-key=/etc/mysql/tls.key.pemEnregistrez le fichier, puis éditez l’éditeur une fois terminé.
Maintenant, sur le tableau de bord Warpgate, cliquez sur le menu ‘Config’, puis cliquez sur ‘Ajouter une cible‘.

Entrez le nom du serveur MariaDB, sélectionnez le type comme ‘MySQL‘, puis cliquez sur Créer une cible.

Changez les détails de l’hôte, de l’utilisateur et du mot de passe avec vos détails d’utilisateur MariaDB. Assurez-vous de désactiver l’option ‘Vérifier le certificat‘ si vous avez des certificats TLS par défaut, puis activez le rôle ‘warpgate:admin‘ dans la section ‘Autoriser l’accès pour les rôles‘.
Cliquez sur ‘Mettre à jour la configuration‘ lorsque vous avez terminé.

Avec le serveur MariaDB ajouté à Warpgate, vous pouvez maintenant accéder au serveur MariaDB via le serveur Bastion MySQL de Warpgate.
Depuis la machine cliente MariaDB, entrez la commande suivante pour vous connecter au serveur MariaDB. Lorsque vous y êtes invité, entrez le mot de passe de l’utilisateur admin de Warpgate.
mysql -u 'admin#mysql1' --host '192.168.5.10' --port 33306 --ssl -pLorsque vous êtes connecté, vous devriez voir l’invite de commande de l’interface de commande MariaDB telle que ‘MySQL [(dbname)]>‘. Entrez les requêtes suivantes pour vous assurer que l’utilisateur que vous utilisez est disponible sur le serveur MariaDB.
SELECT host, user, plugin, authentication_string from mysql.user;
SHOW GRANTS FOR appuser@'%';Sortie :

Avec cela, vous êtes maintenant connecté au serveur MariaDB via le serveur Bastion MySQL/MariaDB de Warpgate.
Conclusion
Dans ce tutoriel, vous avez installé et configuré le serveur Bastion Warpgate sur Debian 11. Vous avez configuré Warpgate pour fonctionner avec systemd et le pare-feu UFW. En plus de cela, vous avez configuré Warpgate en tant que serveur Bastion SSH et MySQL/MariaDB, ajouté le serveur cible SSH, et également ajouté le serveur cible MySQL/MariaDB.
Avec cela en tête, vous pouvez maintenant configurer de nouveaux utilisateurs, rôles et ajouter de nouvelles connexions à votre serveur Bastion Warpgate. Et vous pouvez centraliser les connexions et les accès des utilisateurs via un seul serveur Bastion centralisé. Pour trouver les détails sur Warpgate, visitez la documentation officielle de Warpgate.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.