Autor Tema: Tunel SSH Inverso-Reverso  (Leído 710 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Conectado Rock Lee

  • Administrador
  • *
  • Mensajes: 1212
  • ar
    Ingreso: Enero de 2014
  • Digitalizando tu Mundo
  • Sexo: Masculino
    • Ver Perfil
    • La nueva era del conocimiento
Tunel SSH Inverso-Reverso
« on: 04 Noviembre de 2016, 11:24 pm »
Bueno es un tema sencillo en pocos pasos se puede realizar, ¿Que necesitamos para lograrlo?. Basicamente que todas las maquinas tengan SSH Server y SSH client [y los servers iniciados claro], saber de Linux y en windows el proceso es parecido asi no debe tener problemas en realizarlo ;).

Ahora tratemos de pensar el caso que tenemos un VPS, o lo que sea que utilizaremos, al cual te puedes conectar mediante SSH y al momento de querer conectarnos no tiene los puertos abiertos en el router al que esta conectado :'(... Seguro pensarias es el fin pero no cunda el panico y recuerda que tienes el server :P, asi que podremos hacer la conexion inversa y obtener la terminal. Al momento de explicarlo suena algo confuso, para muchos, entonces dejo una imagen para ver si se comprende la idea global.

{alt}

Una vez explicado esta breve introducción, nos pondremos a conectar la PC al servidor con el comodín -R de ssh indicando un puerto no ocupado (preferiblemente mayores a 2222) y ha de tenerse en cuenta dicho puerto, este se debe ejecutar de esta manera:

Código
$ ssh -R 3333:localhost:22 usuario@SV

una vez hagas esto te pedirá la contraseña:

ssh --» el cliente ssh

-R 3333:localhost:22 --» el -R lo que hara sera unir o bindear la conexion hacia un puerto que le indiques y hacia un host:puerto que asignaras también, has de tener en cuenta que si cambiaste la configuracion de tu ssh en la maquina que estas [referido al puerto] y no dejaste el 22 [que es defecto] debes cambiar por el puerto que hayas configurado.

usuario@SV --» usuario para conectartre al servidor luego el arroba (@) y la direccion del servidor (IP, dominio que se yo).

hasta ahí todo bien, la PC se conectara a SV y en el se genera una conexión entre el puerto 22 del propio y el puerto 3333, en otras palabras se conecta con PC. Ahora conectamos desde nuestro servidor, y desde alli nos conectaremos a la PC por el puerto que se definió (en este caso 3333):

Código
$ ssh usuario@SV

y ya conectado a SV ejecutamos:

Código
$ ssh usuariodePC@localhost -p 3333

y finalmente debe estar conectado 8), por lo cual ya tendremos acceso a la maquina y los comandos que ejecutemos se ejecutarán directamente en PC.
Bien ahora para todo quede perfecto, y si usamos alguna maquina de conocido/amigo que desconfía un poco de nosotros, le dices ejecute screen (en otra terminal, no en la que esta conectado a SSH) así:

Código
$ screen

Parecerá que no hace nada pero desde HS ejecutaras screen -ls asi:

Código
$ screen -ls

y saldrá algo similar a esto:

Código
There is a screen on:

 15741.pts-7.PC (04/11/16 23:15:07) (Attached)

1 Socket in /var/run/screen/S-pc.

ves el nombre despues del punto me refiero a pts-7.PC y desde HS ejecutas:

Código
$ screen -x pts-7.PC

Y si como fuera magia lo que escribas desde HS aparecerá en PC y viceversa, ademas de que si necesitases claves por ejemplo en un comando sudo desde el servidor te escribiría la clave y todos felices :D una terminal compartida en donde podrán trabajar juntos, también verá todo lo que haces y así aprende un poco de paso... Espero puedas ayudar a mas de uno y estaré regresando con algunos trucos rapidos ja ja ja


Saludos Familia!
{alt}