Y no naufragar en el intento

¿Se entendió el chiste? Lo opuesto de navegar = naufragar, hoy estoy iluminado.

El caso mas típico: El administrador de la red de tu trabajo te bloqueó twitter, facebook, msn messenger y cuanta otra página adicional pudiera dar por tierra con tu productividad.

¿Se entendió el chiste? Lo opuesto a navegar = por tierra, hoy estoy realmente iluminado.

Otro ejemplo, estás navegando desde una red pública accediendo a contenido sensible sin saber quien pudiera estar a la escucha del tráfico entrante o saliente. O peor aún, estás navegando desde una red inalámbrica sin cifrar, donde cualquiera en varios metros a la redonda podría estar jugando con su placa de red wi-fi en modo monitor.

Ya sea que te bloquearon el MSN messenger y no podes chatear o que te vino el ataque mensual de paranoia y no te animás a usar Home Banking desde esa red de dudosa procedencia, he aquí una de las tantas alternativas viables para solventar el problema.

Ingredientes:

  1. Linux con el servicio SSH corriendo.
  2. Si la PC con facebook bloqueado corre windows, entonces necesitarás además de PuTTY

Si, solo eso. Nada como un buen Linux en casa para pasarse por el ***** el sistema de filtrado de contenidos del 90% de los servidores corporativos, así que si todavía no lo hiciste, ya tenés otro motivo mas para ir instalando Linux en esa PC viejita y en desuso que quedó tirada por ahí.

¿Como funciona?

Se trata de establecer el famoso tunel SSH entre la PC bloqueada y la PC de afuera corriendo Linux.

Si bien hay varias formas de traspasar un firewall restrictivo, la mas eficiente y la única que encontré –la única que conozco, por que seguro habrá unas cuantas formas mas de hacerlo– que permite acceder al contenido de varias páginas web de forma dinámica sin tener que andar retocando la configuración de ningún servicio o conectar y desconectar nada, es llegando hasta el servidor por SSH por un túnel haciendo de socks proxy.

Si llegaste a leer hasta este punto, es por que realmente te interesa el artículo y sabés mas o menos de que estoy hablando, así que voy a presuponer que ya tenés una distribución de Linux instalada y que esta distribución tiene OpenSSH instalado y en ejecución como servicio.

De no ser así, hay miles de guías al respecto por ahí, no voy a detallar la configuración desde el principio por que no viene al caso.

Puesta en marcha:

En Linux:

ssh –D 3128 usuario@servidor 

En windows, con PuTTY en ejecución toda la ciencia radica en agregar el puerto 3128 como dinámico en la sección Connections / SSH / Tunnels y luego loguearse en la PC remota:

eseesehache

Por último, configurar el navegador.

Una vez establecido el túnel, solo es cuestión de especificarle al navegador de cabecera que use como servidor de socks (normalmente en la sección “proxy” de las opciones del mismo) a 127.0.0.1 en el puerto 3128 o cualquiera sea el número de puerto arbitrario que se hubiera especificado. (Usé 3128 por costumbre, por ser el puerto por defecto en donde corre Squid pero se puede usar cualquier número de puerto).

proxy

Desde ese momento y hasta tanto se le indique otra cosa al navegador o se cierre el túnel, todo el tráfico será enviado a través de este último hasta la PC que corre Linux, que será la encargada de establecer y gestionar la sesión HTTP. De paso se cifra por completo la conexión, por otro lado además se saltea cualquier restricción que hubiera respecto a este tipo de tráfico.

Para el webserver que recibe la petición, todo el tráfico aparentará estar originado en la PC que corre Linux.