¿Estás dentro de una lan y sólo puedes salir con un proxy muy restrictivo? ¿Y sólo por el puerto 80 ó 443? Vamos a ver una solución muy efectiva, pero ojo, necesitas un equipo (llamémosle cliente) desde donde inicias las conexiones y que está dentro de la lan, y otro que tengas donde te puedas conectar e instalar un software que a continuación detallaremos (llamémosle server):

  • El software que vamos a usar se llama httptunnel. Hay un paquete en debian/ubuntu que puedes instalar con apt-get. Instalamos pues este paquete en el server y en el cliente:

He probado otros, como corkscrew, pero httptunnel a mi me va mejor.

  • Iniciamos el daemon en el server:

Este demonio se pone a la escucha en el puerto 80, y redirige todas las peticiones a su puerto local 22.

  • Iniciamos el daemon en el cliente:

De esta forma las conexiones al puerto local 2222 van encapsuladas en peticiones http (get, post, etc.) a través del proxy que hemos especificado con -P hacia el puerto 80 de nuestro server. El parámetro -A indica las credenciales del proxy, si hacen falta.

  • Probamos a hacer ssh al server, a través del túnel:

Si todo ha ido bien, estaremos conectados por ssh a nuestro server, lo que nos abre un abanico de posibilidades, como la de montar con ssh un servidor socks (básicamente un proxy que no está limitado a http/https) y poder usar nuestro navegador a través de él. Cerramos la sesión anterior y hacemos:

Con el parámetro -N no nos devolverá ninguna shell (podemos añadir -f para que haga fork), porque por ahora tampoco hace falta. Ahora abrimos nuestro navegador web local, y especificamos que utilice un servidor de socks, en el localhost puerto 8080. De esta manera deberíamos poder navegar a donde queramos, sin las restricciones del proxy.

Si tenéis problemas con el puerto 80, probad todo esto con el 443.

Pero esto no termina aquí. Si tenemos instaladas otras aplicaciones que requieren acceso sin restricciones a internet y que no soportan configuración por socks, podemos  «socksificarlas» (aunque no todas), de manera que podamos obligar a la aplicación a utilizar un servidor socks.

Hay varios programas para Linux (para Windows también) que permite hacer esto. Yo he probado con proxychains (hay paquete .deb) y funciona bien. Lo único que hay que hacer es instalar el software y modificar el archivio /etc/proxychains.conf para que proxychains use el servidor de socks que hemos habilitado con ssh:

Y ahora por ejemplo podemos hacer una prueba con curl:

Listo!

Túneles http – sáltate cualquier proxy
Etiquetado en:

Deja un comentario

Tu dirección de correo electrónico no será publicada.