Categorías
General

Como instalar un servidor proxy con filtrado web squid + squidGuard en Debian

squidGuard es un sistema de filtrado web por listas negras, esto quiere decir que tenemos una gran lista de las urls y dominios al que podemos denegar o permitir acceso al usuario, porqué? por que sabemos que hay webs que contienen virus y que hay paginas que se dedican a instalar spyware y también las hay que no son nada productivas en horario laboral, y si las conocemos, ¿porque no evitamos que los usuarios entren? ya se que seguro que cada día salen millones de paginas de este tipo pero como minimo podemos prohibir el acceso a las que ya conocemos.

Las listas negras o blacklist a partir de ahora, las podemos encontrar en internet, las que vamos a utilizar en este manual contiene más de dos millones de dominios de todo tipo, desde pornografía a webmails, las categorías que tu actives en tu instalación es cosa tuya todo depende de donde instales el squid, en este manual se muestra como instalarlas todas y luego que cada uno se desactive las que no necesite.

Primero instalamos el squidguard con sus dependencias

proxy:~# apt-get install squidguard 

Ahora descargamos las blacklist, http://urlblacklist.com en este site podrás encontrar algunas blacklist por categorías yo te recomiendo la bigblacklist que son 20393761 urls

http://urlblacklist.com/cgi-bin/commercialdownload.pl?type=download&file=bigblacklist

El arcchivo que te descarges Ej. bigblacklist.tar.gz lo guardas en el directorio root del servidor proxy.

Ahora en el servidor proxy entramos como root y descomprimimos el archivo

proxy:~# tar xvzf bigblacklist.tar.gz

Movemos el contenido del directorio blacklist al directorio /var/lib/squidguard/db/

proxy:~# mv blacklists/* /var/lib/squidguard/db/

En la configuración del squid /etc/squid/squid.conf tienen que existir estas lineas si no fuera el caso se las añades
Donde se encuentra el suidGuard(Filtrado web) y donde esta su archivo de configuración

Agregar las siguientes dos lineas para Squid 2.5:

redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
redirect_children 20

Agregar las siguientes dos lineas para Squid 2.6 o superior:

url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
url_rewrite_children 20

En las siguientes lineas se muestra el contenido del archivo de configuración del squiqGuard, ubicado en: /etc/squid/squidguard.conf, las lineas de configuración se comentan una por una y al final de esta pagina podrás encontrar el archivo entero sin comentarios para que lo puedas utilizar en tu instalación.

Podemos utilizar el editor de textos nano para modificarlo

proxy:~# nano /etc/squid/squidguard.conf

Aquí es donde guardamos las blacklist

dbhome /var/lib/squidguard/db

Donde se guardaran los logs del squidGuard

logdir /var/log/squidGuard

También puedes limitar el acceso por horario o por ip, es muy intuitivo, tanto que omito cualquier comentario a esta configuración

La configuración del squidguard se basa en estos bloques que nos permite definir cada una de las categorías a las que denegaremos el acceso, solo comentare un bloque, todos los demás son exactamente igual pero indicando la ruta correcta de cada blacklist.
dest porn {
domainlist porn/domains
urllist porn/urls
expressionlist porn/expressions
}

Aquí definimos que blacklist queremos activar, debajo se describe como funciona el bloque

  • dest porn{ <-- el nombre de la acl
  • domainlist <--donde se encuentra la db de los dominios pornos, en porn/domains que es lo mismo que /var/lib/squidguard/db/porn/domains
  • urllist <-- donde se encuentra la db de urls pornos, en porn/urls que es lo mismo que /var/lib/squidguard/db/porn/urls
  • expressionlist <-- donde se encuentra la db de expresiones porno, en porn/expressions que es lo mismo que /var/lib/squidguard/db/porn/expressions
  • }

Cuando tengamos todas las categorías definidas tenemos decirle al squidguard cuales prohibimos y cuales permitimos, en este manual solo prohibimos, pues si, la vida es una mierda y encima te mueres.

acl {
default {
pass !ads !adult !aggessive !antispyware !antispyware !artnudes !astrology
!audio-video !beerliquorsale !beerliquorinfo !blog !chat !childcare
!clothing !culinary !dating !desktopsillies !dialers !drugs !ecommerce
!entertainment all
redirect http://www.babilonics.com/politicausointernet.html
}
}

Estas lineas se explican por si solas pero por si hay alguien que no lo ve las explico a continuación:

  • acl{ <-- Abrimos la acl(access List)
  • default{ <-- el nombre y solo tenemos una
  • pass !ads !adult … <-- solo permitimos el paso a las urls que no estan en estas categorías (!)
  • redirect http://www.babilonics.com/politicausointernet.html <-- Si la url que pide el usuario esta en alguna categoría le mostramos las políticas del uso de internet
  • } <-- cerramos la acl default
  • } <--cerramos todo el bloque acl

Ahora necesitamos dar a la base de datos de squidGuard la propiedad adecuada:

