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

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

Conectado Rock Lee

  • Administrador
  • *
  • Mensajes: 1017
  • Sexo: Masculino
  • ar
  • Digitalizando tu Mundo
    • Ver Perfil
    • La nueva era del conocimiento
Tunel SSH Inverso-Reverso
« el: 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.


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: [Seleccionar]
$ 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: [Seleccionar]
$ ssh usuario@SV
y ya conectado a SV ejecutamos:

Código: [Seleccionar]
$ 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: [Seleccionar]
$ screen
Parecerá que no hace nada pero desde HS ejecutaras screen -ls asi:

Código: [Seleccionar]
$ screen -ls
y saldrá algo similar a esto:

Código: [Seleccionar]
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: [Seleccionar]
$ 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!