A la hora de administrar servidores u
otros equipos con unas medidas de seguridad específicas que no se deben
modificar, existen varias herramientas, pero ninguna tan simple y eficaz
como el túnel inverso por ssh.
No se trata más que de una conexión entre equipos puerto a puerto
mediante ssh, con la característica de que la petición principal la
realiza la máquina a la que queremos tener acceso y no desde la que
accederemos. ¿Que cómo que qué? Pues supongamos que queremos acceder a
un servidor, pero que ese servidor tiene por delante un router o firewall al que no tenemos acceso.
Nosotros nos encontramos en la misma tesitura, nuestro router o
firewall también bloquea las peticiones entrantes a cualquier puerto y
de la misma forma nos es inaccesible. Con lo que sí
contamos es con una tercera máquina a la que sí podremos acceder
mediante ssh, lo que nos deja con la única solución de acceso al
servidor desde el exterior mediante el túnel inverso ssh.
Lo que haremos para conectarnos a ese
servidor, es establecer una conexión desde dicha máquina a aquel tercer
equipo que dijimos sí teníamos acceso ssh, para luego conectarnos a ese
equipo y enlazar indirectamente con el servidor desde nuestra ubicación,
o cualquier otro equipo. Vamos con la configuración que quedará todo más claro.
Esta sería la configuración a establecer en el servidor al que queremos acceder:
ssh -R 16789:localhost:2222 usuario@servidor.o.ip
Aquí le especificamos que abra una
conexión inversa (-R) al puerto 16789 del equipo al que sí podemos
acceder vía ssh (localhost) mediante el puerto 2222 del servidor, con un
usuario (usuario) determinado en, obviamente la dirección ip
(@servidoroip) de esa tercera máquina.
Con esto configurado en el servidor, lo único que tendremos que realizar nosotros será una conexión ssh normal hacia el puerto 16789 de esa ‘máquina puente’ para que nos redirija mediante ese túnel inverso hacia el servidor.
ssh usuario@servidor.o.ip -p 16789
Y ya nos responde el servidor mediante la conexión que configuramos con la primera línea en el propio server.
Un último esquema para aclarar aún más la idea:
A=Desde donde conectaremos.
B=Servidor al que queremos conectar.
C=Equipo intermedio al que sí podemos acceder vía ssh.
B=Servidor al que queremos conectar.
C=Equipo intermedio al que sí podemos acceder vía ssh.
B abrirá una conexión a C, con la que el
puerto 2222 de B estará escuchando todo aquello que pase por el puerto
16789 de C. Luego nostros desde A podremos conectarnos al puerto 16789
de C, con lo que indirectamente estableceremos conexión con el puerto
2222 de B, que es lo que queríamos desde un principio, y todo esto
gracias al túnel inverso ssh.
No hay comentarios:
Publicar un comentario