Hola a todos.
Aquí en la UNICA se utiliza Squid3 para la navegación y Squish para el manejo de las Cuotas. Siempre he consultado esta bibliografía y espero que le ayude.
1. Descargar y extraer los archivos de instalación:
squish-0.0.18.tar
(
http://app.unica.cu/Redes/Squish/squish-0.0.18.tar.gz)
tar xvzf squish-0.0.18.tar.gz
2. Mover hacia /usr/local/squish los siguientes archivos:
squish.pm
squish.pl
squish.cron.sh
squish.cgi
rdsquish.pm
apache-squish.conf
3. Mover el archivo squish.conf en /etc/squid/ (de usarse squid3 sería en /etc/squid3)
4. Crear un archivo de texto vacío con nombre squished en /etc/squid (de usarse squid3 sería en /etc/squid3)
5. Agregar la siguiente línea en /etc/apache2/httpd.conf:
Include /usr/local/squish/apache-squish.conf
6. Modificar el archivo /usr/local/squish/apache-squish.conf de manera tal que quede así:
Alias /squish "/usr/local/squish/"
<Directory "/usr/local/squish/">
Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex squish.cgi
AllowOverride None
Order allow,deny
Allow from all
</Directory>
7. Agregar las siguientes líneas en el archivo de configuración de Squid:
acl SQUISHLOC dst nombre_de_tu_servidor_proxy #(fqdn)
acl SQUISHED1 proxy_auth -i "/etc/squid/squished" # de usarse squid3 sería /etc/squid3/squished
deny_info
http://nombre-del-servidor-proxy/squish/?squished& SQUISHED1
http_access allow SQUISHLOC
http_access deny SQUISHED1
8. Agregar esta línea en /etc/crontab:
*/5 * * * * root /usr/local/squish/squish.cron.sh
De esta manera la información del uso de cuotas de los usuarios se actualizará cada 5 minutos. La información se puede ver en
http://proxy.dominio.tld/squish
De utilizarse squid3:
Editar el archivo /usr/local/squish/squish.pl y sustituir /etc/squid por /etc/squid3 en cada ocurrencia.
Modificar el archivo squish.cron.sh exactamente la línea 34:
for DIR in \
/var/squid/logs \
/var/log/squid \ ###cambiar esta línea por /var/log/squid3 \
/usr/local/squid/var/logs \
; do
if [ -d $DIR ] ; then LOGDIR=$DIR; fi
done
El script buscará el access.log es una de esas tres ubicaciones. Por defecto en Debian y sus derivados este archivo está en /var/log/squid3.
Configuración
Editar el archivo /etc/squid[3]/squish.conf con el siguiente formato:
usuario cantidad/período
Donde:
usuario: nombre de usuario o dirección IP con este formato 192\.168\.0\.1
cantidad: cantidad de Mb(Mb) u horas(h)
período: day(diario), week(semanal), month(mensual)
Ejemplos:
pepe 20h/month # el usuario pepe tiene una cuota de 20 horas en el mes
pedro 20Mb/day # el usuario pedro tiene una cuota de 20 Mb diarios
.* 100h/month # todos los usuarios tienen una cuota de 100 horas en el mes
PD:
1. Para que no cuente el ¨.cu¨
Editas el archivo squish.pl y a partir de la línea 36 en la sección: @excludelist agregar:
{ "field" => 6, "pattern" => '\.[cC][uU]($|[^a-zA-Z0-9_.])' },
2. Para que no cuente algunos ¨IP¨
Editas el archivo squish.pl y a partir de la línea 36 en la sección: @excludelist agregar:
{ "field" => 2, "pattern" => '^10.10.24.111$' },
3. Reset las Cuotas de los usuarios
#!/bin/sh
/etc/init.d/squid stop
rm -f /var/lib/squish/userdb.stor
/usr/local/squish/squish.cron.sh
/etc/init.d/squid start
exit 0