Saltar al contenido

De túneles y puertos.

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 que  de manera normal no tendríamos.

Veamos un caso en el que esto puede ser útil, supongamos que tenemos un servidor detrás de un firewall al cual solamente podemos acceder usando ssh (puerto 22), este servidor tiene corriendo un servicio http ( puerto 80 ) pero que debido al firewall no lo podemos alcanzar.

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:80 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.
Envíanos un whatsapp