Angenommen, ich habe zwei Maschinen, auf beiden läuft Linux.
Auf Maschine A wird ein VPN-Server ausgeführt und sie befindet sich hinter einem NAT.
Maschine B ist der VPN-Client.
Maschine A erstellt einen umgekehrten SSH-Tunnel von sich zu Maschine B und stellt einen Port auf Maschine B bereit, der eine Verbindung zurück zum VPN herstellt, das auf Maschine A ausgeführt wird.
Wie kann ich von Maschine B aus über den SSH-Reverse-Tunnel eine Verbindung zum VPN-Server von Maschine A herstellen?
Antwort1
Ein SSH-Tunnel funktioniert nur mit TCP, daher muss Ihr VPN-Server so konfiguriert sein, dass er TCP für Verbindungen verwendet. Sie verbinden den Tunnelendpunkt auf Maschine B genauso, wie Sie eine Verbindung zu Maschine A herstellen würden. Mit anderen Worten: Ersetzen Sie einfach die IP-Adresse und den Zielport in Ihrer Client-Konfiguration.
Antwort2
Nehmen wir an, wir haben dieses Setup:
- Maschine B hat die öffentliche Domäne machine.b und Port 22 wird auf den SSH-Server von Maschine B zugreifen.
- Maschine A hat die lokale IP-Adresse 192.168.10.2 und ihr VPN-Server verwendet Port 1194.
Schritte zum Einrichten einer VPN-Verbindung über eine umgekehrte SSH-Verbindung:
- Maschine A stellt mit diesem Befehl eine SSH-Verbindung zu Maschine B her: ssh -i "/Pfad/zu/Schlüssel/Datei" -R 2500:192.168.10.2:1194[email geschützt]-S. 22
- Maschine B stellt eine VPN-Verbindung zu 127.0.0.1:2500 her
Als Ergebnis wird die Verbindung von Maschine B zu Port 2500 des lokalen Hosts (127.0.0.1) durch den SSH-Tunnel umgeleitet und gelangt zu Port 1194 von 192.168.10.20 auf Maschine A, dem VPN-Server von Maschine A.
Ich verwende dieses Setup immer als meinen DIY-VPN-Server, falls das VPN des Unternehmens gewartet wird.