Más sobre túneles SSH
Básicamente SSH nos permite establecer conexiones seguras entre dos extremos. Adicionalmente, ssh permite mandar otros protcolos como datos, lo cual hace que un protocolo inseguro, como http, se convierta en algo bien encriptado. Los requerimientos para ello son bastante simples, un cliente ssh en la máquina desde la que nos conectamos y un servidor ssh en el otro extremo, en el caso del ejemplo, en el equipo donde tenemos el webserver.
Una vez que tenemos los requisitos cumplidos, establecer la conexión es bastante sencillo, así como el funcionamiento. Lo que haremos será crear un túnel entre un puerto de nuestro equipo y el servidor ssh, por lo que toda conexión que se haga a dicho puerto, ssh se encargará de mandarla por el túnel hacia el otro equipo.
La sintaxis es la siguiente:
ssh -L localport:localhost:dstport usr@dstaddress
por ejemplo:
ssh -L 1000:localhost:8000 miusuario@midominio.com
En este ejemplo creamos un túnel entre el puerto 1000 del equipo local y el puerto 8000 del equipo midominio.com y estamos asumiendo que en el puerto 8000 de midominio.com atiende un servidor web. Ahora, para acceder al servidor web, debemos conectarnos a http://localhost:1000, es decir, al puerto 1000 de nuestro host local. SSH se encargará de encriptar los paquetes que se reciban en ese puerto y enviarlos al servidor de destino. Ahí serán entregados en el puerto 8000 y los paquetes de respuesta recibirán un tratamiento análogo.
Con este simple mecanismo, podemos acceder a cualquier servicio en un servidor remoto encriptándolo con ssh, ya sea para aplicaciones web, correo, news o cualquier otra cosa que queramos.

Comentarios recientes