
Tengo el siguiente escenario
Local Network | Global Network
|
|
|
|
|
|
|
+------------+ +-----------+ | +----------+ +----------------+
| client A | -----------> | server A | <--------------------> | server B | ---------------> | Global Network |
+------------+ +-----------+ | +----------+ +----------------+
|
|
El desafío por delante:
Transfiera todo el tráfico de server A
a server B
. Dado que todos los protocolos de túnel están cerrados server A
, pensé que ssh inverso es una buena opción.
Utilizo el siguiente comando para realizar ssh inverso:
ssh -fNT -R 4000:localhost:22 [email protected] -i <private-key>
Ahora server A
puedo ver que el puerto 4000
está abierto. pero no sé cómo transferir el tráfico en su totalidad aserver B
Respuesta1
Mi pensamiento inmediato es crear una interfaz tun y configurar el enrutamiento adecuadamente. Como puede ver a continuación en ssh man, el siguiente argumento de línea de comando está disponible.
-w local_tun[:remote_tun] Solicita el reenvío de dispositivos de túnel con los dispositivos tun(4) especificados entre el cliente (local_tun) y el servidor (remote_tun). Los dispositivos pueden especificarse mediante ID numérico o la palabra clave “cualquiera”, que utiliza el siguiente dispositivo de túnel disponible. Si no se especifica control_tun, su valor predeterminado es “cualquiera”. Consulte también las directivas Tunnel y TunnelDevice en >ssh_config(5).
Si la directiva Túnel no está configurada, se establecerá en el modo de túnel predeterminado, que es "punto a punto". Si desea un modo de reenvío de túnel diferente, debe especificarse antes de -w.
Esta respuesta proporciona más detalles.
https://unix.stackexchange.com/questions/525217/create-network-interface-from-ssh-tunnel