Hello mi gente.
Tengo que implementar un sistema de cuotas y quiero que consulte los usuarios que están en el LDAP. Alguna solución para esto.
Gracias de antemano.
Sistema de cuotas de navegación con Squid3 + LDAP
Re: Sistema de cuotas de navegación con Squid3 + LDAP
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
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
Re: Sistema de cuotas de navegación con Squid3 + LDAP
Uufff se me pasaba algo... instalar las siguientes librerias.
apt-get install php5 php5-ldap
apt-get install libdevel-gdb-perl libgd-barcode-perl libgd-graph-perl libgd-graph3d-perl libgd-securityimage-perl libgd-text-perl libgdal-perl libtemplate-plugin-gd-perl
Suerte!!!
apt-get install php5 php5-ldap
apt-get install libdevel-gdb-perl libgd-barcode-perl libgd-graph-perl libgd-graph3d-perl libgd-securityimage-perl libgd-text-perl libgdal-perl libtemplate-plugin-gd-perl
Suerte!!!
Re: Sistema de cuotas de navegación con Squid3 + LDAP
Buenos días colegas. Gracias por tú colaboración. Me queda claro que el squish con esa configuración funciona bien, el problema está en que cómo puedo hacer que me consulte los grupos del LDAP y no tener que agregarlo de forma manual al fichero de configuración.
Saludos y gracias una vez más.
Saludos y gracias una vez más.