Squid+Squish
Moderador: frank
- nelson
- Mensajes: 304
- Registrado: Vie, 15 Oct 2010, 15:52
- Ubicación: /home/Ciudad de La Habana/
- Contactar:
Squid+Squish
Principalmente los servidores de los joven club, controlan las cuotas de internet con un software llamado squish, el cual se integra a el squid, se puede controlar de dos formas, lo mismo que por horas conectados que por mb descargados.
Alguien me pudiera ayudar un poco con este tema, porque la verdad que lo e intentado mil veces y nada, si me pudieran especificar detalladamente los pasos desde cero (contando con el squid ya instalado) , se los agradeceria.
(P.D no estoy hablando de delay_pool para limitar ancho de banda, sino, crear coutas)
Alguien me pudiera ayudar un poco con este tema, porque la verdad que lo e intentado mil veces y nada, si me pudieran especificar detalladamente los pasos desde cero (contando con el squid ya instalado) , se los agradeceria.
(P.D no estoy hablando de delay_pool para limitar ancho de banda, sino, crear coutas)
# uname -a
Linux huracan 3.0.3 #1 SMP Tue Aug 30 21:31:02 CDT 2011 i686 GNU/Linux
Linux huracan 3.0.3 #1 SMP Tue Aug 30 21:31:02 CDT 2011 i686 GNU/Linux
Re: Squid+Squish
La instalación es sencilla, puedes hacerla manual o utilizando el script que incluye el paquete. Esta es la manual:
1. Copiar en /usr/local/squish los archivos:
2. Copiar squish.conf en /etc/squid/ (si usas squid3 entonces sería en /etc/squid3)
3. Crear el archivo squished vacío en /etc/squid (si usas squid3 entonces sería en /etc/squid3)
4. Agregar esta la línea en /etc/apache2/httpd.conf:
5. Agregar estas líneas en el archivo de configuración del squid:
6. Agregar esta línea en /etc/crontab:
Esto es para que actualice cad 5 minutos la información de la actividad de los usuarios. La información se verá en http://proxy.dominio/squish
Esto lo puedes hacer automáticamente corriendo el archivo Makefile que se incluye en el paquete de instalación del squish:
Notas:
- Si utitlizas squid3 entonces deberías editar el archivo /usr/local/squish/squish.pl y en especificar en varias líneas squid3 en vez de squid.
- Si usas squid3 entonces deberías editar el archivo squish.cron.sh en la línea 32:
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.
El archivo de configuración del squish es fácil de entender:
Ejemplos:
1. Copiar en /usr/local/squish los archivos:
Código: Seleccionar todo
squish.pm
squish.pl
squish.cron.sh
squish.cgi
rdsquish.pm
apache-squish.conf
3. Crear el archivo squished vacío en /etc/squid (si usas squid3 entonces sería en /etc/squid3)
4. Agregar esta la línea en /etc/apache2/httpd.conf:
Código: Seleccionar todo
Include /usr/local/squish/apache-squish.conf
Código: Seleccionar todo
acl SQUISHLOC dst nombre_de_tu_servidor_proxy (fqdn)
acl SQUISHED1 proxy_auth -i "/etc/squid/squished" # si usas squid3 sería /etc/squid3/squished
deny_info http://nombre_de_tu_servidor_proxy/squish/?squished& SQUISHED1
http_access allow SQUISHLOC
http_access deny SQUISHED1
Código: Seleccionar todo
*/5 * * * * root /usr/local/squish/squish.cron.sh
Esto lo puedes hacer automáticamente corriendo el archivo Makefile que se incluye en el paquete de instalación del squish:
Código: Seleccionar todo
make install
- Si utitlizas squid3 entonces deberías editar el archivo /usr/local/squish/squish.pl y en especificar en varias líneas squid3 en vez de squid.
- Si usas squid3 entonces deberías editar el archivo squish.cron.sh en la línea 32:
Código: Seleccionar todo
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 archivo de configuración del squish es fácil de entender:
Código: Seleccionar todo
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)
Código: Seleccionar todo
pepe 20h/month # el usuario pepe tiene una cuota de 20 horas en el mes
.* 60h/month # todos los usuarios tienen una cuota de 60 horas en el mes
pedro 20Mb/day # el usuario pedro tiene una cuota de 20 Mb diarios
- nelson
- Mensajes: 304
- Registrado: Vie, 15 Oct 2010, 15:52
- Ubicación: /home/Ciudad de La Habana/
- Contactar:
Re: Squid+Squish
Te la comistes mi hermano, gracias, me voy a poner manos a la obra en cuanto pueda. De verdad que gracias, no habia podido encontrar esta informacion tan detallada.
# uname -a
Linux huracan 3.0.3 #1 SMP Tue Aug 30 21:31:02 CDT 2011 i686 GNU/Linux
Linux huracan 3.0.3 #1 SMP Tue Aug 30 21:31:02 CDT 2011 i686 GNU/Linux
Re: Squid+Squish
Ponte en contacto también con el admin del Canal Educativo 2, Lester hace cuestión de días lo instalo con bueno resultados.nelson escribió:Te la comistes mi hermano, gracias, me voy a poner manos a la obra en cuanto pueda. De verdad que gracias, no habia podido encontrar esta informacion tan detallada.
Te mando el correo a tu correo.
Saludos - By Rolyston
“El hardware es lo que hace a una máquina rápida; el software es lo que hace que una máquina rápida se vuelva lenta”
Craig Bruce
0[*_*]0
LinuX UseR - #513031
--------------------------------
“El hardware es lo que hace a una máquina rápida; el software es lo que hace que una máquina rápida se vuelva lenta”
Craig Bruce
0[*_*]0
LinuX UseR - #513031
--------------------------------
Re: Squid+Squish
Para eso estamos aquí, para ayudar.nelson escribió:Te la comistes mi hermano, gracias, me voy a poner manos a la obra en cuanto pueda. De verdad que gracias, no habia podido encontrar esta informacion tan detallada.
- nelson
- Mensajes: 304
- Registrado: Vie, 15 Oct 2010, 15:52
- Ubicación: /home/Ciudad de La Habana/
- Contactar:
Re: Squid+Squish
Me demore en contestar, pero simplemente por cuestiones de tiempo de que no habia tenido la cabeza suficientemente fresca como para ponerme para el squish, ya que me ha dado buenos dolores de cabeza.
Cuento de que con esta configuracion,, todo a la perfeccion, habia descargado 1001 manual de internet y ninguno me habia servido.
La prueba la realize en debian lenny, de trabas pequeñas que ahora recuerde, solamente estos detalles:
Tuve que editar el archivo apache-squish.conf, ya que al menos el mio dice:
y en este caso, los archivos se encuentran en: /usr/local/squish
quedaria:
lo otro, que si tuve que tirarme a buscar en la red, me dio tremendo error la pagina http://servidor/squish/
fue algo como esto:
La solucion fue instalar:
apt-get install libgd-gd2-perl
F5 a la pagina, y completo, funcionando al 100%
Ahora solo me queda cacharrearlo y aprender bien como es la cosa y ver si lo adapto a mis necesidades.
Tambien traigo unas duditas:
-por ejemplo, el tiempo que tiene el cron para actualizar, es de 5 min, yo se lo baje a 1 y funciono, es esto malo, no se recomienda o como es la cosa? (solo es cuestion de no tener que estar esperando 5 min para ver los cambios).
-lo otro,, ya veo que el squish da bastantes detalles, pero demasiadoss!! ja, eemplo, el usuario nelson que fue la prueba que hice, le puse 1mb/day, pero me muestra tambien el de la semana, el mes, el año, y lo mismo para el tiempo de conexion, alguna forma de rebajar esto?.
-Donde se guarda esta informacion?, es decir, debe de tener alguna db interna que el consulte o algo, no se archivos de texto o algo?.
Saludos y gracias por la ayuda, muy agradecido
Cuento de que con esta configuracion,, todo a la perfeccion, habia descargado 1001 manual de internet y ninguno me habia servido.
La prueba la realize en debian lenny, de trabas pequeñas que ahora recuerde, solamente estos detalles:
Tuve que editar el archivo apache-squish.conf, ya que al menos el mio dice:
Código: Seleccionar todo
Alias /squish "/home/andrewm/software/squint/squish/"
<Directory "/home/andrewm/software/squint/squish/">
Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex squish.cgi
AllowOverride None
Order allow,deny
Allow from all
</Directory>
quedaria:
Código: Seleccionar todo
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>
fue algo como esto:
Código: Seleccionar todo
Software error:
Can't locate GD.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /var/www/squish/squish.cgi line 163.
BEGIN failed--compilation aborted at /var/www/squish/squish.cgi line 163.
apt-get install libgd-gd2-perl
F5 a la pagina, y completo, funcionando al 100%
Increible al menos con la suerte que yo tengo para esto jaja.User 24 hours Week Month Year 24 hours Week Month Year
192.168.1.10 261.55kb 261.55kb 261.55kb 261.55kb 23:11m 23:58m 23:58m 23:58m
nelson 152.00kb 152.00kb 152.00kb 152.00kb 23:42m 23:42m 23:42m 23:42m
Total 413.55kb 413.55kb 413.55kb 413.55kb 46:53m 47:40m 47:40m 47:40m
Ahora solo me queda cacharrearlo y aprender bien como es la cosa y ver si lo adapto a mis necesidades.
Tambien traigo unas duditas:
-por ejemplo, el tiempo que tiene el cron para actualizar, es de 5 min, yo se lo baje a 1 y funciono, es esto malo, no se recomienda o como es la cosa? (solo es cuestion de no tener que estar esperando 5 min para ver los cambios).
-lo otro,, ya veo que el squish da bastantes detalles, pero demasiadoss!! ja, eemplo, el usuario nelson que fue la prueba que hice, le puse 1mb/day, pero me muestra tambien el de la semana, el mes, el año, y lo mismo para el tiempo de conexion, alguna forma de rebajar esto?.
-Donde se guarda esta informacion?, es decir, debe de tener alguna db interna que el consulte o algo, no se archivos de texto o algo?.
Saludos y gracias por la ayuda, muy agradecido
# uname -a
Linux huracan 3.0.3 #1 SMP Tue Aug 30 21:31:02 CDT 2011 i686 GNU/Linux
Linux huracan 3.0.3 #1 SMP Tue Aug 30 21:31:02 CDT 2011 i686 GNU/Linux
Re: Squid+Squish
Válida la aclaración, esto se me había pasado porque normalmente edito el archivo de configuración de la instalación de squish y simplemente make install, lo que pasa es que de la manera que lo expliqué es para que se entienda con profundidad.Quedaría:
Código: Seleccionar todo
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>
Sí, squish necesita GD para generar los gráficos para los usuarios.La solucion fue instalar:
apt-get install libgd-gd2-perl
No creo que sea necesario que cron ejecute el script cada 1 minuto, creo que esto aumentaría un poco el CPU, de todas maneras la diferencia que hay entre 5 minutos y 1 minuto es muy poca y esta información es para los usuarios, realmente no le veo caso.Tambien traigo unas duditas:
-por ejemplo, el tiempo que tiene el cron para actualizar, es de 5 min, yo se lo baje a 1 y funciono, es esto malo, no se recomienda o como es la cosa? (solo es cuestion de no tener que estar esperando 5 min para ver los cambios).
Claro, si el usuario "nelson" tiene 1mb/day tuvo 1mb/day ayer y antes de ayer, etc. por lo tanto esa información es válida. Si sabes algo de Perl CGI puedes editar el archivo squid.cgi que es el que genera las estadísticas que toma de la base de datos del squish. Por ejemplo, yo tengo que solamente se vea en la tabla las horas consumidas en el mes y no los demás datos, en fin de cuentas a los usuarios solo les interesa la cantidad de horas que han consumido. Además de esto también tengo que si las horas consumidas se pasan de 48 sigan mostrándose en horas y no en días, squish muestra las horas consumidas en días por defecto cuando pasan de 48. Esto lo hice precisamente editando el archivo squish.cgi. La tabla que tengo es más menos así:-lo otro,, ya veo que el squish da bastantes detalles, pero demasiadoss!! ja, eemplo, el usuario nelson que fue la prueba que hice, le puse 1mb/day, pero me muestra tambien el de la semana, el mes, el año, y lo mismo para el tiempo de conexion, alguna forma de rebajar esto?.
Código: Seleccionar todo
--------------------------
Usuario Horas Consumidas
--------------------------
usuario1 ##:##h
usuario2 ##:##h
usuario3 ##:##h
usuarion ##:##h
--------------------------
/var/lib/squish/usdb.stor-Donde se guarda esta informacion?, es decir, debe de tener alguna db interna que el consulte o algo, no se archivos de texto o algo?.
Para eso estamos.Saludos y gracias por la ayuda, muy agradecido
De todas maneras no estoy muy conforme con squish, pero es la herramienta más eficiente que he encontrado. Tengo pensado en hacer algo parecido al squish con menos características, pero todavía no me decido, el tiempo y los usuarios son oro.