Bastion Server · 11 min read · Sep 09, 2025

So richten Sie einen Bastion-Server mit Warpgate auf Debian ein

Ein Bastion-Server bezieht sich auf einen Computer/Maschine/Server, der speziell dafür entworfen und konfiguriert ist, um Angriffe auf Computernetzwerke standzuhalten. Die Funktionalität des Bastion-Servers ähnelt einem Proxy oder Lastenausgleich für Anwendungen. Er ermöglicht den Zugriff auf Computer oder Server, die sich in DMZ-Netzwerken befinden.

Warpgate ist eine moderne Lösung, die als Bastion-Server verwendet werden kann. Es ist in Rust geschrieben und bietet ein webbasiertes Administrations-Dashboard. Sie können es auf einem bestimmten Knoten installieren und dann problemlos Zielknoten oder Server hinzufügen, die sich in Ihrer privaten Infrastruktur befinden. Warpgate kann derzeit als Bastion-Server für SSH, MySQL/MariaDB und HTTP verwendet werden.

In diesem Tutorial richten Sie einen Bastion-Server für SSH- und MySQL/MariaDB-Verbindungen auf einem Debian 11-Server mit Warpgate ein. Sie installieren und konfigurieren Warpgate auf dem Debian-Server und fügen dann den SSH-Zielserver und den MySQL-Server zu Warpgate hinzu. Am Ende stellen Sie sicher, dass der Warpgate-Bastion-Server funktioniert, indem Sie eine Verbindung zum Zielhost-SSH-Server und zum MySQL-Server herstellen.

Voraussetzungen

Sie benötigen die folgenden Anforderungen, um dieses Tutorial abzuschließen:

  • Ein Linux-Server, der Debian 11 ausführt - Dieses Beispiel verwendet einen Server mit dem Hostnamen ‘warpgate-debian‘ und der IP-Adresse ‘192.168.5.10‘.
  • Ein Nicht-Root-Benutzer mit sudo/root-Administratorrechten.

Warpgate-Binärdatei herunterladen

In diesem Abschnitt laden Sie die Warpgate-Binärdatei manuell von GitHub herunter und verschieben sie dann in das Systemverzeichnis ‘bin’. Eine andere Möglichkeit, Warpgate zu installieren, besteht darin, es aus dem Quellcode zu kompilieren oder die Warpgate-Docker-Version zu verwenden.

Um zu beginnen, führen Sie den folgenden wget-Befehl aus, um die Warpgate-Binärdatei herunterzuladen. Besuchen Sie die offizielle GitHub-Downloadseite für die neueste Version von Warpgate.

wget -q https://github.com/warp-tech/warpgate/releases/download/v0.7.0/warpgate-v0.7.0-x86_64-linux

Sobald der Download abgeschlossen ist, verschieben Sie die Warpgate-Binärdatei nach ‘/usr/local/bin/warpgate ‘. Machen Sie sie dann ausführbar, indem Sie den ‘chmod +x’-Befehl verwenden.

mv warpgate-v0.7.0-x86_64-linux /usr/local/bin/warpgate  
sudo chmod +x /usr/local/bin/warpgate

Führen Sie als Nächstes den folgenden Befehl aus, um die ‘ warpgate ‘-Binärdatei auf Ihrem System zu finden.

which warpgate

Überprüfen Sie nun die Warpgate-Version und listen Sie die verfügbaren Parameter des ‘warpgate’-Befehls auf.

warpgate version  
warpgate --help

Sie sollten eine Ausgabe wie diese erhalten.

warpgate help

Warpgate als Bastion-Server konfigurieren

Nachdem die Warpgate-Binärdatei heruntergeladen wurde, richten Sie nun Ihre Warpgate-Installation ein und konfigurieren sie. Dies kann interaktiv über den ‘ warpgate ‘-Befehl erfolgen.

Führen Sie den folgenden Befehl aus, um Warpgate als Bastion-Server zu konfigurieren.

warpgate setup

