Muchos de los administradores que utilizan squid como proxy cache de Internet utilizan squish para establecer cuotas de navegación para sus usuarios. Los joven club utilizan squish y estoy claro de ello porque me incluyo en el grupo. Esta herramienta, al parecer, resuelve las necesidades de los joven club. Squish está escrito en Perl y el autor no lo actualiza desde el 2006 (bastante tiempo) aunque creo que esto no es problema dado que squish parsea el archivo access.log del squid y este no ha cambiado mucho desde ese tiempo, los datos que le interesan a squish son, básicamente: fecha, ip del cliente, usuario y el tamaño de los recursos que obtiene el cliente. Squish puede filtrar los resultados excluyendo ciertos campos del log parseado como: usuarios, direcciones IP, entre otros, pero una de las cosas que a los joven club le interesa mucho es la navegación .cu, squish debe filtrar esto con la exlusión del campo URL, pero no es así, quizá lo esté configurando mal, pero la realidad es que no lo hace, aparte de que el tiempo en Internet de los usuarios se dispara bastante rápido y existe descontento entre los usuarios. He hecho búsquedas exahustivas sin fruto alguno, casi todo está obsoleto, los desarrolladores de squid no se acaban de poner de acuerdo con un sistema de cuotas efectivo (
http://wiki.squid-cache.org/Features/Quota) y todo termina en "¡¡¡...el administrador está acabando con nosotros, qué rápido se termina la cuota de Internet!!!"
¿Alguien ha tenido la oportunidad de descubrir e implementar algún sistema de cuotas que sea efectivo?
Edición:
Chequeando el script del squish (squish.pl) me di cuenta de que lo siguiente:
Código: Seleccionar todo
# Seconds that must pass before an on-line session is considered terminated
$onlinetimeout = 5*60; # session timeout in seconds - if you download
# something every five minutes, you're on all day. Lazy bums. Do some
# work, and stop wasting time hammering the internet.
En este fragmento de código squish añade 5 minutos al tiempo consumido del usuario despúes de que la sesión de navegación de este se dé por terminada. Creo que este es el factor por el que decía que se disparaban las horas de navegación. Cambié de la variable $onlinetimeout a 0 para comprobar y al parecer sí es este el factor, quizá 5 minutos es mucho tiempo, creo que con 1 minuto o dos es suficiente.
Código: Seleccionar todo
@excludelist = (
{ "field" => 3, "pattern" => "TCP_DENIED/" } ,
{ "field" => 3, "pattern" => "NONE/" },
{ "field" => 6, "pattern" => '^http://127\.0\.0\.1/' } # localhost
);
En este otro fragmento de código es donde se pueden hacer exclusiones. En el caso particular del URL, que lo que se desea es que squish excluya todo lo que esté bajo el dominio .cu. anteriormente lo tenía como:
y la realidad no estaba filtrando nada, cambié por lo siguiente:
Lo que esté entre comillas es realmente cualquier expresión regular en el campo de URL al igual que con
"TCP_DENIED/" y
"NONE/", simplemente cuando squish detecta que en el campo del URL exista esta expresión no añade nada en la base de datos.
Ojalá y esté en lo cierto y no tenga que buscar otra alternativa al squish o que no me linchen porque las cuotas de navegación no estén correctas.