miércoles, 27 de febrero de 2013

El marrón de crear un Tunel SSH.

    Pues no sé si todo el mundo sabe lo que es esto de los túneles seguros, es un marrón sólo hasta que te aclaras con los conceptos. Básicamente se trata de establecer una conexión segura con un PC a través de una red (Internet más que nada), incluso saltando el típico proxy del curro que nos deja todos los puertos de salida a Internet capados y, sobre todo, teniendo acceso completo a todos los puertos del PC sin tener que abrirlos en el router, dejando abierto solo el puerto por el que vamos a hacer el tunel. Creo que ya hay muchos tutoriales por la red de cómo hacer esto en Windows, yo tan solo me voy a limitar a poner la solución que yo utilizo con la herramienta gratuita (para uso doméstico) Bitvise Tunnelier. Dispone de 2 partes, un servidor ssh (que hace poco que es gratuito, antes era de pago) Bitvise SSH Server (WinSSHD), y para el cliente Bitvise SSH Client (Tunnelier), este último siempre había sido gratuito. El Bitvise Tunnelier, tiene integrado un cliente SFTP que  es una especie de FTP que no necesita servidor FTP en el PC servidor, e incluso la posibilidad de configurar como Proxy para el navegador el PC servidor (aunque para esto más te vale tener al menos 1 Mega de subida de ancho de banda) (http://www.bitvise.com/). Para la conexión utiliza un usuario y contraseña propios de los que tengas creados en el Windows, puedes crear una cuenta específica para la conexión o usar una de las que ya tengas, incluso la de administrador. Al tener un puerto abierto los piratas van a intentar entrar por ahí a saco, conviene revisar los logs para saber qué o quién está intentando entrar por el puerto ssh y para bloquearlo estos servidors ssh suelen tener la opción de crear una lista negra de IP's, pero  teniendo en cuenta que los ataques van variando de IP muy a menudo es mejor poner rangos o máscaras de 32,24,16 u 8 bits (en esta parte otras herramientas son más sencillas).

La cuestión principal a la hora de crear el túnel son las reglas de re-direccionamiento en el cliente, de forma que al establecer la conexión a la IP del PC remoto por el puerto libre (p.e. 8080, o el 443), se queda internamente la dirección “localhost” redirigida a la IP de nuestro PC servidor, y los puertos que queramos usar (por ejemplo el 5900 para el VNC, el 3389 para Terminal Server u otros) ya están disponibles en la combinación de las direcciones localhost:puerto siempre y cuando esas reglas estén creadas. 

A su vez en el servidor se puede habilitar la opción “Allow local port Forwarding”, esto nos puede servir para permitir entrar en varios equipos remotos de la misma red si añado reglas de ssh para ellos. Por ejemplo la regla:  puerto 5950 -> 192.168.1.121 nos permitiría conectarnos a otro PC de la red con un VNC que estuviera configurado por el puerto 5950 poniendo en el cliente del VNC la dirección: localhost:5950. El tunel también puede ser inverso (al menos con el el Bitvise Tunnelier) habilitando reglas en la parte de Server to Client Fwding (S2C).

A todo esto, solo recordar que para saber la IP del equipo remoto, no hay nada mejor que configurarse una cuenta en DynDNS.org de forma que ya te puedes olvidar de la IP, y acceder a tu equipo remoto con un nombre de servidor.dyndns.org.


Otras opciones gratuitas para 'tunneling' son:

- En el lado servidor (PC remoto)FreeSSHD (http://www.freesshd.com/), muy sencillo de usar, configurar un número de puerto, y crear un usuario y una contraseña para la conexión (no se utilizan los login de Windows en este caso). La conexión es más 'débil', por decirlo de alguna forma, que con el Bitvise, sufre cortes si se utiliza el tunel para navegar en modo proxy o si se intentan reproducir películas mediante un mediaserver (servidor multimedia). Se puede combinar con cualquier cliente ssh como el Bitvise. Su principal ventaja es que permite bloquear rangos de direcciones IP con máscaras de '*', p.e.: '50.36.123.*'. De esta forma es más fácil mantener la seguridad.

- En el lado cliente: el cliente de terminal de toda la vida Putty (http://www.putty.org/(se puede descargar de muchos sitios). Establece el túnel básico, nada de FTP ni proxy, pero suficiente si deseas conectarte por VNC por ejemplo. En el putty las reglas se crean en la sección “SSH port Forwarding”de la forma:  Puerto -> IP:puerto .





0 comentarios:

Publicar un comentario