Thursday, December 30, 2010

Multifiltro de contenidos en Dansguardian [Por usuarios o IP]


Algo muy trivial en una red empresarial es el filtrado de contenido por usuarios o IP, y para realizar esta tarea en Dansguardian es necesario configurarlo para que soporte varios filtros, y asignarle a cada usuario o IP un filtro, el cual estará definido para cada departamento o grupo de usuarios en particular, esta guia que les presentare es una continuación de la serie de guias relacionadas con Dansguardian y Squid que he publicado a través del tiempo, asi que si no tienes conocimiento sobre Dansguardian y Squid, te recomiendo que te leas las siguientes guias en este orden:


1) Instalación y configuración básica de squid
2) Instalación y configuración de Dansguardian
3) Configuración de Dansguardian en modo transparente [Opcional]


Teniendo una base sobre Squid y Dansguardian vamos a proceder con la guia.


Lo primero que tenemos que hacer para empezar a configurar es saber que nos conviene más, el filtrado de contenidos por IP, o el filtrado por usuarios (Usando autentificacion básica nsca), en esta guía abarcaremos los dos tipos de filtrado (Existen mas tipos que por el momento no abarcaremos como: Ident, NTLM, etc), y empezaremos por el filtrado por usuarios.


Filtrado por usuarios


Para el filtrado por usuarios utilizaremos la autentificación básica NSCA, y para activar este tipo de autentificación tenemos que configurar squid como hemos visto anteriormente en el primer tutorial sobre Squid básico, aqui resumiremos los pasos:


1) Creamos el archivo que contendrá el usuario y contraseña:


[ramphis@srvlinux /etc/dansguardian]# touch /etc/squid/users

2) Creamos algunos usuarios:

[ramphis@srvlinux /etc/dansguardian]# htpasswd /etc/squid/users ramphis
[ramphis@srvlinux /etc/dansguardian]# htpasswd /etc/squid/users carolina

[ramphis@srvlinux /etc/dansguardian]# htpasswd /etc/squid/users wilfredo

3) Editamos el archivo /etc/squid/squid.conf, añadiendo las siguientes lineas:

auth_param basic /usr/lib/squid/ncsa_auth /etc/squid/users
auth_param basic realm Mensaje que aparecera al pedir autorizacion
auth_param basic basic credentialsttl 2 hours

En la primera linea vemos como definimos el archivo que creamos en los pasos anteriores, en la segunda linea definimos el mensaje que aparecera al pedir la autentificación, y en la tercera el tiempo para volver a pedir autentificación.

4) Creamos nuestra lista de control para la autentificación:

acl password auth_proxy REQUIRED

5) Le agregamos la siguiente linea en nuestro http_access:

http_access allow localnet password

http_access deny all

Guardamos el fichero /etc/squid/squid.conf, y reiniciamos el servicio squid.

El siguiente paso sera configurar Dansguardian para que use la autentificación configurada previamente, y para ello simplemente editamos el archivo /etc/dansguardian/dansguardian.conf y descomentamos la siguiente linea, quedando asi:



authplugin = '/etc/dansguardian/authplugins/proxy-basic.conf'
#authplugin = '/etc/dansguardian/authplugins/proxy-digest.conf'
#authplugin = '/etc/dansguardian/authplugins/proxy-ntlm.conf'
#authplugin = '/etc/dansguardian/authplugins/ident.conf'
#authplugin = '/etc/dansguardian/authplugins/ip.conf'

De esta manera, ya Dansguardian solicitara el usuario y contraseña definido anteriormente, claro despues de reiniciar el servicio Dansguardian.

Ahora vamos a configurar Dansguardian para que soporte multifiltrado, en nuestro caso nos vamos a limitar a 2 filtros, hay que tener en cuenta que mientras mas filtros tengamos, mas memoria y procesador utilizara nuestro querido Dansguardian.

Para realizar esta tarea editamos el archivo de configuración /etc/dansguardian/dansguardian.conf y modificamos el siguiente parametro:


