Configuracion de un Servidor Proxy para Filtrado de Contenidos Web en

¿Qué es un Proxy?

«Proxy» tiene un significado muy general y al mismo tiempo ambiguo, sinónimo del concepto de «Intermediario». Se suele traducir como delegado o apoderado. Un Servidor Intermediario (Proxy) se define como una computadora o dispositivo que ofrece un servicio de red que consiste en permitir a los clientes realizar conexiones de red indirectas hacia otros servicios de red. Durante el proceso ocurre lo siguiente:

­Cliente se conecta hacia un Servidor Intermediario (Proxy). ­Cliente solicita una conexión, fichero u otro recurso disponible en un servidor distinto. ­Servidor Intermediario (Proxy) proporciona el recurso ya sea conectándose hacia el servidor especificado o sirviendo éste desde un caché. ­En algunos casos el Servidor Intermediario (Proxy) puede alterar la solicitud del cliente o bien la respuesta del servidor para diversos propósitos.

Los Servidores Intermediarios (Proxies) generalmente se hacen trabajar simultáneamente como muro cortafuegos operando en el Nivel de Red, actuando como filtro de paquetes, como en el caso de IPTABLES, o bien operando en el Nivel de Aplicación, controlando diversos servicios, como es el caso de TCP Wrapper. Dependiendo del contexto, el muro cortafuegos también se conoce como BPD o Border Protection Device o simplemente filtro de paquetes.

Tipos de Proxy

● Proxy de web / Proxy cache de web ● Proxies transparentes ● Reverse Proxy ● Proxy NAT (Network Address Translation) / Enmascaramiento ● Proxy Abierto

¿Que es ?

Squid es un programa de software libre que implementa un servidor proxy y un demonio para caché de páginas web. Está especialmente diseñado para ejecutarse bajo entornos tipo . Aunque orientado a principalmente a HTTP y FTP es compatible con otros protocolos como Internet Gopher. Implementa varias modalidades de cifrado como TLS, SSL, y HTTPS.

Proxy Web

Es una manera de guardar los objetos solicitados de Internet disponibles vía protocolos HTTP, FTP y Gopher en un sistema más cercano al lugar donde se piden. Los navegadores web pueden usar la caché local Squid como un servidor proxy HTTP, reduciendo el tiempo de acceso así como el consumo de ancho de banda. Tambien proporciona un cierto grado de anonimato y seguridad al navegar, puede registrar mucha información, incluyendo las URL solicitadas junto con otra información adicional como la fecha de la petición, versión del navegador y del sistema operativo. Todas las peticiones HTTP son interceptadas por squid y todas las respuestas guardadas en caché. Squid tiene algunas características que pueden facilitar establecer conexiones anónimas. Características tales como eliminar o modificar campos determinados de la cabecera de peticiones HTTP de los clientes. Esta política se establece en la configuración de Squid.

Instalacion y Configuración de Squid en Ubuntu Linux

Empezamos la instalacion de manera sencilla usando apt: sudo apt­get install squid

A continuacion crearemos un fichero con palabras claves que deseamos restringir en el proceso de navegacion: sudo gedit /etc/squid/palabras_restringidas

Cuando se abra escribiremos las palabras que deseamos una por linea, por ejemplo:

Sexo Porno XXX hi5 hotmail

Se pueden añadir las palabras que se deseen, eso ya es cuestion de las politicas que se adopten.

A continuacion editamos el archivo squid.conf:

sudo gedit /etc/squid/squid.conf

Se borra todo el contenido del fichero y escribimos lo siguiente, esto se hace porque el archivo de configuracion tiene varias opciones y lo que se desea hacer es facilitar el trabajo:

visible_hostname inkarri acl all src 0.0.0.0/0.0.0.0 http_port 8080 acl no_permitidos url_regex “/etc/squid/palabras_restringidas” http_access deny no_permitidos

● visible_hostname inkarri #Aqui en esta linea ponemos el nombre del proxy que se mostrara en los avisos al usuario, en este caso el nombre de nuestro equipo.

● acl all src 0.0.0.0/0.0.0.0 #Se permite el acceso a internet a toda la red conectada al proxy.

● http_port 8080 # Puerto de escucha del proxy, en este caso el 8080. ● acl no_permitidos url_regex “/etc/squid/palabras_restringidas” #Se pone el archivo de palabras_restringidas, para que no se acepte la navegacion en estos dominios, vale aclarar que este tipo de comillas(“”) no es el que se utiliza en el fichero de configuracion, por lo tanto no copiar y pegar directamente este contenido al fichero, sino editarlo paso por paso para evitar errores.

