Control parental: OpenDNS + Linux

Posted by Fernando On 20 nov 2008 0 comentarios

Hace tiempo que administro un cybercafé en el cual estamos migrando algunas PCs de uso público desde win xp pro (que de pr0 no tiene nada), a Linux, y me encontré con varios problemas, que de a poco fueron superandose...

Actualmente estaba con un dilema: por ley, los cybercafes deben disponer de filtros para evitar que los menores entren a sitios con contenido para adultos, por este motivo se suelen instalar en las PCs, algun programa para tal fin, uno de los mas usados es el llamado "Antiporn", el cual.. la verdad.. deja MUCHO que desear...

En su configuración mas permisiva filtra contenidos para adultos, pero tambien impide entrar a cualquier sitio donde haya alguna palabra relacionada a lo sexual, aunque éste no tenga NADA en absoluto que ver con sitios para adultos... por ej: un mail...
Abro mi correo, y un amigo me manda un mail diciendome, "la concha de la lora, te estuve esperando y no viniste".. bueno, el filtro actúa y cierra mi navegador.. por lo que no puedo entrar a mi correo...

A su vez.. particularmente el Antiporn, impide el ingreso a GMAIL, que aunque no cierra el navegador.. hace "algo" que impide la correcta carga de la bandeja de entrada...

Filtra sitios como.. Terra (blogs, fotologs) fotolog.com, entre otros, por lo que.. si viene un pibe de 10 años, y me dice "che, flaco, no puedo entrar a mi chotolog"... de acuerdo, yo voy, y desactivo el filtro para que pueda entrar... pero al hacerlo.. tambien puede entrar a paginas con pr0n... por lo que: el filtro deja de ser eficaz.. ademas de que si en ese momento cae una inspeccion.. estamos hasta la chota..

Asi es que ... por recomendacion de un amigo me dispuse a probar OpenDNS, esto tiene varias mejoras, como por ejemplo, el tiempo de carga de las paginas es sensiblemente mas rapido, esto es asi porque el navegador resuelve mas rapido los nombres de dominio (esto no significa que aumente el ancho de banda), y otra.. mas importante... y mas util : OpenDNS, permite un control sobre el trafico ... asi es que tenemos un filtro de sitios web a nivel del DNS :D, me creo una cuenta en el sitio de OpenDNS, introduzco mi ip, y empiezo a bloquear contenidos para adultos. Esto segun mi intuicion, debe funcionar de esta manera:

PC pide la ip del sitio www.quieroputas.com al DNS, el DNS ve que este sitio esta en sus listas negras, y genera una página avisando de esto, y como respuesta da la ip de esa pagina generada.

Por lo que el navegante (llamemoslo jeropa) termina siendo redireccionado a un sitio que avisa que www.quieroputas.com está bloqueado, esto, sin filtrar, ningun otro sitio :D asi que.. SE TERMINARON LOS DOLORES DE CABEZA CON LOS PUTOS FILTROS :D

Solamente necesitamos cargar los DNSs de OpenDNS en cada una de las maquinas a filtrar contenidos, crear nuestra cuenta en OpenDNS, y cada vez que cambiemos nuestra IP Publica avisar a OpenDNS de ese cambio, esto es: si usas Window$, instalar alguno de los clientes que hay en la pagina de OpenDNS para que éste le chiste nuestra IP, pero como dije antes, estoy migrando el ciber a linux.. por lo que necesito algun programita de estos que funcione en linux...pero...BTW...ya tengo todo lo que necesito.. ;)..

Esto es un OpenDNS Updater para Linux, este script lo encontré en UbutuForums, y lo modifiqué, no agrego los créditos porque no estaban en el que yo encontré.



#!/bin/sh
UNAME=NOMBREDEUSUARIO # username
PWORD=PASSWORD # password (plaintext, sorry!)
TEMP=`mktemp` # temporary file
ERROR=5 # times to retry
TIMEOUT=10 #timeout 10 sec

echo "Variables seteadas"
echo "Nombre de usuario: $UNAME"
echo "Password: $PWORD"
echo "El fichero temporal a crearse es: $TEMP"
echo "Veces a reintentar en caso de error: $ERROR"
echo "El timeout es: $TIMEOUT"
sleep 5
trap cleanup 1 2 3 6
cleanup()
{
rm $TEMP
exit 1
}

update()
{
wget --quiet -T $TIMEOUT --no-check-certificate -O $TEMP 'https://'$UNAME':'$PWORD'@updates.opendns.com/nic/update?'

if [ `cat $TEMP | grep -c good` = 1 ]
then
echo "logger OpenDNS updated successfully"
else
while [ $ERROR -gt 0 ]; do
ERROR=$(($ERROR-1))
sleep 10s
update
done
echo "logger OpenDNS update failed"
fi
}

update
rm $TEMP
exit 0