filtergroups = 2


En nuestro caso definimos 2 filtros, Dansguardian soporta hasta 99 filtros, luego guardamos el fichero de configuración y reiniciamos el servicio dansguardian.


El siguiente paso sera copiar el fichero dansguardianf1.conf con el nombre dansguardianf2.conf, estos archivos contienen la configuración de cada filtro, si estuviesemos mas de 2 filtros, deberiamos copiar mas veces el archivo dansguardianf1.conf con nombres ascendentes (Ej: dansguardianf3.conf, dansguardianf4.conf, etc.) dependiendo de la cantidad de filtros que tengamos.


Luego de tener nuestros dos archivos dansguardianf1.conf y dansguardianf2.conf, copiamos la carpeta lists con el nombre lists2:


[ramphis@srvlinux /etc/dansguardian]# cp -r lists lists2


Luego entramos a el archivo dansguardianf2.conf, y modificamos las rutas que apuntan a /etc/dansguardian/lists/, por la ruta /etc/dansguardian/lists2 y modificamos el parametro groupmode, a el cual le pondremos el numero dos, especificando que es el groupfilter numero dos.


Si utilizamos el editor de textos vi, podemos sustituir las rutas /etc/dansguardian/lists por /etc/dansguardian/lists2 en modo comando con el siguiente comando:


:%s/lists/lists2/g


Quedando el fichero de esta manera:

# Content filtering files location
bannedphraselist = '/etc/dansguardian/lists2/bannedphraselist'
weightedphraselist = '/etc/dansguardian/lists2/weightedphraselist'
El fichero continúa....


Para finalizar vamos a asignarle el filtrado a cada usuario, y para ello editamos el archivo /etc/dansguardian/lists/filtergroupslist, el cual esta definido en el parametro filtergroupslist de el archivo /etc/dansguardian.conf.

Editamos el archivo /etc/dansguardian/lists/filtergroupslist añadiendo las siguientes lineas:

ramphis=filter1
wilfredo=filter1
carolina=filter2




Donde esos nombres serian los usuarios creados previamente y el filtro que se le asignara, ya sabemos que la carpeta lists corresponde a el filtrado 1, y que la carpeta lists2 corresponde a el filtrado 2, solo basta modificar su contenido a nuestro antojo.


Solo basta reiniciar el servicio de dansguardian y probar...


Filtrado por IP

El filtrado por IP es mucho mas simple que por autentificación, suponiendo que ya tenemos creados los dos grupos, simplemente tenemos que editar el archivo /etc/dansguardian/dansguardian.conf, y descomentar el parametro siguiente (Recuerda comentar nuevamente la linea que fue descomentada previamente).

#authplugin = '/etc/dansguardian/authplugins/proxy-basic.conf'
#authplugin = '/etc/dansguardian/authplugins/proxy-digest.conf'
#authplugin = '/etc/dansguardian/authplugins/proxy-ntlm.conf'
#authplugin = '/etc/dansguardian/authplugins/ident.conf'
authplugin = '/etc/dansguardian/authplugins/ip.conf'



Luego editamos el archivo /etc/dansguardian/lists/authplugins/ipgroups para definir las ip o rango de ip que pertenecerán a un grupo determinado, por ejemplo para definir el filtro 1 a la IP 192.168.1.10, añadimos a este fichero:


192.168.1.10 = filter1


Para añadir el rango de red 192.168.1.1 a 192.168.1.10 al filtro 2, añadimos:


192.168.1.1-192.168.1.10 = filter2


Para añadir una red completa al filtro 1, añadimos:


192.168.1.0/255.255.255.0 = filter1


Y así sucesivamente, guardamos el fichero y reiniciamos el servicio; tendremos nuestro querido Dansguardian configurado para filtrar por IP.

Videotutorial de el Multifiltro por IP:



Eso es todo por hoy, espero que les haya gustado, hasta la próxima.