Nachdem der Befehl ausgeführt wurde, werden Sie nach den folgenden Konfigurationen gefragt:

  • Wo möchten Sie die Warpgate-Daten speichern? Lassen Sie es als Standard im Verzeichnis ‘/var/lib/warpgate’.
  • Der Endpunkt des Warpgate-Webadministrations-Dashboards? Lassen Sie es als Standard, um Warpgate auf Ihrer internen/öffentlichen IP-Adresse mit Port 8888 auszuführen.
  • SSH-Verbindungen akzeptieren? Geben Sie ja ein, um Warpgate als SSH-Bastion-Server zu aktivieren.
  • Der Endpunkt des SSH-Bastion-Servers? Lassen Sie es als Standard, um den SSH-Bastion-Server auf der internen/öffentlichen IP-Adresse mit Port 2222 auszuführen.
  • MySQL-Verbindungen akzeptieren? Geben Sie ja ein, um Warpgate als MySQL-Bastion-Server zu aktivieren.
  • Der Endpunkt des MySQL-Bastion-Servers? Lassen Sie es als Standard mit Port 33306.
  • Benutzersitzungen aufzeichnen? Geben Sie ja ein, um es zu aktivieren.
  • Richten Sie ein Passwort für den Standardbenutzer admin ein. Geben Sie das Passwort für Ihre Warpgate-Installation ein.

setup warpgate

Sobald der Einrichtungsprozess abgeschlossen ist, sollten Sie eine Ausgabe wie diese erhalten. Sie werden auch die Warpgate-Konfigurationsdatei ‘/etc/warpgate.yaml’ und das Datenverzeichnis ‘/var/lib/warpgate’ sehen, die während des Prozesses erstellt wurden.

setup finished

Führen Sie nun den folgenden Befehl aus, um den Inhalt der Datei ‘/etc/warpgate.yaml’ und die Liste der verfügbaren Dateien und Verzeichnisse im ‘/var/lib/warpgate’ anzuzeigen.

cat /etc/warpgate.yaml  
ls /var/lib/warpgate

Unten ist die Ausgabe, die auf Ihrem Terminal angezeigt wird.

warpgate config files and directories

Führen Sie nun den folgenden Befehl aus, um Warpgate auszuführen. Sie werden die Ausgabe ‘ Warpgate läuft jetzt ‘ sehen und TCP-Ports für SSH-, MySQL- und HTTP-Verbindungen öffnen.

warpgate --config /etc/warpgate.yaml run

running warpgate

