dijous, 9 de juliol del 2009

Medidas contra los proxies transparentes

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.

Cap comentari:

Publica un comentari a l'entrada