● http_access deny no_permitidos #Se deniega la navegacion en estas paginas

A continuacion reiniciamos squid:

sudo /etc/init.d/squid restart Luego de esto configurar el navegador para que acceder a Internet a través del proxy. En Mozilla Firefox por ejemplo se hace lo siguiente:

Editar/Preferencias/Avanzado/Red/Configuración. Seleccionamos a continuación “Configuración manual del proxy” e introducimos la IP y puerto de escucha del proxy.

Por ejemplo aqui tratamos de ingresar a la pagina de hotmail y como la tenemos en la lista de palabras restringidas, nos muestra un mensaje como el siguiente: Mejorando el Filtrado de Paginas Web con SquidGuard

Aunque Squid trabaja con el filtrado bastante bien este método es muy limitado, por lo que podemos incrementar sus funciones mediante el paquete SquidGuard. SquidGuard es un plugin para Squid que incrementa sus funciones y usa una base de datos con miles de direcciones web clasificadas en grupos (pornografía, violencia, publicidad…).

Para instalar SquidGuard hacemos de la misma forma que con Squid:

sudo apt­get install squidguard

A continuación editamos el fichero de configuración de Squid:

sudo gedit /etc/squid/squid.conf y añadimos las siguientes líneas:

http_access allow all redirect_program /usr/bin/squidGuard ­c /etc/squid/squidGuard.conf

Esta última línea es necesaria para conectar Squid con SquidGuard.

Además eliminaremos las líneas que pusimos anteriormente:

acl no_permitidos url_regex “/etc/squid/palabras_no_permitidas” http_access deny no_permitidos A continuación bajamos el archivo que contiene la base de datos con miles de direcciones web cuyo contenido queremos bloquear. Ese archivo se encuentra en la siguiente dirección: http://ftp.tdcnorge.no/pub/www/proxy/squidGuard/contrib/blacklists.tar.gz

Copiamos este archivo en /var/lib/squidguard/db y lo descomprimimos, pero antes debemos cambiar los permisos de este directorio, mejor dicho le cambiamos el dueño y el grupo, de root a nuestro usuario con el que estamos ejecutando el proxy, en mi caso inkarri:inkarri

sudo chown ­R inkarri:inkarri /var/lib/squidguard/db cp blacklist.tar.gz /var/lib/squidguard/db cd /var/lib/squidguard/db tar xzvf blacklists.tar.gz

Despues de esto se ha creado un directorio, llamado blacklists, en el directorio db. Si accedemos a ese directorio veremos que hay una serie de directorios con nombres como ads, aggressive, drugs, porn,etc.

Editamos el fichero de configuración de SquidGuard:

sudo gedit /etc/squid/squidGuard.conf

Borramos todo lo que aparece aqui en este archivo menos las dos siguientes lineas que aparecen casi al principio del archivo:

dbhome /var/lib/squidguard/db lodgir /var/log/squid

Despues añadimos las siguientes lineas: dest porn{

domainlist blacklists/porn/domains urllist blacklists/porn/urls } acl {

default { pass !porn all redirect http://www.google.es } }

De esta forma se prohibe el acceso a los dominios y URLs que se encuentran en los ficheros: porn/domains y porn/urls. Cada vez que se introduzca un dominio o IP en el navegador que se encuentre en uno de estos dos ficheros, Squid bloqueará el contenido de la página y nos redireccionará a www.google.es. Reiniciamos Squid:

sudo /etc/init.d/squid restart

Si probamos directamente nos va a salir un error del tipo:

Debido a que los archivos domains y url que se encuentran en /var/lib/squidguard/db/blacklists/porn no tienen permisos de lectura y escritura, esto lo observamos al ver el archivo log de SquidGuard:

sudo gedit /var/log/squid/squidGuard.log Esto lo solucionamos dandole permisos de lectura y escritura a urls y domains para todos los usuarios.

Para terminar y comprobar el correcto funcionamiento reiniciamos Squid:

sudo /etc/init.d/squid restart

A continuacion escribimos en el navegador una de las direcciones que aparecen en el fichero domains (por ejemplo, ladyboy.tv).

Como anteriormente habia dicho tambien se pueden agregar mas direcciones de paginas que se quieren restringir a los achivos domains y urls, eso ya depende de las politicas de implementacion, ademas tambien se pueden deshabilitar mas tipos de paginas añadiendo al fichero de configuración de SquidGuard, una configuracion parecida a la que ya hemos hecho.