Medidas contra los proxies transparentes

De Wiki de BandaAncha.eu
Saltar a: navegación, buscar

Hola, aún estoy sin terminar. [Puedes copmletarme siguiendo este enlace]

Introducción

De la implantación del proxy transparente por parte de Telefónica hace ya algún tiempo. De los problemas que han generado ya se ha hablado mucho en BandaAncha.st. El más molesto es el de no ofrecer los contenidos actualizados.

Desde entonces han aparecido varias aplicaciones que permiten al usuario forzar el refresco de las páginas que visita. Este documento pretende hacer un resumen de algunas de ellas, y mostrar soluciones que ya existían y que son tan válidas y eficaces (algunas más) pero que no son tan conocidas por la mayoría.

Si queréis saber más sobre el funcionamiento y la diferencia entre proxies aquí tenéis un documento donde podéis informaros.

Bajo Windows

The Proxomitron

The Proxomitron es un proxy para Windows que podemos hacer funcionar en modo local y proporciona herramientas de privacidad para la navegación. En nuestro documento lo vamos a configurar exclusivamente para obligar a los proxies transparentes que colocan nuestros ISPs a entregarnos contenidos actualizados.

Para ello, incluiremos el envío de dos cabeceras no-cache cada vez que se haga una solicitud a un servidor web. Vamos a ver cómo se hace esto:

Descarga e instalación

La página oficial del software es www.proxomitron.org, pero en el momento de redactar este documento no está activa. Hay varios sitios donde se puede descargar el programa, aquí proponemos The Proxomitron - Universal Web Filter, donde nos podremos bajar el instalador: ProxN44.exe, un ejecutable de 1,34 MB que nos proporciona la versión en inglés. En este momento hay ya una versión superior del Proxomitron, pero puesto que el soporte "oficial" ya no existe, creemos que es preferible enlazar ésta, si bien con la nueva también es posible la configuración que proponemos en el documento.

Existe una traducción al castellano del programa, que se instala después del ejecutable anterior. Para descargarla, hacer click con el botón derecho del ratón en el siguiente enlace y elegir "Guardar destino como..." (en IE), o "Guardar enlace como..." (en mozilla): www.senpai.galeon.com/traducciones/Proxomitron_Spa.exe. De no hacerse así, galeon redirigirá y no se podrá alcanzar el archivo que nos queremos bajar: Proxomitron_Spa.exe (Actualización: ese link de la traducción ya no está operativo. Este otro sí es válido: senpai.iespana.es/senpai9/traducciones/ProxN45-Spa.exe). Para conocer más links y documentación sobre el programa, recomendamos www.proxomitron.info, donde es posible también descargarlo o acceder a otros sitios con distintos pack de lenguaje, add-ons, etc.

Una vez disponemos de ambos instaladores, ejecutamos el primero de ellos: ProxN44.exe, completamos la instalación, nos aseguramos que The Proxomitron no esté en ejecución, e instalamos el segundo, la traducción: Proxomitron_Spa.exe.

Ya tenemos instalado The Proxomitron en castellano. Ahora vamos a configurarlo:

Configuración del proxy y los navegadores

ConfigProxyBrowser.gif Ya tenemos The Proxomitron listo para obligar a las cachés a que nos entreguen contenidos actualizados, y nuesto navegador y sistema para trabajar correctamente a través de él cada vez que hagamos una solicitud mediante el protocolo http. A continuación pasaremos el Test Caché de Lagado para comprobar si todo es correcto.

Más sobre The Proxomitron

Para conocer más a fondo este proxy y aprender a aprovechar otras funcionalidades, recomendamos los documentos en castellano que han publicado en Nautopia: Proxomitron Soporte Oficial Hispano.


Pasakche

En el marco de la IV Campaña de Seguridad en la Red, la Asociación de Internautas hizo público el programa para Windows: Pasakche, cuya finalidad exclusiva es el envío de cabeceras no-cache a través de todas las solicitudes http.

Se trata de un programa muy sencillo que no requiere configuración alguna ni del navegador ni del sistema. Ni siquiera requiere instalación, basta con bajarlo de seguridadenlared.org/programs/pasakche.exe, copiarlo a la carpeta fija desde la que lo utilizaremos, y ejecutarlo.

Al ejecutar pasakche.exe aparecerá en la barra de tareas el siguiente icono:

PasakcheIcono.gif

Haciendo click con el botón derecho del ratón sobre él, elegiremos Opciones, lo que nos muestra la siguiente pantalla, en la que deberemos activar la casilla "Ejecutar automáticamente al iniciar Windows" y pulsar el botón "Cerrar":

PasakchePantalla.gif


Bajo *NIX

Squid

¿Y si tenemos una red? ¿Tenemos que ir instalando las aplicaciones anteriores puesto por puesto? ¿Y si no utilizamos Windows?

Una solución a todo esto es meter por medio nuestro propio proxy. ¿Para qué? Él será el que se encargue de forzar el refresco. Este sistema para una red es muy interesante, pues sólo hay que configurar el servidor y los navegadores (incluso ni eso, si hacemos que el proxy sea transparente también).

Además, podemos meter reglas de filtrado en el proxy para evitar los sitios de publicidad.

Una guía más exhaustiva sobre Squid la podéis encontrar aquí.

La parte de la instalación me la salto, en el sitio oficial tenéis toda la documentación. Aquí vamos a ir al grano.

Antes de nada, tengo que decir que no soy ningún experto en Squid, y todo esto ha sido sacado a base de pruebas. Si hay algún error, os pido que me corrijais ;)

