Medidas contra los proxies transparentes

De Wiki de BandaAncha.eu
Revisión del 20:23 9 jun 2009 de Fervigo (discusión | contribuciones) (Deshecha la edición 3782 de 93.174.93.233 (disc.) - Vandalismo)
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.

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.

Ejecutamos ProxN44.exe y completamos la instalación.

Existe una traducción al castellano del programa, que se instala después del ejecutable anterior, pero ya no se encuentra disponible para bajar. La dirección original era [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.

Si has conseguido la traducción, para instalarla nos aseguramos que The Proxomitron no esté en ejecución, y ejecutamos Proxomitron_Spa.exe.

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

Configuración del proxy y los navegadores

Primero abrimos el programa. Aparecerá éste icono en la barra de tareas:

ProxomitronIcono.gif

Haciendo doble click sobre él, se abrirá la siguiente ventana:

ProxomitronConfig 1.gif

En ella dejamos activa únicamente la casilla "de Encabezados Salientes". A continuación, procederemos a crear las reglas para el envío de cabeceras no-cache. Para ello, hacemos click en el botón Encabezados, lo que nos abre esta nueva ventana:

ProxomitronConfig 2.gif

En esta nueva ventana, lo primero es desactivar todas las casillas que estén activadas, para que queden como en la captura. Hay que tener en cuenta que no entran todas en el query, por lo que utilizaremos la barra de desplazamiento para buscar todas las entradas y asegurarnos de que todas las casillas estan desactivadas. Después, crearemos nuestras propias reglas, que serán dos, a fin de asegurarnos de que todas las versiones de los servidores web respondan adecuadamente. Hacemos click en el botón Nuevo. Sale otra ventana nueva en la que escribimos literalmente esto:

ProxomitronConfig 3.gif

Pulsamos el botón Aceptar, lo que nos lleva de nuevo a la ventana anterior:

ProxomitronConfig 2.gif

Hacemos click otra vez en el botón Nuevo para crear la segunda regla. Eso abre una ventana como la de antes, y esta vez escribiremos literalmente esto:

ProxomitronConfig 4.gif

Al aceptar, como antes, regresaremos a la ventana anterior. Comprobaremos que hayan aparecido en la lista estas dos entradas que acabamos de crear; son fáciles de ver, porque aparecerán en negrita. Tenemos que seleccionar las casillas de la columna Salida en ambas entradas. Deben ser las dos únicas casillas activas en todo el query:

ProxomitronConfig 5.gif

Una vez que todo está correcto, pulsamos el botón Aceptar, con lo que regresamos a la ventana del principio:

ProxomitronConfig 1.gif

Configuraremos ahora el puerto en el que va a escuchar el proxy. En la ventana capturada sobre estas líneas hacemos click en el botón Configurar, y eso abre la ventana que mostramos abajo. Hay que acceder dentro de ella a la ficha HTTP, y escribiremos el número de puerto para el proxy. En nuestro ejemplo, el 7979:

ProxomitronConfig 6.gif

Aceptando en esa ventana ya tenemos configurado The Proxomitron. Ahora habrá que guardar la configuración que hemos hecho accediendo al menú Archivo y eligiendo la opción Guardar como Configuración por Defecto Ctrl-D:

ProxomitronConfig 7.gif

Es conveniente reiniciar The Proxomitron para comprobar si la configuración al abrirse es la que hemos hecho en los pasos anteriores. También comprobaremos si existe acceso directo en la carpeta Inicio de Windows, y si no existe, lo crearemos a fin de que The Proxomitron arranque siempre con el sistema:

ProxomitronConfig 8.gif

A continuación será necesario configurar nuestro navegador para que acceda a Internet a través de nuestro proxy local. Explicaremos ésto para los tres navegadores de mayor uso en Windows: Opera, Mozilla y Microsoft Internet Explorer, en los que tendremos que poner los datos del proxy en localhost y a través del puerto 7979:

En Opera, se accede a la configuración de red a través del menú Archivo --> Opciones...; En la ventana emergente, hay que llegar hasta Servidores Proxy y escribir localhost y el puerto 7979 como se indica:

ProxomitronConfig Opera.gif

En Mozilla, tendremos que ir a través del menú Editar --> Preferencias...; escribiremos esos parámetros dónde y como se indica en la captura:

ProxomitronConfig Mozilla.gif

Y en Microsoft Internet Explorer, hay que hacerlo mediante el menú Herramientas --> Opciones de Internet, y a partir de ahí, como se va guiando en la imagen:

ProxomitronConfig IE.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

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.