Túnel SSH sobre saltos múltiples con masilla

13

Tengo una situación en la que quiero conectarme a una máquina Linux que ejecuta VNC (llamémosla VNCServer) que está detrás de dos máquinas Linux consecutivas, es decir, para ingresar al servidor VNCS, tengo que ingresar a Gateway1 desde mi computadora portátil, luego desde el shell de Gateway1 Entro en Gateway2 y luego desde ese shell finalmente entro en VNCServer. No puedo cambiar el diseño de red y el flujo de acceso Laptop -> Gateway1 -> Gateway2 -> Server. No tengo privilegios de root en Gateway1 y todos los puertos excepto 22 y 5901 están cerrados.

¿Hay alguna manera de iniciar un visor VNC en mi computadora portátil y acceder al VNCServer? Entiendo que podría hacerse usando las características de túnel ssh y tengo masilla en mi computadora portátil con Windows (lo siento, no se puede instalar Linux o Cygwin, etc.) en la computadora portátil de trabajo. Cualquier ayuda será muy apreciada ya que esto me facilitaría la vida.

xkcd
fuente

Respuestas:

19

Putty admite túneles ssh, si expande la conexión, el árbol SSH, verá una entrada para túneles.

Los túneles locales producen una apertura de puerto localhost en su máquina Windows que se aleja a la dirección IP y el puerto que especifique. Por ejemplo, cuando estoy tratando de RDP a un escritorio en mi casa, generalmente elegiré un puerto local aleatorio, algo así como 7789, luego pondré la dirección IP local del escritorio (1.2.3.4:3389) como el control remoto anfitrión. Asegúrese de hacer clic en "Agregar", luego "Aplicar". En este punto, cuando rdp a 127.0.0.1:7789, se conectará a 1.2.3.4:3389 durante la sesión de masilla.

Aquí es donde entra la diversión. Si luego configura un túnel de puerto en su caja intermedia, configurando el puerto local que especificó como puerto remoto en masilla, puede rebotar a través de su masilla, a través de la caja intermedia su destino final. Todavía necesitará hacer algunas conexiones ssh, pero podrá cruzar vnc o rdp directamente desde el sistema de Windows una vez que esté configurado, que es lo que creo que está buscando hacer.

EJEMPLO

  1. Dirígete al panel de túneles en Masilla (Conexiones-> SSH-> Túneles a los que se accede desde el menú contextual si la sesión ssh ya está activa, o en la pantalla de inicio de conexión cuando recién se inicia la masilla)
  2. Cree un túnel con fuente local 15900 y fuente remota 127.0.0.1:15900
  3. Conéctese (si aún no está conectado) a Gateway1.
  4. En Gateway1, ssh -L 127.0.0.1:15900:VNCServerIP:5900 usuario @ Gateway2
  5. Una vez que ssh to Gateway2 esté activo, intente realizar la vnc a 127.0.0.1:15900, ¡ahora debería ver la pantalla VNC en el otro lado!

BONIFICACIÓN AGREGADA : no mucha gente lo sabe, pero este proceso también se puede usar para proxy del tráfico IPv6 / IPv4. A SSH no le importa qué protocolo usa para los túneles, por lo que teóricamente puede acceder a hosts solo IPv6 desde un sistema solo IPv4, dado que el servidor ssh es de doble pila (tiene direcciones IPv4 e IPv6).

Peter Grace
fuente
15

Hay una alternativa si desea usar PuTTY para ambos saltos. En este ejemplo, saltamos de la Puerta de enlace n. ° 1 (10.0.1.123) a la Puerta de enlace n. ° 2 (10.0.1.456) al puerto 80 en 10.0.1.789.

  1. Primero cree el salto a la puerta de enlace # 1. Primero configure la conexión al primer servidor. Configure un túnel para la segunda puerta de enlace en Conexión> SSH> Túneles. En este ejemplo, reenviamos el puerto 2222 a la segunda puerta de enlace.

    conectarse al servidor

    establecer túnel

  2. Ahora configuraremos el segundo salto. Vamos a hacer un túnel a través de la primera puerta de enlace a la siguiente puerta de enlace y configurar el reenvío de puertos en la segunda puerta de enlace. La conexión es a localhost en el puerto 2222. Esto hará un túnel a través de la conexión ssh en ejecución al segundo salto. En esta conexión, configuramos un puerto hacia adelante desde el puerto 3333 a 10.0.1.789.

    ingrese la descripción de la imagen aquí

    ingrese la descripción de la imagen aquí

  3. Ahora abra un navegador y navegue a 127.0.0.1:3333 y hará un túnel a través de las dos conexiones SSH a 10.0.1.789:80

Scott
fuente
1
¿Hay alguna manera de lograr lo mismo usando una sola sesión de masilla con dos túneles configurados en el menú SSH -> Túneles? ¿De esta manera solo necesita abrir una instancia de masilla?
ulrich