Hace un par de días publicaron en Kriptópolis un escueto pero didáctico documento que explica bastante bien los pasos básicos para navegar y/o conectarse a equipos remotos a través de un túnel SSH, algo que vengo haciendo hace tiempo, incluso desde la Pocket PC, a través de zaTunnel. Este tipo de conexiones son de utilidad en varios casos:
- Cuando se está desde una red que filtra o bloquea determinados sitios web.
- Cuando se está conectado a través de una red insegura donde cualquiera podría capturar nuestro tráfico, como en el caso de un hotspot Wi-Fi de algún café o aeropuerto.
- Cuando el proxy transparente de nuestro ISP tiene problemas para cargar algunos sitios y necesitamos una "segunda opinión" antes de darnos por vencidos.
Normalmente lo que se suele hacer es lo que se especifica en el documento citado: Se suele disponer de un servidor SSH escuchando en el puerto que más conveniente se crea conectado a Internet, y dentro de la red local de éste se tiene corriendo algún tipo de proxy al que luego nos conectaremos a través del túnel SSH, utilizando el mapeo de puertos.
Pero gracias a los comentarios que dejaron en dicho post encontré que hay otra forma bastante interesante de conectarse a Internet a través de SSH, al menos en Linux.
Utilizando el cliente SSH que viene generalmente incorporado en Linux, escribimos desde la línea de comandos:
ssh -D 3128 usuario@servidorSSH
El parámetro -D hace que ssh utilice un binding especial en el que pasa a comportarse directamente como un SOCKS proxy para el puerto especificado (en este ejemplo 3128), prescindiendo de esta manera de la necesidad de contar con un proxy HTTP del otro lado del servidor SSH al cual tunelizar un puerto.
Otros parámetros que nos pueden resultar útiles son -p para especificar un puerto para el servidor SSH distinto del estándar (22), -N para evitar abrir una línea de comandos remota cuando sólo estamos interesados en tunelizar puertos, y -f para poner el proceso en background y seguir disponiendo de la línea de comandos local en la consola.
Una vez corriendo esta conexión, podemos por ejemplo ir a la configuración de Firefox, por ejemplo, y configurar el SOCKS proxy:
Lo bueno de un SOCKS proxy es que, a diferencia de un proxy HTTP, admite cualquier tipo de protocolo y conexión para rutear, y por ende muchas aplicaciones tienen soporte para configurar uno. Pero cómo hacemos con las que no? Por ejemplo, en Opera se puede configurar un proxy HTTP pero no uno SOCKS.
La solución para eso es utilizar alguna aplicación que capture y encapsule las conexiones del programa en cuestión, redirigiéndolas hacía el servidor SOCKS. En Windows hay muchas, y sin más lejos hace poco vimos una que lo hace, GPass. En Linux podemos usar tsocks, tal como fue recomendada también en el mismo comentario. Primero debemos instalarlo mediante un:
(sudo) apt-get install tsocks
A continuación hay que configurarlo para utilizar el SOCKS proxy que habilitamos por SSH, editando su archivo de configuración:
(sudo) gedit /etc/tsocks.conf
Ahí agregaremos o editaremos las siguientes líneas:
server = 127.0.0.1 server_port = 3128 (o el puerto que hayamos utilizado)
Luego el uso es tan simple como invocar desde la línea de comandos:
tsocks programa-a-proxyficar
Pude probarlo con el mismo Opera, y más allá de algún aviso o error que tira en la consola, éste arranca y navega a través de la IP del servidor SSH exitosamente, con lo que no habría problemas en utilizarlo para proxyficar mensajeros instantáneos, clientes de correo y demás.
Y si les parece complicado por el tema de tener que dejar encendida PC ejecutando el servidor SSH todo el día mientras no están, tal vez consideren utilizar DD-WRT para su actual o próximo router, el cual tiene un servidor SSH incorporado.
Entradas Relacionadas
SOCKS Proxy con Putty: Internet seguro desde cualquier lado
Htop, completo administrador de procesos para Linux
AlwaysVPN, VPN cifrada gratuita para saltar conexiones Wi-Fi inseguras



No hay comentarios aún
Comments feed for this article
Enlace al trackback
http://geekotic.com/2008/11/14/saltando-filtros-y-conexiones-inseguras-navegando-por-ssh/trackback/