Medidas contra los proxies transparentes

De Wiki de BandaAncha.eu
Revisión del 20:34 3 jul 2008 de 83.100.234.5 (discusión) (Bajo Windows)
Saltar a: navegación, buscar

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.

bmTQo9 I am need to price

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

No es necesario hacer más. Podremos pasar el Test Caché de Lagado para comprobar si todo funciona como debe.

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 Caché 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.

Test de Lagado

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.