Markdown

Veröffentlichen

Netzwerk-Tunnel

Mit einem Tunnel erreicht MainPath Server hinter einer Firewall oder NAT, ohne dass SSH öffentlich erreichbar sein muss.

Auf dieser Seite

MainPath braucht für Einrichtung, Deployments (Projekt-Images und Docker-Apps) und die Installation der Überwachung einen SSH-Zugang zum Server. Liegt der Server in einem Firmennetz, hinter NAT oder hinter einer Firewall, die Port 22 nicht nach außen öffnet, reicht ein öffentlicher Host nicht. Dann legst du im Tab Server unter Netzwerk-Tunnel einen Tunnel an und weist ihn dem Server zu.

Mehrere Server dürfen denselben Tunnel teilen, zum Beispiel ein Firmen-VPN für viele interne Hosts. Pro Organisation sind höchstens fünf Tunnel möglich. Das private Netz der Workspaces bleibt davon getrennt; Tailscale dort mischst du nicht mit diesen Tunneln.

Wann du welchen Typ nimmst

Typ Geeignet wenn
SSH-Jump / Bastion Du hast bereits einen öffentlich erreichbaren Sprungserver, über den interne Hosts per SSH erreichbar sind
Umgekehrtes SSH Der Zielserver darf kein eingehendes SSH haben und baut die Verbindung selbst nach außen auf
WireGuard MainPath soll als Client in dein bestehendes WireGuard-Netz
OpenVPN MainPath soll als Client in dein bestehendes OpenVPN-Netz

Der Host des Servers ist dann die Adresse hinter dem Tunnel, zum Beispiel 10.0.1.20 oder ein Name im LAN. HTTP und HTTPS des Servers bleiben öffentlich, sofern du Websites darüber ausliefern willst.

Tunnel anlegen

  1. Öffne in der Seitenleiste Server.
  2. Klicke unter Netzwerk-Tunnel auf Tunnel hinzufügen.
  3. Vergib Name und kurze ID, wähle den Typ und fülle die Felder aus.
  4. Speichere. Mit Verbindung testen prüfst du, ob der Tunnel steht; der Status auf der Karte zeigt verbunden, verbindet oder Fehler.

Nur Administratoren der Organisation legen Tunnel an oder ändern sie. OpenVPN- und WireGuard-Konfiguration sowie der OpenVPN-Benutzername sind für Admins sichtbar; Passwörter und Jump-Schlüssel bleiben write-only. Ein Update ersetzt sie.

Fehler beim Testen zeigen eine kurze Meldung und unter Technische Details das OpenVPN-Log.

SSH-Jump

Trage Host, Port und Benutzer des Bastions ein und hinterlege den privaten Schlüssel (empfohlen) oder ein Passwort. MainPath springt über diesen Host zum internen Server.

Umgekehrtes SSH

Der Server in deinem Netz startet die Verbindung. Nach dem Speichern zeigt MainPath ein fertiges Kommando. Den privaten Schlüssel siehst du nur einmal; kopiere ihn auf den Server und starte das Kommando dort (zum Beispiel als systemd-Unit). Solange der Prozess läuft, erreicht MainPath den internen SSH-Dienst.

WireGuard und OpenVPN

Füge die Client-Konfiguration ein (.conf bzw. .ovpn). Bei OpenVPN kannst du zusätzlich Benutzer und Passwort hinterlegen, falls dein Server das verlangt. MainPath verbindet sich als Client; auf dem App-Server selbst musst du keinen VPN-Dienst installieren.

Server zuweisen

Beim Anlegen oder Bearbeiten eines SSH-, Cloud- oder Managed-Servers wählst du unter Zugang über Tunnel (optional) den Tunnel. Ohne Zuweisung bleibt es bei der direkten öffentlichen SSH-Verbindung.

Ist ein Tunnel gesetzt, brauchst du die Adressen von MainPath auf einem öffentlichen SSH-Port nicht, sofern SSH nach außen geschlossen bleibt. Die optionale SSH-Firewall und der Tunnel ergänzen sich: Die Firewall beschränkt, wer auf dem öffentlichen Port anklopfen darf; der Tunnel ist der Weg, wenn es diesen Port nicht gibt.

Überwachung

Server überwachen installiert den Agenten über denselben Tunnel. Danach verbindet sich der Agent selbst nach außen zur Überwachung; der Tunnel wird dafür nicht mehr gebraucht, solange HTTPS aus deinem Netz zu MainPath erlaubt ist.

CLI und Agent

mp platform servers tunnels list
mp platform servers tunnels get <tunnel-id>
mp platform servers tunnels test <tunnel-id>
mp platform servers tunnels test <tunnel-id> --dest-host 10.0.1.20 --dest-port 22
mp platform servers tunnels create --type ssh --slug office-jump --name "Office Jump" \
  --configuration-json '{"sshKind":"jump","jumpHost":"bastion.example","jumpPort":"22","jumpUser":"jump","jumpAuthMethod":"key","jumpPrivateKey":"<private-key>"}'
mp platform servers update <server-id> \
  --configuration-json '{"tunnelId":"<tunnel-id>"}'

tunnelId auf none setzt die Zuweisung zurück. Dieselben Schritte stehen dem Agenten als platform_tunnels_* zur Verfügung; Löschen verlangt confirm=true. Details zur CLI stehen unter CLI und Agent-Plugin.