
Ich habe das folgende Szenario
Local Network | Global Network
|
|
|
|
|
|
|
+------------+ +-----------+ | +----------+ +----------------+
| client A | -----------> | server A | <--------------------> | server B | ---------------> | Global Network |
+------------+ +-----------+ | +----------+ +----------------+
|
|
Die bevorstehende Herausforderung:
Leiten Sie den gesamten Datenverkehr von server A
nach weiter server B
. Da alle Tunnelprotokolle in geschlossen sind server A
, dachte ich, dass Reverse-SSH eine gute Option ist.
Ich verwende den folgenden Befehl für Reverse-SSH:
ssh -fNT -R 4000:localhost:22 [email protected] -i <private-key>
Jetzt server A
kann ich sehen, dass der Port 4000
geöffnet ist. Aber ich weiß nicht, wie ich den gesamten Verkehr übertragen soll aufserver B
Antwort1
Mein erster Gedanke ist, eine Tun-Schnittstelle zu erstellen und das Routing entsprechend einzurichten. Wie Sie unten sehen, ist von ssh man das folgende Befehlszeilenargument verfügbar.
-w local_tun[:remote_tun] Fordert Tunnelgeräteweiterleitung mit den angegebenen tun(4)-Geräten zwischen >dem Client (local_tun) und dem Server (remote_tun) an. Die Geräte können durch eine numerische ID oder das Schlüsselwort „any“ angegeben werden, das >das nächste verfügbare Tunnelgerät verwendet. Wenn remote_tun nicht angegeben ist, wird es >standardmäßig auf „any“ gesetzt. Siehe auch die Tunnel- und TunnelDevice-Anweisungen in >ssh_config(5).
Wenn die Tunnel-Direktive nicht gesetzt ist, wird sie auf den Standard-Tunnelmodus „Punkt-zu-Punkt“ gesetzt. Wenn ein anderer Tunnel-Weiterleitungsmodus gewünscht wird, muss dieser vor -w angegeben werden.
Diese Antwort enthält weitere Einzelheiten.
https://unix.stackexchange.com/questions/525217/create-network-interface-from-ssh-tunnel