Para forzar el refresco, lo único que tenemos que hacer es decirle que no queremos que coja nada de nuestra caché, con ello conseguimos que los datos sean siempre "frescos". Nos vamos al /etc/squid.conf (o donde tengas el archivo de configuración) y modificamos las directivas no_cache y refresh_pattern de la siguiente manera (dejad lo originales con comentarios, y el resto del archivo sin tocar):

 acl QUERY urlpath_regex cgi-bin \? .
 no_cache deny QUERY
 refresh_pattern .               0       0%      0

Digamos que aquí estamos usando un pequeño truco (chapuza lo llaman a veces). Con las 2 primeras líneas hacemos que no se cachee ninguna dirección que contenga los caracteres "cgi-bin" o "?" o "." (*). Buscadme una sola dirección que no tenga un punto :) ¿La encontrásteis?

Realmente se podría dejar solo el punto, pero por vaguería no lo he probado.

Con el refresh_pattern le estamos diciendo que la edad máxima de un elemento en la caché es 0.

Esta configuración podemos irla afinando. ¿Qué os parece si cacheamos las imágenes mientras no sean nuevas? Pues a modificar la acl:

 acl IMAGENES urlpath_regex jpg gif png swf JPG GIF PNG SWF
 acl QUERY urlpath_regex cgi-bin cgi \? php asp html htm xml pl
 no_cache allow IMAGENES
 no_cache deny QUERY
 refresh_pattern .               0       0%      0

Creo que os podéis imaginar como funciona. Desconozco si Squid es case sensitive (me imagino que sí), por eso están repetidas las extensiones de las imágenes.

No quería pararme mucho más en la configuración de Squid, si queréis algo más técnico se puede estudiar el realizar otro documento.

Comprobaremos si la configuración es correcta mediante el #test de Lagado.

Parches para Mozilla

Hace tiempo alguien envió a Barrapunto instrucciones para aplicar un parche en el proceso de compilación de Mozilla, para que éste obligase al proxy en cada solicitud a entregar contenidos actualizados:

EDITAR ENLACE

El parche se puede bajar de aquí.

Se debe aplicar al directorio netwerk/protocol/http/src, al fichero nsHttpChannel.cpp del código fuente de Mozilla (1.2.1) así:


   cd netwerk/protocol/http/src
   tar xvzf patch-no-cache-mozilla-1.2.1.tgz
   patch nsHttpChacnnel.cpp patch-no-cache-mozilla-1.2.1.diff

Y a continuación se compila.

Una vez más, podremos comprobar si la configuración es correcta mediante el test de Lagado.

Proxies externos

Otra posibilidad válida para cualquier sistema operativo, es la configuración del navegador para que utilice un proxy externo público. Un proxy externo público es un ordenador remoto que está ejecutando un software proxy configurado para el acceso público, o desde fuera de la red en la que está implementado. En www.stayinvisible.com hay una completa lista de proxies que se actualiza con regularidad, así como interesantísima información sobre los distintos tipos de proxies (en inglés).

La manera de configurar el Opera, el Mozilla o el Microsoft Internet Explorer es idéntica a la que se mostraba aquí. Habrá que sustituir la entrada localhost por la dirección IP del proxy que vayamos a utilizar, y el número de puerto por el que utilice para escuchar el proxy de esa máquina. (Importantísimo: si se trata de burlar las cachés de los proxies transparentes, no elijais un proxy externo que funcione a través del puerto :80, ya que el proxy transparente estará capturando el tráfico http a través de ese puerto y no os servirá de nada). Ambos datos se pueden obtener en la lista enlazada arriba, donde incluso se dispone de una herramienta para testear el proxy elegido online. Al elegir el proxy que vayáis a utilizar, recomendamos los señalados como de tipo anonymous.

Una vez que hemos completado la configuración de cualquiera de los programas del documento, podremos comprobar su correcto funcionamiento a través del Cache Test online de Lagado. Existen otros test de proxies transparentes, pero no son útiles para lo que queremos comprobar, ya que hay que señalar que las configuraciones que hemos indicado no esquivan el proxy transparente, simplemente le obligan a que nos entregue contenidos actualizados siempre.

El Caché Test de Lagado comprueba si estamos viendo contenidos web reales o cacheados; para un resultado fiable hay que hacerlo tal y como se indica en las instrucciones, que como es habitual, casi nadie lee ;-D. Por eso vamos a poner aquí algunas indicaciones en cristiano sobre cómo debe hacerse:

Al entrar en la página, entre todo el ladrillo se nos mostrará la siguiente tabla:

TestLagado1.gif

El dato que subrayamos en la captura es un dato variable, por tanto no tiene que ser exactamente el que aparece en la imagen. Los pasos a seguir a partir de aquí son:

  1. Anotamos el número que nos salga (page serial number).
  2. Vaciamos la caché de nuestro navegador. Según el navegador utilizado, esto se hace así:
    1. Microsoft Internet Explorer: Menú "herramientas" --> Opciones de Internet... --> Ficha "Generales" --> Botón "Eliminar Archivos" --> Aceptar.
    2. Mozilla: Menú "Editar" --> Avanzadas --> Cache --> Botón "Vaciar caché".
    3. Opera: Menú "Archivo" --> Opciones --> Historial y caché --> Botón "Vaciar ahora".
  3. Refrescamos la página. Pero ATENCIÓN: no se puede hacer con el botón del navegador, ya que no funcionaría bien el test. Se debe hacer con el enlace que tiene la página para ello:

TestLagado2.gif

  1. Comprobamos el nuevo page serial number que nos salga. Si es distinto al anterior, la configuración de nuestro proxy local es la correcta para el fin perseguido. Si el número es el mismo, entonces estamos viendo contenidos cacheados por el proxy transparente; debemos revisar la configuración.