Imagina que tienes que conectar por SSH a un ordenador que está
protegido detrás de un cortafuegos o un
router que impide que llegues a su puerto 22 que es el que utiliza SSH.
La solución sería abrir ese puerto 22 y redireccionarlo al
equipo al que necesitamos acceder, pero no siempre eso es posible. Aun así, podemos conectarnos a él mediante
SSH, creando un túnel inverso.
Para no liarnos, voy a describir bien la situación. Quiero
conectar a un equipo de mi trabajo desde casa. Tengo usuario y contraseña en
ese equipo, pero la red está configurada para que desde fuera no se pueda
acceder a él. Y digamos que el sysadmin no es proclive a abrir el puerto 22 al
exterior.
El primer paso es conectarme desde la red de mi trabajo al
ordenador que queremos controlar en remoto. Después, pediremos amablemente a
este equipo que sea el quien se conecte con el ordenador de mi casa creando una
conexión reversa que luego utilizare desde allí.
- ssh -R 9999:localhost:22 usuario_pc_casa@IP_mi_ordenador
Con esto hemos pedido al equipo de la oficina que conecte
con el de mi casa y cree un túnel inverso.
Una buena idea es poner esta orden en cron de forma que se
ejecute al iniciar el equipo y así siempre tendrás la conexión lista.
Ahora en mi casa, tengo una conexión entrante desde el
equipo de la oficina, pero yo no quiero que me controlen mi equipo desde allí,
si no controlar aquel, por lo que voy a conectarme a él empleando esa conexión entrante.
- ssh -p 9999 usuario_pc_oficina@localhost
Con ello estoy conectando SSH por el puerto 9999 que es el
que creamos con la conexión que realicé desde la oficina a mi casa. El usuario
es el del equipo de la oficina y el “host”, el equipo local, que es quien
redirige por la conexión entrante al puerto 9999.
Y listo, ya tengo acceso al equipo de la oficina, ese que
esta tan aislado detrás de los cortafuegos de la empresa.
como siempre, interesantísima entrada. Pero esta vez 't'has pasao', Carlos, es to es para 'menos' torpes y 'menos' brutos :) :) :) ;)
ResponderEliminarSi lo he podido hacer yo.... ¡es pa torpes!
Eliminar:P
Pues yo diría que normalmente una empresa con cara y ojos tendrá las conexiones entrantes bloqueadas mediante un firewall. (O almenos restringidas a un determinado número de IP)
ResponderEliminarPor lo tanto da igual lo que hagas porqué no te podrás conectar.
Sí me equivoco dimelo y así aprendemos todos.
Las entrantes, si, pero es que nosotros estamos utilizando una conexion saliente y se suele ser mas permisivo.
EliminarSi funciona , basta que tenga las salientes y todas las entrastes , si funciona .. asi que por mas poderoso firewall , igual se vulnera
Eliminarwow gracias super util
ResponderEliminarMe alegro de que haya sido util
EliminarMuy buena explicación, agradecido, me sirvió mucho!
ResponderEliminarMe alegro de que te sirviera
EliminarEstá publicado muy claramente y creo que lo he hecho la semana pasada y me ha funcionado, pero lo pruebo ahora con la orden:
ResponderEliminar# ssh -R 9999:localhost:20822 root@myhost.ddns.net
y me dice:
ssh: connect to host myhost.ddns.net port 22: Connection refused
En la sección NAT de mi router tengo hecho un forwarding del 20822 externo al 22 interno de la máquina a la que me quiero conectar.
Si, desde la máquina remota, hago:
# ssh myhost.ddns.net -p 20822
me conecta correctamente.
¿Alguna idea?
Gracis anticipadas.
Yo apostaría porque es la configuración del router la que falla.
EliminarEl problema es que te estás intentando conectar al puerto 22 y redirigir el 20822.
EliminarLa orden que tendrías que ejecutar sería:
# ssh -R 9999:localhost:22 root@myhost.ddns.net -p 20822
Des esta forma rediriges el puerto ssh de la máquina que quieres y te conectas a tu servidor "myhost.ddns.net" al puerto que dices que tienes redirigido.
Gracias por la ayuda
EliminarTe recomiendo que enuncies los comandos:
ResponderEliminarconfiguracion en maquina local:
xxxxx
configuracion en maquina de trabajo :
yyy
Prueba desde el equipo tal
zzzzzz
Porque si sigues mostrando como si fuera un dialogo ,. no se entiende nada.
Gracias por tu sugerencia, pero creo que limitar esto a una mera receta de cocina seria contraproducente.
Eliminar