PreguntasLinux

Versión Completa: duda con tuneles ssh (solucionado)
Actualmente estas viendo una versión simplificada de nuestro contenido. Para ver la versión completa en el formato correcto, dale click aquí
Buenas:
Estuve jugando con tunneling (gracias zodman por el post) y vi que es bastante sencillo utilizarlo, pero me han surgido algunas dudas en el camino.

Desde mi casa (linux) puedo acceder al gateway (linux) de un cliente de mi laburo a través de ssh y levantar una sesión rdp de windows.
Esto está configurado y asegurado para que solo se pueda acceder desde dos ubicaciones: mi laburo y mi dyndns.

graficando
PC --> INTERNET --> GATEWAY-CLI --> SERVER-RDP

PC # ssh -L 3390:SERVER-RDP:3389 user@GATEWAY-CLI
Una vez conectado abrí otra consola y ejecuté:
# rdesktop localhost:3390
voilá! la sesión de escritorio remoto del server de mi cliente ante mis propias narices.


Después estuve leyendo un poco más y vi que podía realizar tantos túneles como quisiera (es decir saltando de equipo en equipo).
Por lo que imaginé que puedo utilizar esto para conectarme desde mi laburo mediante otro método que no sea el de ssh (pero siempre usando ssh)

Por ejemplo:
PC1 ---> ServerA ---> INTERNET ---> ServerB ---> PC2

Si mal no entendí acá tengo que usar tunel ssh inverso??
por un lado:
[PC1] # ssh ServerA
[ServerA] # ssh -R 2222:localhost:22 ServerB
y desde el otro lado:
[PC2] # ssh -L 2222:ServerB:2222 ServerB
entonces
[PC1] # ssh localhost -p 2222
estaría entrando al PC2 mediante los túneles.

Bárbaro para ssh y scp. Pero y si quiero usar servicios como RDP (puerto 3389) o VNC (5900)
Y el firewall no me va a bloquear? o entra siempre por el 22?

gracias
Ok, duda resuelta.

Después de luchar bastante, hoy encontré la solución.
Desde mi laburo tenía el problema de tener que conectarme a mi proxy, luego al servidor del cliente y de ahí levantar la sesión de escritorio remoto.

El proxy es un solaris, y tiene una utilidad llamada balance.

Código:
balance
- A simple TCP proxy with load balancing and failover mechanisms.

balance [ .B -b host ] [ .B -t sec ] [ .B -dfp ] port host1[:port1[:maxc]] [!] [ ... hostn[:portn[:maxc]]]

/usr/local/sbin/balance [ .B -b host ] [ .B -di ] port

Balance is a simple, generic "userland" TCP proxy, which allows simple round robin load balancing and failover between serveral destinations. Balance is available at http://balance.sourceforge.net.


Entonces en mi laburo tuve que hacer lo siguiente:
conectarme por ssh al proxy
[mipc]# ssh proxy
[proxy]# /usr/local/sbin/balance 2222 ipdelcliente:22
esto ocasiona que el proxy escuche en el puerto 2222 y haga un forward al 22 en la IP del cliente.

luego en mi pc armo el túnel:
[mipc]# ssh -L 3390:ip-interna-en-el-cliente:3389 -p 2222 user@proxy
para clarificar:
ssh -L [puerto local]:[ip del servidor rdp]:3389 -p [puerto que escucha mi proxy] [usuario en el cliente]@[ip de MI proxy]

De esta manera queda listo el túnel, ahora solamente me queda correr:
[mipc]# rdesktop localhost:3390
y tengo acceso al escritorio remoto usando un tunel ssh.

Nota:
no se preocupen que voy a agregar al howto que armó zodman esta parte, así queda mejor explicado.

Saludos!

URLs de Referencia