Saludos.

24 comentarios:

Anonymous said...

Hola, excelente articulo.

Te quería consultar si conoces algún panel de control , donde yo se lo pueda dar al cliente y que cada uno se maneje su perfil de forma individual, sin afectar al resto.

Anonymous said...

Buen dia amigo, primero felicitarte por tu post en verdad ayuda mucho. pero tengo una duda, realizo el proceso al pie de la letra para el filtro de contenido por IP. pero cuando indico el filtro a la que pertenece al ip no me toma la configuración del dansguardianf2.conf mas cuando le coloco a esa ip la configuración del dansguardianf1.conf si me toma las restricciones si me puedes echar una mano bienvenida sera gracias

Anonymous said...

Hola, muy buen post, tengo exactamente el mismo problema que el comentario anterior, ya hice todo, pero los perfiles no me los reconoce cuando hago el filtrado por IP, solo reconces el dansguardianf1.conf, pero los demás no. Estoy muy frustrado porque es lo único que falta para que funcione como lo necesito.

Gracias.

Ramphis Che said...

Probaron si por usuario les funciona?? les pregunto para descartar que tengan algun problema en la configuracion,

Saludos,

Anonymous said...

¿Si por usuario funciona que podría ser?

Ramphis Che said...

Hermano estas utilizando que distribución de linux? porque me late que puede ser un bug en el paquete que estas instalandod de Dansguardian, ya que acabo de realizar el escenario nuevamente y a mi me filtra por IP sin problemas...

Voy a tratar de hacer un videotutorial explicando bien el proceso

Anonymous said...

Muchas gracias por retomar este post. Estoy usando Ubuntu Server 12.04.1 LTS y en el mismo instalé el Dansguardian y el Squid. Todo funciona perfectamente, entiendo bien cada cosa, sin embargo justo esa parte de los grupos no funciona, ¿me recomiendas usar la última versión que acaba de salir de Ubuntu Server la 12.10? Podría utilizar Debian o alguna basada en Debian.

Ramphis Che said...

Yo te recomendaría utilizar CentOS, es el que utilizo para montar mis servicios,

Saludos,

Anonymous said...

Gracias, voy a intentar con CentOS y también con el fork de Dansguardian, MinD. Ojalá de verdad puedas hacer el videotutorial.

Saludos.

Ramphis Che said...

Si hermano, cuenta con eso ;)

Anonymous said...

Qué tal, pues ya he probado de todo y no consigo que funcione. Bueno, estoy usando las últimas versiones estables de todo: squid3(version 3.1.19) y dansguardian (version 2.10.1.1), todo funciona perfectamente, pero cuando quiero hacer el filtrado por IP con 2 grupos diferentes, todo me lo toma siempre como si estuviera en el grupo 1. No sé si estoy omitiendo algún paso, pero ya lo revisé y volví a revisar muchas veces y todo parece estar bien. Ya no sé qué hacer.

Saludos.

Anonymous said...

Como bien comentas, tal vez sea un bug en la versión 2.10, voy a intentar con la versión 2.8, espero funcione. Ojalá puedas decirme con qué versión de Dansguardian te funciona bien lo de los grupos.

Saludos.

Anonymous said...

Ya intenté todo y nada funciona, olvidé mencionar que todo esto lo estoy haciendo en máquinas virtuales, y todo funciona perfectamente menos eso de los grupos, crees que eso esté afectando?

Saludos.

Ramphis Che said...

Realmente no creo que eso este afectando... realiza la siguiente prueba que se me acabo de ocurrir:

A la carpeta List2, dale permisos full...

osea aplicale desde root el comando:

chmod 777 list2 -R

Y luego reinicia dansguardian, ya que es probable que cuando copiaste las carpetas, las copiaste como root, entonces dansguardian no tenga permisos para leer esos ficheros...

Me dejas saber si te funciono... Tambien me gustaria saber si eres el mismo de todos los otros comentarios anonimos :)