Öffnen Sie Ihren Webbrowser und besuchen Sie die Warpgate-IP-Adresse mit Port 8888 (d.h.: https://192.168.5.10:8888/). Wenn erfolgreich, sollten Sie die Anmeldeseite von Warpgate erhalten.

accessing warpgate

Zurück zu Ihrem Terminal und drücken Sie Ctrl+c, um den Warpgate-Prozess zu beenden.

Warpgate als Systemd-Dienst ausführen

In diesem Abschnitt richten Sie Warpgate so ein und konfigurieren es, dass es mit Systemd ausgeführt wird. Dies ermöglicht es Ihnen, Warpgate im Hintergrund auszuführen und einfacher über das Systemctl-Befehlsdienstprogramm zu verwalten.

Erstellen Sie eine neue Systemd-Einheitendatei ‘/etc/systemd/system/warpgate.service’ mit dem folgenden Befehl im Nano-Editor.

sudo nano /etc/systemd/system/warpgate.service

Fügen Sie die folgenden Systemd-Einheit-Konfigurationen in die Datei ein.

[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.target

Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.

Führen Sie den folgenden Befehl aus, um den Systemd-Manager neu zu laden und die Änderungen anzuwenden.

sudo systemctl daemon-reload

Starten und aktivieren Sie dann den Warpgate-Dienst mit dem folgenden Systemctl-Befehlsdienstprogramm.

sudo systemctl start warpgate  
sudo systemctl enable warpgate

wearpgate systemd

Überprüfen Sie anschließend den Status des Warpgate-Dienstes, um sicherzustellen, dass der Dienst läuft.

sudo systemctl status warpgate

Die folgende Ausgabe bestätigt, dass der Warpgate-Dienst läuft.

warpgate service status

Wenn Sie die Liste der offenen Ports auf Ihrem Server überprüfen, sehen Sie mehrere Ports 2222, 8888 und 33306 im LISTEN-Zustand. Führen Sie den folgenden ss-Befehl aus.

ss -tulpn

Ausgabe:

check open ports

UFW einrichten

In diesem Abschnitt installieren, starten und aktivieren Sie UFW auf Ihrem Debian-Server. Sie werden auch die Ports öffnen, die von Warpgate verwendet werden.

Installieren Sie UFW, indem Sie den folgenden apt-Befehl ausführen.

sudo apt install ufw

Wenn Sie dazu aufgefordert werden, geben Sie y ein, um zu bestätigen, und drücken Sie ENTER.

install ufw

Sobald UFW installiert ist, führen Sie den folgenden Befehl aus, um den OpenSSH-Dienst und die Warpgate-Ports 2222, 8888 und 33306 zu öffnen.

sudo ufw allow OpenSSH  
sudo ufw allow 8888/tcp  
sudo ufw allow 2222/tcp  
sudo ufw allow 33306/tcp

Starten und aktivieren Sie dann UFW mit dem folgenden Befehl. Geben Sie y ein, wenn Sie dazu aufgefordert werden, und drücken Sie ENTER, um fortzufahren.

sudo ufw enable

Nachdem der folgende Befehl ausgeführt wurde, sollte UFW laufen und aktiviert sein, was bedeutet, dass UFW beim Systemstart automatisch ausgeführt wird.

setup ufw

Geben Sie nun den folgenden Befehl ein, um den UFW-Status zu überprüfen. Sie sollten sehen, dass der UFW ‘Status: Aktiv’ ist, mit dem OpenSSH-Dienst, den Ports 2222, 8888 und 33306 hinzugefügt.

sudo ufw status

Ausgabe:

verify ufw

Anmeldung bei Warpgate

Mit dem Warpgate, das als Systemd-Dienst läuft, und dem UFW, das läuft, werden Sie nun auf die Warpgate-Installation zugreifen.

Öffnen Sie Ihren Webbrowser und besuchen Sie die Server-IP-Adresse, gefolgt von Port 8888 (d.h.: https://192.168.5.20:8888 /) und Sie sehen die Anmeldeseite von Warpgate.

Geben Sie den Standardbenutzer ‘admin‘ und das Passwort ein, das Sie konfiguriert haben. Klicken Sie dann auf Anmelden, um fortzufahren.

Warpgate login as admin

Sobald Sie als ‘admin‘ angemeldet sind, klicken Sie im Menü auf ‘Warpgate verwalten‘.

manage warpgate

Sie sollten jetzt das Warpgate-Benutzer-Dashboard sehen.

warpgate dashboard

An diesem Punkt haben Sie die Warpgate-Installation als SSH- und MySQL-Bastion-Server auf dem Debian-Server abgeschlossen. Sie sind nun bereit, Ihren Server und den MySQL-Server zu Warpgate hinzuzufügen.

Hinzufügen eines SSH-Zielservers

In diesem Abschnitt fügen Sie den Linux-Server mit der IP-Adresse 192.168.5.25 und dem Hostnamen ‘node1‘ zum Warpgate-Bastion-Server hinzu. Dazu müssen Sie den Warpgate-SSH-öffentlichen Schlüssel zu Ihrem Zielserver hinzufügen.

Klicken Sie im Warpgate-Dashboard auf das SSH-Menü, und Sie sehen die Warpgate-SSH-öffentlichen und privaten Schlüssel, die verwendet werden, um sich beim Zielserver anzumelden.

Kopieren Sie den SSH-öffentlichen Schlüssel in Ihre Notizen.

list ssh keys

Melden Sie sich nun beim Zielserver an, erstellen Sie ein neues Verzeichnis ‘~/.ssh‘, und erstellen Sie die Datei ‘authorized_keys‘ mit dem folgenden Befehl im Nano-Editor.

mkdir -p ~/.ssh/  
nano ~/.ssh/authorized_keys

Fügen Sie den Warpgate-SSH-öffentlichen Schlüssel ein.

add SSH key to node

Wechseln Sie als Nächstes zum Warpgate-Dashboard, klicken Sie auf das Konfiguration-Menü und dann auf ‘Ziel hinzufügen‘.

add target server

Geben Sie den Hostnamen des Zielservers ein, wählen Sie den Typ als SSH aus und klicken Sie dann auf Ziel erstellen.

create target

Ändern Sie die IP-Adresse des Zielservers und den Benutzer, der verwendet wird, um sich beim Server anzumelden. Wählen Sie für die Authentifizierung ‘Warpgates private Schlüssel‘ aus. Aktivieren Sie dann die Rolle ‘warpgate:admin’ im Abschnitt ‘Zugriff für Rollen erlauben‘.

Wenn Sie fertig sind, klicken Sie auf ‘Konfigurationen aktualisieren‘.

details target ssh

Damit wurde der Zielserver ‘node1‘ zu Warpgate hinzugefügt. Sie können sich jetzt über den Warpgate-Bastion-Server mit ‘node1‘ verbinden.

Führen Sie den folgenden SSH-Befehl aus, um sich über den Warpgate-Bastion-Server mit ‘node1‘ zu verbinden. In diesem Befehl wird das Format ‘role: server-name’ mit der Bastion-Server-IP-Adresse 192.168.5.10 und dem Port 2222 verwendet.

ssh 'admin:[email protected]' -p 2222

Geben Sie ja ein, um zu bestätigen und den SSH-Fingerabdruck des Ziels hinzuzufügen. Wenn Sie nach dem Passwort gefragt werden, geben Sie das Passwort des Bastionbenutzers ‘admin‘ ein.

Wenn die Verbindung erfolgreich ist, sollten Sie eine Ausgabe wie ‘Warpgate verbunden‘ erhalten. Und Sie sind beim Zielserver ‘node1‘ angemeldet.

Geben Sie den folgenden Befehl ein, um den aktuellen Server zu überprüfen, bei dem Sie angemeldet sind. Sie werden sehen, dass Sie sich über den Warpgate-SSH-Bastion-Server beim ‘node1‘-Server angemeldet haben.

id  
hostname

Ausgabe:

connect to target server via Warpgate bastion Server

Wenn Sie im Warpgate-Webadministrations-Dashboard nachsehen, sollten Sie den Fingerabdruck Ihres SSH-Zielservers sehen.

list known hosts

Hinzufügen eines MySQL/MariaDB-Zielservers

In diesem Abschnitt fügen Sie einen MariaDB-Server zum Warpgate-Bastion-Server hinzu. Zuvor richten Sie den MariaDB-Server so ein, dass er auf einer privaten/internen IP-Adresse ausgeführt wird, und erstellen auch einen neuen MariaDB-Benutzer für Remote-Verbindungen.

Melden Sie sich beim MariaDB-Server an und öffnen Sie die Konfigurationsdatei ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ mit dem folgenden Befehl im Nano-Editor.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Kommentieren Sie den Parameter ‘bind-address‘ aus und ändern Sie den Wert in Ihre interne IP-Adresse. In diesem Beispiel wird der MariaDB-Server unter der privaten IP-Adresse ‘192.168.5.25‘ ausgeführt.

bind-address            = 192.168.5.25

Speichern Sie die Datei und beenden Sie den Editor.

Geben Sie den folgenden Befehl ein, um den MariaDB-Dienst neu zu starten und die Änderungen anzuwenden. Nach dem Neustart sollte der MariaDB unter der IP-Adresse ‘192.168.5.25’ anstelle des Standard-Hosts localhost ausgeführt werden.

sudo systemctl restart mariadb

Melden Sie sich als Nächstes in der MariaDB-Shell als Root-Benutzer an, um einen neuen Benutzer einzurichten und zu erstellen.

sudo mariadb -u root -p

Geben Sie die folgenden Abfragen ein, um einen neuen MariaDB-Benutzer ‘appuser’ zu erstellen und dem Benutzer den Zugriff auf alle Datenbanken auf dem MariaDB-Server zu gewähren. Stellen Sie außerdem sicher, dass Sie das Passwort in der folgenden Abfrage ändern.

CREATE USER 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';  
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';  
FLUSH PRIVILEGES;  
EXIT;

Als Nächstes richten Sie das MariaDB-Client-Paket auf dem Computer ein, der verwendet wird, um eine Verbindung zum MariaDB-Server herzustellen.

create mariadb server

Installieren Sie das ‘mariadb-client‘-Paket mit dem folgenden Befehl. Geben Sie y ein, wenn Sie dazu aufgefordert werden, und drücken Sie ENTER, um fortzufahren.

sudo apt install mariadb-client

install mariadb client

Wechseln Sie nun zum Warpgate-Server, ändern Sie das Arbeitsverzeichnis in ‘/var/lib/warpgate‘, und kopieren Sie die Warpgate-TLS-Zertifikate auf Ihren MariaDB-Client-Computer.

cd /var/lib/warpgate/  
sudo scp tls.certificate.pem tls.key.pem [email protected]:/etc/mysql/

copy tls certificates to mariadb client

Gehen Sie nun zurück zum Client-Computer und öffnen Sie die MariaDB-Client-Konfiguration ‘/etc/mysql/mariadb.conf.d/50-client.cnf’ mit dem folgenden Befehl im Nano-Editor.

sudo nano /etc/mysql/mariadb.conf.d/50-client.cnf

Fügen Sie die folgenden Konfigurationen zum Abschnitt ‘[client]‘ hinzu, um eine sichere Clientverbindung zu ermöglichen.

[client]  
....  
ssl-cert=/etc/mysql/tls.certificate.pem  
ssl-key=/etc/mysql/tls.key.pem

Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.

Klicken Sie nun im Warpgate-Dashboard auf das Menü ‘Konfiguration’ und dann auf ‘Ziel hinzufügen‘.

add target warpgate

Geben Sie den Namen des MariaDB-Servers ein, wählen Sie den Typ als ‘MySQL‘ aus und klicken Sie dann auf Ziel erstellen.

add target mysql server

Ändern Sie die Details Host, Benutzer und Passwort mit Ihren MariaDB-Benutzerdaten. Stellen Sie sicher, dass Sie die Option ‘Zertifikat überprüfen‘ deaktivieren, wenn Sie Standard-TLS-Zertifikate haben, und aktivieren Sie dann die Rolle ‘warpgate:admin‘ im Abschnitt ‘Zugriff für Rollen erlauben‘.

Klicken Sie auf ‘Konfiguration aktualisieren‘, wenn Sie fertig sind.

setup target server

Nachdem der MariaDB-Server zu Warpgate hinzugefügt wurde, können Sie jetzt über den Warpgate MySQL-Bastion-Server auf den MariaDB-Server zugreifen.

Geben Sie von der MariaDB-Clientmaschine den folgenden Befehl ein, um eine Verbindung zum MariaDB-Server herzustellen. Wenn Sie dazu aufgefordert werden, geben Sie das Passwort des Warpgate-Adminbenutzers ein.

mysql -u 'admin#mysql1' --host '192.168.5.10' --port 33306 --ssl -p

Wenn Sie verbunden sind, sollten Sie die MariaDB-Shell-Eingabeaufforderung wie ‘MySQL [(dbname)]>‘ sehen. Geben Sie die folgenden Abfragen ein, um sicherzustellen, dass der Benutzer, den Sie verwenden, auf dem MariaDB-Server verfügbar ist.

SELECT host, user, plugin, authentication_string from mysql.user;  
SHOW GRANTS FOR appuser@'%';

Ausgabe:

connect to MySQL server via Warpgate Bastion Server

Damit haben Sie sich jetzt über den Warpgate MySQL/MariaDB-Bastion-Server mit dem MariaDB-Server verbunden.

Fazit

In diesem Tutorial haben Sie den Warpgate-Bastion-Server auf Debian 11 installiert und konfiguriert. Sie haben Warpgate so konfiguriert, dass es mit systemd und der UFW-Firewall ausgeführt wird. Darüber hinaus haben Sie Warpgate als SSH- und MySQL/MariaDB-Bastion-Server konfiguriert, den SSH-Zielserver hinzugefügt und auch den MySQL/MariaDB-Zielserver hinzugefügt.

Mit diesem Wissen können Sie jetzt neue Benutzer, Rollen einrichten und neue Verbindungen zu Ihrem Warpgate-Bastion-Server hinzufügen. Und Sie können Benutzerverbindungen und Zugriffe über einen einzigen zentralisierten Bastion-Server zentralisieren. Um die Einzelheiten zu Warpgate zu erfahren, besuchen Sie die offizielle Dokumentation von Warpgate.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.