DansGuardian: filtro de contenidos Imprimir
SOFTWARE - General
Martes, 20 Novembro 2007 13:14
There are no translations available.

Descubre la utilidad DansGuardian, como un filtro de contenido de sitios web muy potente..

DansGuardian: filtro de contenidos

1 Introducción

Presentamos y estudiamos la utilidad DansGuardian (http://dansguardian.org/) como un filtro de contenido de sitios web muy potente que trabaja conjuntamente con el servidor proxy SQUID, u otro proxy caché similar, presente en la red local.

DansGuardian se sitúa o actúa entre el navegador cliente y el proxy, interceptando y modificando la comunicación entre ambos. De esta forma facilita la tarea de filtrado de páginas visitadas por el usuario desde el equipo cliente, cuya utilización puede ser de especial interés en el aula, e incluso en el propio domicilio.

2 Características de DansGuardian

La herramienta DansGuardian es código abierto, está desarrollada en C++ y permite una configuración flexible adaptándose a las necesidades del usuario.

Al instalar el paquete la configuración por defecto ya limita las visitas a páginas prohibidas para menores, pero dispone de gran cantidad de archivos de configuración para llevar a cabo un ajuste del servicio mas personalizado.

El mecanismo es el siguiente: los clientes mediante sus navegadores web hacen peticiones de páginas que son recibidas por DansGuardian y sólo son redireccionadas al servidor proxy SQUID aquellas que superan la fase de filtrado.

cliente web -> DansGuardian -> Squid -> servidor

 

 

En realidad DansGuardian se ejecuta como un demonio independiente del proxy, acepta peticiones en el puerto 8080 y las redirecciona al proxy SQUID, que escucha en el puerto 3128.

Por lo tanto, cuando una petición entra por el puerto 8080, DansGuardian la filtra y la pasa al proxy SQUID por el puerto 3128. Es importante, en consecuencia, que ningún otro servicio esté utilizando el puerto 8080.



Si el resultado del filtrado (dependiendo de los filtros configurados) es una denegación de acceso a una determinada página web se muestra al usuario el mensaje correspondiente al 'Acceso Denegado'.

Si DansGuardian está en la máquina que hace de cortafuegos y se configura un proxy transparente1 en SQUID, habrá que redireccionar todo el tráfico saliente en el cortafuegos del puerto 80 al puerto 8080. Es decir, se capturan todas las peticiones que se hagan a un servidor http (petición de páginas web) y se envían a DansGuardian (8080) para que se encargue del filtrado. En el apartado 3.5 se incluye la regla Iptables asociada a esta acción.

En realidad el proxy transparente requiere configurar el cortafuegos para que reenvíe todas las peticiones que se hagan a un puerto 80 hacia el puerto 3128 que utiliza SQUID, pero como se ha interpuesto DansGuardian entre ambos, es éste quien recibe la petición y la filtra.

La instalación y configuración se debe hacer como usuario administrador root o como un usuario 'sudo'2.

En el caso de acceder a páginas seguras que utilizan el protocolo https (puerto 443) también deberán ser redirigidas.

3 Instalación y configuración básica

3.1 Instalación de SQUID

Con la herramienta Synaptic (Sistema -> Administración -> Synaptic) instalar la versión disponible en el repositorio de Edubuntu, que es la 2.6.5.

Si durante la instalación del paquete aparece el mensaje “FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname' ”, quiere decir que el usuario debe incluir en el archivo de configuración /etc/squid/squid.conf la directiva visible_hostname y relanzar el servicio. La aplicación se ha instalado correctamente pero no se ha podido lanzar el servicio por este motivo.

$sudo gedit /etc/squid/squid.conf

visible_hostname nombre_de_la_maquina

Salir salvando los cambios y relanzar el servicio:

$sudo /etc/init.d/squid restart

3.2 Instalación de DansGuardian

Para instalar el paquete Ubuntu de DansGuardian se debe tener disponible el repositorio Universe. Se puede comprobar que está disponible utilizando la herramienta Synaptic y con ella buscar dicho paquete y proceder a su instalación.

La versión disponible es la 2.8.0. La figura siguiente muestra el paquete ya instalado.



 

DansGuardian también puede ser utilizado como antivirus actuando conjuntamente con Clamav, pero esta configuración no es el objetivo del presente artículo. Es posible que si no se dispone de clamav en el equipo el sistema devuelva algún mensaje de advertencia de esta situación.

3.3 Configuración de DansGuardian

El archivo de configuración de DansGuardian es /etc/dansguardian/dansguardian.conf. Para editar dicho archivo ir a: Aplicaciones -> Accesorios -> Editor de textos que abre la aplicación gedit para modificar la configuración por defecto de DansGuardian.

Como se trata de un archivo de configuración del sistema sólo un usuario sudo puede hacerlo, por lo que, al editarlo desde el entorno gráfico, no es posible grabar las modificaciones hechas sobre él. Una solución es ejecutar desde una terminal de texto la siguiente orden:

$sudo gedit /etc/dansguardian/dansguardian.conf

Pasos para la configuración:

  1. Establecer la línea que contiene la directiva UNCONFIGURED como un comentario. Para ello añadir al principio de la línea el carácter '#'.

    #UNCONFIGURED - Please remove this line after configuration

  2. Si no se está trabajando con el antivirus modificar la línea correspondiente desactivando la opción y comentar la indicada:

    virusscan = off

    #virusengine = 'clamav'

  3. En la sección 'Network Settings' comprobar que están las líneas siguientes:

    filterport = 8080
    proxyip = 127.0.0.1
    proxyport = 3128

    Esta sería la configuración para una máquina aislada, también llamada standalone o desktop. En el caso de tratarse de un aula con varias máquinas cliente que salen a Internet a través de un servidor de aula, habría que modificar el valor dado en proxyip por la dirección IP de la tarjeta de red del servidor que escucha dentro del aula.

  4. Modificar el idioma por defecto. Para ello sustituir el inglés por 'spanish' y dejar las líneas como sigue:

    languagedir = '/etc/dansguardian/languages'

    # language to use from languagedir.

    language = 'spanish'

  5. Salir de gedit salvando los cambios.

  6. Reiniciar el servicio dansguardian ejecutando la orden:

$sudo /etc/init.d/dansguardian restart

Para hacer una primera prueba de funcionamiento habrá que cambiar la configuración del navegador para usar como proxy la dirección del servidor pero con el puerto 8080.

En el caso de que se trate de una máquina aislada la dirección del proxy será la propia máquina, que deberá tener instalado SQUID.

Ahora ir a: Aplicaciones -> Internet -> Navegador web Firefox y en la opción de menú Editar -> Preferencias ir en la pestaña Red a Configurar la conexión. Por defecto la conexión a Internet es directa y habrá que dejarla como indica la figura. También es válido utilizar como dirección IP la propia de la tarjeta de red y no la interfaz de loopback (lo).




Si ahora como prueba, el usuario hace una búsqueda con la palabra 'chicas' en Google y accede al primer enlace, se muestra la siguiente ventana:



Al intentar acceder a alguna dirección 'inapropiada' obtendremos el mensaje de aviso correspondiente.

    3.4 Configuración de SQUID

    Desde el punto de vista de SQUID, DansGuardian es como un cliente web 'normal', pero lo que no debe hacer SQUID es permitir que ningún navegador se conecte directamente a él 'puenteando' a DansGuardian.

    Para ello el acceso al puerto de SQUID 3128 debe estar bloqueado mediante cortafuegos o mediante una regla de IPTABLES.

    En realidad SQUID no requiere ningún tipo de configuración, a menos que funcione como proxy transparente. La ventaja de utilizar un proxy transparente es que funciona perfectamente en entornos heterogéneos, es decir, con máquinas Windows, Linux, MAC, etc, pero tiene el inconveniente de que requiere una configuración 'especial' en SQUID.

    En el artículo se trabaja con la redirección de puertos en el servidor (si lo hay) o en la máquina aislada, y que ya se ha comentado. (puerto 3128 -> puerto 8080). El motivo es que el método 'proxy transparente' requiere conocimientos avanzados de SQUID.

    Pero la redirección de puerto no impide que el navegador web pueda 'saltarse' el filtro de contenido simplemente modificando las preferencias. Es necesario, entonces, impedir la salida directa a Internet. Para ello el método mas seguro es la utilización de reglas de IPTABLES.

    3.5 Utilización de IPTABLES

    Para evitar que los usuarios se salten el filtro, tendremos que usar IPTABLES.

    Una regla sencilla que fuerza a pasar por el filtro a las peticiones que vienen por la interfaz interna (eth0) sería:

    #iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3128 -j REDIRECT --to-port 8080

    La regla indica que, utilizando la tabla nat, todas las peticiones que vengan desde eth0 y que tengan como puerto destino el 3128 (SQUID) sean redirigidas al puerto 8080 (dansguardian).

    Esta regla es ineludible.

    Si se tiene SQUID configurado para proxy transparente habrá que redireccionar todo el tráfico al puerto 80 hacia el puerto 8080. Y en este caso, podemos añadir también:

    #iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

    Pueden convivir ambas reglas IPTABLES.

    4 Configuración avanzada: métodos de filtrado

    DansGuardian utiliza un sistema de peso de las frases (/etc/dansguardian/phraselists) para mejorar el objetivo de bloqueo y permite filtrar por un gran número de criterios.

    Los métodos utilizados son:

    1. Realizar filtros utilizando el sistema de etiquetas PICS (Platform for Internet Content Selection).

    2. Filtrar comprobando que las extensiones de los archivos y los tipos MIME no estén en una lista de extensiones y tipos MIME prohibidos.

    3. Filtrar de acuerdo con las URLs, incluyendo expresiones regulares.

    4. Trabajar con listas blancas y listas negras.

    Compara el contenido de las páginas con el de una lista de palabras prohibidas. Esta lista contiene palabras asociadas con la pornografía y otros contenidos no deseados. Todos estos métodos se apoyan en la utilización de unos archivos de filtros que almacenan frases, palabras, URLs, etc, cuyo acceso queda prohibido.

    Archivos de filtros en /etc/dansguardian/

    Archivo

    Descripción

    bannedphraselist

    contiene una lista de frases prohibidas. Las frases deben estar entre <>. Por defecto incluye una lista ejemplo en inglés. Las frases pueden contener espacios. Se puede también utilizar combinaciones de frases, que si se encuentran en una página, serán bloqueadas.

    bannedmimetypelist

    contiene una lista de tipos MIME prohibidos. Si una URL devuelve un tipo MIME incluido en la lista, quedará bloqueada. Por defecto se incluyen algunos ejemplos de tipos MIME que serán bloqueados.

    bannedextensionlist

    contiene una lista de extensiones de archivos no permitidas. Si una URL termina con alguna extensión contenida en esta lista, será bloqueada. Por defecto se incluye un archivo ejemplo que muestra como denegar extensiones.

    bannedregexpurllist

    contiene una lista de expresiones regulares3 que si se cumplen sobre la URL ésta será bloqueada.

    bannedsitelist

    contiene una lista de sitios prohibidos. Si se indica un nombre de dominio todo él será bloqueado. Si se quiere sólo bloquear partes de un sitio hay que utilizar el archivo bannedurllist. También se pueden bloquear los sitios indicados exeptuando los dados en el archivo exceptionsitelist. Existe la posibilidad de descargarse listas negras tanto de sitios como de URLs y situarlas en los archivos correspondientes. Están disponibles en http://dansguardian.org/?page=extras.

    bannedurllist

    permite bloquear partes específicas de un sitio web. bannedsitelist bloquea todo el sitio web y ésta sólo bloquea una parte.

    banneduserlist

    lista de los nombres de usuario que estarán bloqueados.


    Archivos de excepciones en /etc/dansguardian/

    Archivo

    Descripción

    exceptionsitelist

    contiene una lista de los nombres de dominio que no serán filtrados Es importante tener en cuenta que el nombre de dominio no debe incluir http:// o www.

    exceptioniplist

    contiene una lista de las direcciones IP de los clientes a los que se permite el acceso sin restricciones. este sería el caso de la dirección IP del administrator.

    exceptionuserlist

    lista de los nombres de usuarios que no serán filtrados en el caso de utilizar control de acceso por usuario. Requiere autenticación básica o "ident".

    exceptionphraselist

    lista de las frases que, si aparecen en una página web, pasará el filtro.

    5 Clasificación de contenidos

    Existen diferentes sistemas de clasificación de contenidos. De ellos es muy conocido el sistema de etiquetas PICS (Plataforma para la Selección de Contenido de Internet) que permite que cualquiera pueda etiquetar un contenido. PICS utiliza dos métodos de clasificación:

    • Clasificación llevada a cabo por los propios creadores de las páginas web.

    • Clasificación llevada a cabo por terceros: en este caso la clasificación no está contenida en la propia página, sino en archivos o en servidores a los que debe acceder el usuario.

    El archivo /etc/dansguardian/pics permite al usuario hacer un ajuste 'a la carta' del filtro de PICS. El archivo está estructurado en base a secciones PICS y cada sección contiene una descripción de las configuraciones permitidas. Las configuraciones predeterminadas de DansGuardian están pensadas para menores. Por ejemplo, los chats no están permitidos sino están moderados.

    En el caso de la sección ICRA, valor 0 significa que no hay nada permitido en esta categoría y valor 1 está permitido.

    Por ejemplo:

    ICRAmoderatedchat = 1 #permite el chat moderado

    La sección RSAC (versión antigua de ICRA, http://www.rsac.org/) contiene valores que varían de 0 (nada permitido) pasa por 2 (valor predeterminado) hasta 4, que permite todo en la categoría.

    RSACviolence = 2

    La sección evaluWEB utiliza un sistema de calificación del tipo de las películas inglesas:

    • 0 = U (Universal, para todas las edades)

    • 1 = PG (recomendada la presencia de los padres)

    • 2 = 18 (sólo para mayores de 18 años)

    La sección SafeSurf (http://www.safesurf.com/) es parecida a RSAC, pero el rango de categorías es mas amplio (desde 0 para filtrar todo, hasta 9 para permitir todo).

    SafeSurfintolerance = 3

    Otras secciones son Weburbia (http://www.weburbia.com/safe/index.shtml), Vancouver Webpages (http://vancouver-webpages.com/VWP1.0/), etc, que utilizan otros sistemas de clasificación.

    6 Archivos adicionales de filtros para DansGuardian

    Además de las listas incluidas por defecto el usuario puede encontrar en http://urlblacklist.com/ archivos con filtros compatibles con DansGuardian organizados por categorías.

    Vamos a descargar el archivo bigblacklist.tar.gz y lo copiamos a /etc/dansguardian. Ahora lo descomprimimos con:

    $sudo tar xvzf bigblacklist.tar.gz

    Por último modificamos los archivos de filtros /etc/dansguardian/bannedsitelist y /etc/dansguardian/bannedurllist para activar los filtros que nos interesen.

    El usuario puede encontrar también información sobre filtros adicionales en http://dansguardian.org/?page=blacklist.

    7 Interfaz gráfica

    En la distribución Edubuntu 7.04 Feisty Fawn no se incluye ninguna interfaz gráfica para la configuración de los filtros activos para DansGuardian. No hay otra opción que editar 'a mano' los archivos de filtros y quitar o añadir aquellas palabras, direcciones, expresiones regulares, etc, que le interese filtrar al usuario.

    Existe una distribución Linux, basada en Edubuntu 7.04, llamada Ubuntu CE v.3.2 (Ubuntu Christian Edition http://www.christianubuntu.com) que incluye una herramienta para esta configuración llamada dansguardian-gui-ubuntu.

    Esta herramienta requiere un conjunto de aplicaciones y librerías adicionales (gambas-runtime, qt, tinyproxy, etc) que no están incorporadas, de serie, en la versión de Feisty que utiliza GNOME y que es la que se está utilizando como base de esta serie de artículos.

    Para su utilización hay que descargar de dicha web el archivo install_dansguardian_gui_feisty.tar.gz que hace una instalación de la herramienta con todas sus dependencias, pero que sólo es válido para la distribución Edubuntu 7.04 Feisty que es la utilizada en esta sección.

    Al desempaquetar el archivo tar crea una carpeta install_dansguardian_gui_feisty con un archivo ReadMe y otro install_me. Seguir las instrucciones para la instalación. Hay que tener en cuenta que la instalación de esta herramienta deshabilita la utilización del proxy caché SQUID y lanza uno que incorpora ella llamado tinyproxy.

    Es necesario rearrancar el sistema después de la instalación para que los cambios sean efectivos. También hay que comprobar si las modificaciones hechas por el usuario en el archivo de configuración de DansGuardian permanecen. Por ejemplo, comprobamos que, de nuevo, ha cambiado el idioma a inglés.

    Para acceder a la interfaz hay que ir a Sistema -> Administración -> Configure Parental Controls y se muestra la ventana siguiente:



    La herramienta dispone de dos pestañas Basic y Advanced, desde donde el usuario puede configurar el nivel de filtro deseado (por defecto es estricto), activar y desactivar el servicio dansguardian, bloquear o no el proxy Firefox, configurar listas negras, listas blancas, etc.

    En realidad lo que hace es editar los archivos de configuración explicados en el apartado 4 y permitir las modificaciones sobre los valores actuales. Salvando los cambios desde el editor tenemos disponibles los nuevos filtros.

    Al 'Salvar y Salir' se desactiva y vuelve a activar el servicio para obligar a que lea sus archivos de configuración modificados.

    La utilización de esta interfaz facilita mucho la tarea de filtrado ya que no se requiere ningún tipo de configuración adicional, ni regla de IPTABLES, etc, y por tanto resulta especialmente interesante para aulas de infantil y primaria así como para el domicilio familiar.

    Hay que tener en cuenta que la instalación de la aplicación DansGuardian junto con su proxy e interfaz gráfica puede realizar modificaciones en el sistema, ya que es un paquete que está preparado para trabajar sobre Edubuntu Feisty Fawn 7.04, pero que no va integrado de serie ni incluido en los repositorios oficiales de Ubuntu.

    Si el usuario quiere llevar a cabo la desinstalación completa de la herramienta debe ejecutar las siguientes órdenes:

    $apt-get --purge remove --assume-yes "dansguardian"

    $apt-get --purge remove --assume-yes "tinyproxy"

    $apt-get --purge remove --assume-yes "clamav"

    $apt-get --purge remove --assume-yes "firehol"

    $apt-get --purge remove --assume-yes "dansguardian-gui-ubuntu"

     

     

     

     

     

     

    Con ellas eliminamos completamente la propia herramienta así como el cortafuegos, el proxy, el antivirus y la interfaz gráfica que incorpora.

    8 Conclusión

    A lo largo del artículo se ha explicado como descargar e instalar la herramienta DansGuardian cuyo objetivo es el filtrado de páginas web en relación a un conjunto de criterios. Se trata de un tema de gran interés tanto a nivel familiar como a nivel escolar ya que, con una herramienta de este tipo es posible llevar un mejor control sobre el tipo de contenidos web a los que permitimos acceder a nuestros menores.

    Siguiendo el criterio de acercamiento del usuario al mundo GNU/Linux y dado que Ubuntu no incluye una interfaz gráfica para la gestión de filtros de contenidos, el artículo hace una sencilla descripción acerca de la instalación y uso de la interfaz gráfica de DansGuardian que ha adaptado la distribución Ubuntu CE v.3.2 y que funciona perfectamente en Edubuntu Feisty 7.04.

    El usuario puede comprobar la sencillez de uso de dicha interfaz que permite la configuración personalizada de todos los archivos de filtros incluidos.

    [1] Es un proxy que no necesita ninguna configuración especial en los navegadores y se llama transparente porque el navegador no sabe que lo está usando, es transparente para él.

    [2] Usuario sudo: se trata de un usuario con privilegios de administrador para determinadas tareas del sistema.

    [3] Expresión regular (regexp): son una herramienta para definir patrones de búsqueda y reemplazo. (www.zonasiete.org)