Ponle una firmita para identificarte jejej

Anonymous said...

Ya le di permisos 777 a la carpeta list2 y no funcionó, de hecho le di permisos 777 a toda la carpeta dansguardian/ y nada

Quisiera ya ver ese videotutrial para ver qué me está faltando y ver como lo pones a funcionar jeje.

Sí, soy el mismo que ha puesto todos los comentarios de este post, menos los primeros 2 y agradezo que contestes todos los mensajes.

Firmaré como Mojo.

Saludos.
Mojo.

Anonymous said...

Me rindo, ya no sé qué hacer, intenté con la interfaz de Webmin, para evitar algún error manual en la configuración de los archivos, pero es lo mismo.
Me daré una vuelta por este post de vez en cuando para ver si está el videotutorial.
Agradezco tu ayuda.
Saludos.
Mojo.

Ramphis Che said...

Mojo identifique un error mio en la configuración, Sorry...

Resulta lo siguiente... El parametro "groupmode" no determina el numero del grupo, determina el modo, entonces el modo 1, es que se filtrara, el modo 2, es que no filtrara nada... por lo tanto ambos archivos dansguardianf1.conf y dansguardianf2, deberan tener el groupmode=1 para que el filtrado funcione...

Me avisas que tal te va ahora :)

Anonymous said...

Qué tal, no me había dado cuenta de ese error en tu configuración, sin embargo, todos mis archivos dansguardianfN.conf tienen el groupmode = 1. De todos modos si pongo el dansguardianf1.conf con groupmode=1 y el dansguardianf2.conf con el groupmode = 2, entonces el filtro 2 debaría tener acceso completo, mientras que el 1 si filtre por ejemplo la pagina de badboys.com. Ya hice la prueba y no importa que cambios haga en el archivo dansguardianf2.conf, como que no lo reconoce y solo toma en cuenta el dansguardianf1.conf.

Saludos.
Mojo.

Ramphis Che said...

Ok Mojo, de todas maneras ya grabe el videotutorial y ahora mismo estoy subiendolo a Youtube... tan pronto suba a Youtube lo estare publicando ;)

Ramphis Che said...

Ya subi el video,

Saludos!

Anonymous said...

Muchas gracias por hacer el video y subirlo, ya lo vi y está muy bien, muy claro. Sólo que tengo una duda, al navegador le configuras el proxy, ¿eso es estrictamente necesario? Imagina que estoy en una empresa donde hay muchas computadoras y cada quien puede entrar a su navegador y borrar o modificar el proxy, me imagino que para evitar eso se utilizan las iptables y así redireccionar todo el tráfico. Yo estoy aplicando esas reglas en un firewall diferente del dansguardian y funciona muy bien, no creo que mi problema esté ahí, fuera de eso estoy haciendo prácticamente lo mismo que tú y no funciona. Ahora que vi el video lo intentaré de nuevo y te comento si funcionó.

Saludos.
Mojo.

Ramphis Che said...

Efectivamente, todo depende de la topologia de red... yo habia publicado una guia anteriormente donde explicaba ese proceso de Iptables para poner Dansguardian en Modo transparente:
http://www.punto-libre.org/2010/11/guia-para-configurar-dansguardian-en.html

Pero como me dices que el equipo que esta rediccionando el trafico es otro equipo, y no el mismo con Dansguardian, me temo que el problema sea... que Dansguardian este viendo las peticiones desde ese dispositivo... y no desde el cliente, y por lo tanto no este filtrando segun las IP...

Intenta poner el Proxy manualmente, si te funciona bien, el problema es ese.

mauricio herrera said...

hola que tal me muy post ! tengo una consulta no cuando hago el filtrado por ip no me toma la configuracion de los dansguardianf2.conf ni del dansguardianf3 solamente el dansguardianf1.conf osea me filtra solamente lo del dansguardianf1.conf el resto nada

Anonymous said...

donde esta el video....

Post a Comment