chown proxy:proxy -R /var/lib/squidguard/db/*

y los permisos (todos los archivos 644, todos los directorios 755):

find /var/lib/squidguard/db -type f | xargs chmod 644
find /var/lib/squidguard/db -type d | xargs chmod 755

A continuación será necesario inicializar la base de datos:

proxy:~# squidGuard -C all

Este comando tarda algún tiempo dependiendo de la velocidad de tu maquina, para saber cuanto falta y que esta haciendo el proceso, podemos utilizar un tail en el log del squidGuard.
proxy:~# tail -f /var/log/squid/squidGuard.log
2009-12-05 10:17:56 [2636] init urllist /var/lib/squidguard/db/weapons/urls
2009-12-05 10:17:56 [2636] create new dbfile /var/lib/squidguard/db/weapons/urls.db

De esta forma iremos viendo como crea un dbfile para cada una de las categorías que tengamos definida en el archivo de configuración.

Una vez finalizada la inicialización de la base de datos de squidGuard bastará con reiniciar el squid y ya podemos probar nuestro nuevo y flamante proxy-cache

proxy:~# /etc/init.d/squid restart

En caso de hacer modificaciones a las blacklists será necesario actualizar la base de datos de squidGuard con:

proxy:~# squidGuard -C all

Y recargar la configuración de squid con:

proxy:~# /etc/init.d/squid force-reload

 

Archivo de configuración del squidGuard, en esta configuración se omiten parámetros, que yo no utilizo pero que en tu instalación pueden ser útiles, utiliza el archivo de configuración original para añadir los parámetros que consideres utilizando esta configuración como base:

dbhome /var/lib/squidguard/db
logdir /var/log/squidGuard

dest good {
}

dest local {
}

dest ads {
domainlist ads/domains
urllist ads/urls
expressionlist ads/expressions
}
dest adult {
domainlist adult/domains
urllist adult/urls
}
dest aggessive {
domainlist aggressive/domains
urllist aggressive/urls
}
dest antispyware {
domainlist antispyware/domains
urllist antispyware/urls
}
dest artnudes {
domainlist artnudes/domains
urllist artnudes/urls
}
dest astrology {
domainlist astrology/domains
}
dest audio-video {
domainlist audio-video/domains
urllist audio-video/urls
}
dest beerliquorsale {
domainlist beerliquorsale/domains
}
dest beerliquorinfo {
domainlist beerliquorinfo/domains
}
dest blog {
domainlist blog/domains
urllist blog/urls
}
dest chat {
domainlist chat/domains
urllist chat/urls
}
dest childcare {
domainlist childcare/domains
urllist childcare/urls
}
dest clothing {
domainlist clothing/domains
}
dest culinary {
domainlist culinary/domains
}
dest dating {
domainlist dating/domains
urllist dating/urls
}
dest desktopsillies {
domainlist desktopsillies/domains
urllist desktopsillies/urls
}
dest dialers {
domainlist dialers/domains
urllist dialers/urls
}
dest drugs {
domainlist drugs/domains
urllist drugs/urls
}
dest ecommerce {
domainlist ecommerce/domains
urllist ecommerce/urls
}
dest entertainment {
domainlist entertainment/domains
urllist entertainment/urls
}
dest filehosting {
domainlist filehosting/domains
}
dest games {
domainlist games/domains
urllist games/urls
}
dest gardening {
domainlist gardening/domains
}
dest hacking {
domainlist hacking/domains
urllist hacking/urls
}
dest homerepair {
domainlist homerepair/domains
urllist homerepair/urls
}
dest hygiene {
domainlist hygiene/domains
}
dest instantmessaging {
domainlist instantmessaging/domains
urllist instantmessaging/urls
}
dest jewelry {
domainlist jewelry/domains
}
dest kidstimewasting {
domainlist kidstimewasting/domains
urllist kidstimewasting/urls
}
dest marketingware {
domainlist marketingware/domains
}
dest medical {
domainlist medical/domains
urllist medical/urls
}
dest mixed_adult {
domainlist mixed_adult/domains
}
dest naturism {
domainlist naturism/domains
urllist naturism/urls
}
dest onlinegames {
domainlist onlinegames/domains
urllist onlinegames/urls
}
dest pets {
domainlist pets/domains
urllist pets/urls
}
dest phishing {
domainlist phishing/domains
urllist phishing/urls
}
dest porn {
domainlist porn/domains
urllist porn/urls
expressionlist porn/expressions
}
dest proxy {
domainlist proxy/domains
urllist proxy/urls
}
dest radio {
domainlist radio/domains
urllist radio/urls
}
dest ringtones {
domainlist ringtones/domains
}
dest sexuality {
domainlist sexuality/domains
urllist sexuality/urls
}
dest shopping {
domainlist shopping/domains
}
dest spyware {
domainlist spyware/domains
urllist spyware/urls
}
dest violence {
domainlist violence/domains
urllist violence/urls
}
dest virusinfected {
domainlist virusinfected/domains
urllist virusinfected/urls
}
dest warez {
domainlist warez/domains
urllist warez/urls
}
dest weapons {
domainlist weapons/domains
urllist weapons/urls
}

acl {
default {
pass !ads !adult !aggessive !antispyware !antispyware !artnudes !astrology !audio-video !beerliquorsale !beerliquorinfo !blog !chat !childcare !clothing !culinary !dating !desktopsillies !dialers !drugs !ecommerce !entertainment all
redirect http://www.nuestroservidor.com/politicausointernet.html
}
}
 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *