problema con Squid3 + Dansguardian a la hora de trabajar con rangos de IPs (grupos de usuarios) [SOLUCIONADO]

Imagen de Arqus
0 puntos

Hola a todos.

Tengo montado un servidor con Ubuntu Server 10.04 LTS en mi centro y dos interfaces de red: eth0 que conecta con el router, y eth1 que conecta con toda mi red local.

El servidor ofrece servicios de DHCP, DNS (con bind9), Web (con Apache2), cortafuegos con Shorewall, proxy-web con Squid3 y filtro de contenidos para el proxy con Dansguardian.

Tengo a Squid escuchando en el puerto 3128 como proxy transparente y a Dansguardian escuchando en el puerto 8080. He configurado Shorewall para que todas la peticiones web (puerto 80) de los clientes de la LAN sean redirigidas al puerto 8080, para que las capture Dansguardian. Y Dansguardian está configurado adecuadamente para que le pase las solicitudes al puerto 3128 de Squid.

El problema reside en que si en Squid3 creo una ACL para un grupo de usuarios por IPs, por ejemplo el aula de informática, para que no tenga acceso a determinadas páginas, no me funciona.

Sé que puedo poner las URLs a evitar en Dansguardian pero eso dejaría sin acceder a esas webs a toda la LAN. Y lo que quiero es restringir determinadas webs solo a los alumnos.

Tambien puedo poner en Dansguardian un rango de IPs que estarán excluidas del filtrado (por ejemplo la de los profesores) pero entonces no filtrarían ninguna web a los profesores y eso tampoco es deseable.

Asi que lo que hago es definir ACLs en Squid3, una sería el archivo de texto con las webs a evitar para los alumnos (listanegra1), y otra el archivo de texto con las IPs de los alumnos (alumnos). Y luego pongo el típico
http_access deny alumnos listanegra1

Pero no funciona y sospecho que es porque dansguardian recibe la solicitud web de los clientes y se las pasa a Squid pero no le dice cual es la IP de origen, y entonces Squid no interpreta que la solicitud es de una máquina de los alumnos y no le aplica la restricción.

¿Existe alguna forma de configurar Squid o Dansguardian para resolver esto? He leido que Dansguardian puede trabajar con grupos pero no encuentro tutoriales o ayuda al respecto. ¿Sería esa una solución?

Gracias de antemano y saludos.
Arqus

Imagen de Arqus
+1
0
-1

Ya lo tengo solucionado.

He activado la función de grupos en dansguardian. He creado dos grupos (uno para profesores y otro para alumnos). Para ello creo dos carpetas en /etc/dansguardian llamadas f1 y f2 y copio ahí toda la lista de archivos que usa dansguardian para el filtrado:

cp -r /etc/dansguardian/lists /etc/dansguardian/f1
cp –r /etc/dansguardian/lists /etc/dansguardian/f2

Muevo dichas carpetas a la carpeta lists para tenerlo todo mas ordenadito:

mv /etc/dansguardian/f1 /etc/dansguardian/lists/
mv /etc/dansguaridian/f2 /etc/dansguardia/lists/

Creo el archivo de configuración para el grupo segundo a partir del primero que ya viene creado por defecto en dansguardian:

cp /etc/dansguardian/dansguardianf1.conf /etc/dansguardian/dansguardianf2.conf

Modifico los dos archivos de configuración (dansguardianf1.conf y dansguadianf2.conf) para que cada uno apunte a sus listas de filtrado correspondientes (uno a las de la carpeta f1 y otro a las de f2 que creamos anteriormente).

Modifico el archivo de configuración principal de dansguardian, el dansguardian.conf para poner:

filtergroups=2 (asi le indico que hay dos grupos)

y descomentar

authplugin = '/etc/dansguardian/authplugins/ip.conf'

ya que en ip.conf está la lista de grupos. Si abirmos ip.conf veremos que apunta a otro archivo:
/etc/dansguardian/lists/authplugins/ipgroups
asi que nos dirigimos allí y lo editamos para poner en él la lista de IPs de cada grupo. Se pueden poner IPs individuales, rangos o toda una subred, por ejemplo:

192.168.1.12 = filter1
192.168.1.13-192.168.1.56 = filter2
192.168.2.0/255.255.255.0 = filter1

Ahora ya editamos los archivos de los filtros de cada grupo, f1 y f2, por ejemplo bannedsitelist, y reiniciamos dansguardian.

Ahora el problema es asignar horarios pero creo que se puede activar en Squid una opción sobre el forwarded para que sepa leer las IPs originales que le pasa Dansguardian y que vuelvan a funcionar las ACL en squid. Mañana lo pruebo en el trabajo a ver.

Espero que esta información le sea útil a alguien.
Saludos.

+1
0
-1
Imagen de Firecold
+1
0
-1

lo puedes hacer solo con squid sin utilizar dansguardian, definiendo reglas con acls por ejemplo:

acl alumnos src "/etc/squid3/alumnos"
acl profesores src "/etc/squid3/profesores"
acl webloqueadas url_regex -i "/etc/squid3/sitiosdenegados"

#haciendo la aclaración que tienes que crear tres archivos en /etc/squid3/ uno llamado profesores, donde irán las ips de los que no quieres un limite, otro llamado alumnos donde irán las ips de los que quieres limitar, y webloqueadas donde escribirás las web que quieras bloquear.

#habilitándolos con esto, donde permites profesores y permites alumnos pero limitando el acceso a las paginas descritas en webloqueadas, el ! sirve para denegar.
http_access allow profesores
http_access allow alumnos !webloqueadas

esta es una forma de hacerlo sin tanta configuración sin usar aparte otro programa pudiéndolo hacer solo con uno, con squid también puedes limitar las descarga de ciertos archivos por si te interesa ahondar mas, espero qeu te sirva.

+1
0
-1