BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

Tunel SSH entre 3 máquinas

skizoy

Buenas!

Estoy aquí enfrascado con un túnel que no consigo realizar... A ver si alguien me puede ayudar con ello :)

Os cuento lo que quiero conseguir. Conectado desde la red de la universidad, que tiene todos los puertos capados salvo el 80, 21 y 22, quiero conseguir poder conectarme al puerto 6100 de otra máquina #1 de mi propiedad pero en otra ubicación.

Tengo otra máquina #2 que tiene el puerto 22 abierto (ssh), y lo que había pensado era conectarme al puerto 6100 de #1, a través del puerto 22 de #2, ya que la universidad si que me deja conectarme por ssh al puerto 22.

Lo he intentado con algún túnel, pero creo que este túnel es algo más complicado que los ejemplos que veo por ahí, porque aquí hay que conectarse a través de 2 máquinas (más la que se quiere conectar)...

¿Alguna ayudita? jejeje

Gracias!

Pridebowl

Sino lo he entendido mal. :)

casa -- > [ universidad (22,21,80) --> maquina #1 (22) --> maquina #2 (6100) ]

Y quieres:

¿ casa --> maquina #2 (22,21,80) ?

Esta interesante el tema pero primero aclara un poco el tema. Con tuneles directos encadenados se puede llegar a una conexion directa pero primero habria que aclarar un poco el tema, amen de que hace mas de 1 año que no hago un solo tunel ssh. :D

Un saludo

🗨️ 1
skizoy

No es mi casa :P

El problema es que la uni capa todos los puertos, salvo 21, 22 y 80. Entonces tengo que acceder al 6100, y se me ha ocurrido lo de hacer el túnel, ya que el #2 tiene acceso a SSH... El servidor #1 es el que ofrece el servicio que me interesa por el puerto 6100, no se si me explico jajaj

Vamos, esto que has esquematizado :)

[ universidad (22,21,80) --> maquina #1 (22) --> maquina #2 (6100) ]

fervigo

Una cosa es que estén capado los puertos para conectarse a la red de la universidad desde fuera, ¿pero desde la red de la universidad hacía afuera seguro que están capados?

Vamos, he entendido que quieres conectarte desde la universidad hacía fuera.

🗨️ 2
txuspe

Sí, cierran la mayoría de los puertos.

skizoy

Cierran tanto de entrada como de salida, ya te digo, de salida he probado un montón, y solo funcionan 80, 21 y 22...

BocaDePez
BocaDePez

Igual digo un disparate, pero ¿no te puedes centrar en configurar el puente SSH desde #2 al puerto 6100 de #1, y después configurar el puente SSH de la uni hasta #2 por el puerto 22? Así, estando en la uni te conectarías por ssh primero a la máquina #2, y cuando estuvieras logueado en ella abrirías otro ssh desde allí a la máquina #1 por el puerto 6100. Digo yo.

¿Se puede automatizar eso?

🗨️ 1
skizoy

Uhmm hombre, yo se que con túneles se puede porque una vez lo ví, pero no he conseguido por ahora reproducirlo :(

Con 2 máquinas el problema, es que no se yo si se podría enlazar como tu dices :S Mañana lo pensaré con detenimiento jejjeej (Que ahora son las tantas xD)

vukits
ssh -L 6100:#1:6100 -N mi_usuario@#2

ya tienes el puerto 6100 de #1 proyectado en tu localhost ;) ( mejor usa 127.0.0.1 ).

saludos

PD: info sacada de aquí

🗨️ 3
skizoy

Pues el caso es que se queda colgado después de meter el password... Y al final sale ese error...

Password:
channel 2: open failed: connect failed: Connection timed out

:S :S

Investigaré a ver :P

Muchas gracias!!!

🗨️ 2
vukits

¿has probado a hacer la redirección usando usuario root?

🗨️ 1
skizoy

Si, pero el error es el mismo.

Bueno, el error era el mismo, hasta que he pensado que #2 tenía que tener el puerto 6100 abierto en mi firewall... Ya lo he hecho, y ahora el error es:

bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 5500
Could not request local forwarding.

Seguiré buscando a ver.. :-)

BocaDePez
BocaDePez
1

¿El puerto 6100 es de SSH o de otro servicio? Si es de otro servicio yo usaría el túnel que te crea un proxy a través de #1, es lo más directo.

Desde la universidad:

ssh -D 8888 usuario@#1

Ahora necesitas que tu aplicación soporte proxy socks v5 (ej: Firefox), que está en el puerto 8888 en localhost. Si estás en Linux puedes usar proxychains para que te funcione con cualquier aplicación. Puedes ver detalles sobre estas opciones en este blog.

Un saludo.

🗨️ 5
skizoy

Uhmm muy interesante lo de utilizar el proxy, lo que pasa que creo que para el caso no serviría...

El servicio que utiliza el 6100 es precisamente un segundo servidor de SSH. Intento utilizarlo para tener un directorio del servidor como si fuera local (SSHFS). Algo parecido a lo que hace Dropbox.

Si te preguntas el porqué no lo pongo directamente en el puerto 22, y me olvido de rollos, es porque la mayoría de ataques al servidor de SSH se producen al puerto 22. Y la máquina en cuestión es demasiado importante como para ponerla en riesgo, en cambio, la otra se utiliza para cosas más sencillas :-) Y digamos que me podría "permitir" que pase algo.

Muchas gracias por la ayuda! :-)

🗨️ 4
vukits

no debes abrir el puerto 6100 en el firewall de maquina #2 ni tampoco en la maquina cliente. Nada más en maquina #1 .

Sospecho que el error se produce en la maquina #2 ... comprueba el firewall y los permisos de redirección.

saludos

PD: juraría haber escrito esto hace dos días :(

BocaDePez
BocaDePez

(soy el del proxy)

Lo del proxy yo creo que sí funcionaría (yo lo uso mucho para este tipo de limitaciones). Básicamente porque si tienes acceso a #1 por el puerto 22, y si #1 no tiene cada capado, entonces tienes acceso a todo. Eso sí, tendrías que usar proxychains (es muy pequeño). En resumen:

1. Instala proxychains y configúralo creando el fichero $HOME/.proxychains/proxychains.conf con el contenido en dpaste.org/dfoe/raw/

2. Desde tu pc de la universidad abre un proxy en el puerto 8888 a través de #1: ssh -D 8888 usuario@#1

3. Desde tu pc de la universidad abres otra sesión SSH poniendo proxychains por delante: "proxychains ssh -p 6100 usuario@#2"

Pruébalo :-)

🗨️ 2
skizoy

Gracias a ti y a vukits ^_^

El lunes volveré a probar desde la universidad, a ver si me funciona con tu método :) Y te digo algo jeje

Muchas gracias!!

🗨️ 1
vukits