jueves, 5 de abril de 2012

Creación de túneles con SSH en Linux


Supongamos que necesitamos conectarnos por red, desde nuestro equipo Linux, a un servicio de un computador remoto el cual no se encuentra en nuestra misma red. A pesar de que nuestro “Computador Destino” no está en nuestra misma red, si que tenemos acceso por red a un equipo que si tiene acceso, a su vez, al computador al que nos queremos conectar.

Esta situación queda plasmada en el siguiente esquema de red:



Como podemos observar, tenemos nuestro computador (A), conectado a la misma red que el equipo intermedio (B), y a su vez, el equipo (B) tiene acceso por red al “Computador Destino” (C) al que queremos conectarnos. De este modo tenemos que los equipos A y B están en la red 192.168.1.0/24 y los equipos B y C están en la red 192.168.2.0/24.

Para llevar a cabo nuestro propósito tenemos como requisito que el equipo B, que utilizaremos como “Gateway”, tenga en marcha el servicio SSH para poder conectarnos a él.

El concepto básicamente consiste en crear una conexión de nuestro computador (A) al computador Gateway (B) por SSH, indicando la IP del “Computador Destino” (C) y el puerto del servicio al que nos queremos conectar en dicho “Computador Destino”. También el puerto por el que nos queremos conectar en nuestra máquina local.

Supongamos que en nuestro caso queremos acceder a una página web que tenemos alojada en nuestro “Computador Destino”, el cual tiene en marcha un Servidor Web por el puerto 80.

Para crear el túnel en nuestro computador (A) abrimos un terminal y tecleamos:

root@servidor:~# ssh –L 6677:192.168.2.150:80 root@192.168.1.30

Donde tenemos que: 

6677: Puerto que utilizaremos para conectarnos al servidor web desde nuestro computador. 

192.168.2.150: Dirección IP de la máquina C, a la que queremos conectarnos. 

80: Puerto del servidor web de la máquina C. 

root@192.168.1.30: Conexión SSH a la maquina intermedia B, que hace de Gateway. En este caso hemos utilizado el usuario “root”, sin embargo podríamos haber utilizado cualquier otro usuario de la máquina B. 

Nos pedirá la contraseña del usuario “root” de la máquina B, en este caso. Una vez hecho esto dejamos el terminal abierto, y abrimos el navegador poniendo la dirección de la web a la que queremos acceder especificándole el puerto que pasemos como argumento al servidor SSH: 


Hay que tener en cuenta que este ejemplo se ha basado en el acceso al servidor web del “Computador Destino”, sin embargo, se podría haber hecho un túnel para conectarnos a cualquier otro tipo de servicio por su puerto correspondiente


No hay comentarios:

Publicar un comentario