De túneles y puertos (SSH)



SSH es un protocolo que según wikipedia "nos permite acceder de manera segura a máquinas remotas a través de una red". Pero no solo eso, puede ser una herramienta sumamente poderosa, con la cual podemos, por ejemplo, crear túneles para permitir el acceso a algún puerto remoto desde equipos o redes que  de manera normal no lo tendrían.
Veamos un caso en el que esto puede ser útil, supongamos que tenemos un servidor detrás de un firewall al cual solamente podemos accesar usando ssh (puerto 22), este servidor tiene corriendo un servicio http ( puerto 80 ) pero que debido al firewall no podemos accesar.



Con ssh podemos resolver este problema creando un túnel que abra un puerto local al cual  podamos hacer peticiones como si fuera el puerto 80 del servidor remoto.
Para crear este tunel basta con ejecutar el siguiente comando desde una terminal:

$ ssh -fNg -L puerto-local-a-abrir:localhost:puerto-remoto usuario@ipservidor-remoto
Supongamos por ejemplo; que nuestro servidor remoto tiene la ip 192.168.1.10 y deseamos acceder al puerto 80 de este usando el 8080 local, nuestro comando quedaría de la siguiente manera:
$ ssh -fNg -L 8080:localhost:8080 usuario@192.168.1.10
Una vez proporcionemos la contraseña del usuario tendremos abierto el puerto 8080 de manera local.
Ahora se puede acceder al servidor remoto desde el navegador usando la url: http://localhost:8080
Como podemos ver las posibilidades son muchas, ya que por ejemplo se puede usar este método para redireccionar el puerto 3306 (mysql) o 1521 (oracle) y poder configurar una conexión de base de datos en nuestro cliente favorito usando localhost.

Comentarios

Entradas populares de este blog

Odisea 3G Huawei E173

Nessus Arch Linux

De dados y cubos con puntos