Debian

Debian

lunes, 28 de septiembre de 2009

Kuota para Squid

Cuando tenemos Internet en nuestra Empresa y se necesita hacer un uso racional del servicio,una buena herramienta a usar seria el Kuota,diseñada por los colegas de la Universidad de Pinar del Rio.La misma te permite la creación de usuarios via web que se almazenan en una base de datos en mysql.El sistema posibilita:

* Cambio de clave de Internet
* Gráfico Mensual del consumo diario y por horas
* Envio del estado de cuenta por correo

Kuota cuenta con dos nieveles de acceso,un usuario que será el dueño de la base de datos donde alojaremos la tablas que importaremos y otro usuario que se creará dentro de una tabla de la base de datos anterior y será el encargado de entrar via web al kuota y va a crear ,borrar usuarios y ver todas las opciones del mismo.

Partiendo de una buena guia escribo este pequeño Howto.

Lo primero que haremos para implementar esta herramienta es hacer la descarga de:

Requisitos:
Debemos tener instalado mysql-server-5.0+php5+phpmyadmin y la libreria libfile-tail-perl.

1- Copiamos el directorio llamado web que viene dentro del kuota a /var/www y lo llaman como deseen.Más adelante trabajaremos con este directorio…

2- Vamos a crear un directorio dentro de /etc/squid llamado bin

mkdir /etc/squid/bin

3- Para ese directorio copiamos los 2 ficheros siguientes:

kuota.pl
runKuota.sh

El runKuota.sh es un script que se va a encargar de ejecutar el .pl por lo
cual es necesario que el script llamado: runKuota.sh se auto-ejecute cada
vez que el sistema se reinicie para que todo funcione, ya que debe estar
corriendo siempre en el servidor, para eso, creamos este enlace simbólico que será el paso 4.

4- ln -s /etc/squid/bin/runKuota.sh /etc/rcS.d/S91kuota

5- Entramos a mysql (puedes usar para hacerlo más fácil phpmyadmin) y creamos una base de datos llamada squid y un usuario como usted lo quiera llamar ej: kuota con su password ej:aaaaa,y le damos a ese usuario los permisos ,de insertar,borrar,editar a la base de datos que ya creamos llamada squid.

Llamaremos a este usuario kuota para que se haga mas entendible a la hora de configurar los archivos.

5-Ahora importamos de el directorio llamado BD que viene dentro del Kuota el .sql que se encuentra.Recuerde borrar las lineas de la base de datos y solo dejar las tablas que importaremos .Antes de importar las tablas puedes editarla para adecuarla a tu institución ya que como dije anteriormente kuota fue creado por los colegas de la Universidad de Pinar del Rio!

6- Después que hayas hecho esto, agrega el usuario tuyo,(Yuneikys) es decir el user con el que tu vas a navegar desde tu proxy, que va a ser también el administrador para manejar la WEB, (todo esto es desde phpmyadmin) El usuario, lo debes agregar en la tabla password, usando MD5 para la clave, agregalo también en las tablas: userinfo y useradmin.Para eso vas a la base de datos que creastes llamada squid y en la tabla password le damos insertar y ponemos el user ej:yuneikys y el password ej:12345 pero esta en md5.Haga lo mismo en useradmin que será el código una vez que estemos dentro del kuota que tenemos que insertar para administrarlo.Ponga solo el nombre si desea en la tabla userinfo también dandole insertar!

A este usuario lo llamaremos Yuneikys para entender los niveles de acceso más adelante.

7- Una vez que hayas terminado con esto, solo debes crear un virtualhost en tu servidor web que apunte a donde pusistes el directorio web del kuota y poner ese nombre en tu DNS, para que todo funcione bien. Antes de intentar logearte en la página del kuota, verifica que en el config.php que viene dentro del directorio Conecctions donde establece la conexión a la base de datos, están correctamente puestos, los siguientes datos:

- Servidor Mysql localhost
- Nombre de la base de datos squid
- Usuario Mysql kuota
- Clave del usuario mysql aaaaa

8-Si todo eso esta bien, debes poder entrar con el usuario y la contraseña (yuneikys y 12345)
que pusiste en la tabla password de la base de datos. Otra cosa, verifica
que el script en perl, es decir el .pl esta corriendo en el servidor, para
eso, usa este comando:

ps aux | grep kuota

Debes obterner una salida como esta:

ns:/etc# ps aux | grep kuota
root 2876 0.0 8.4 162480 87456 ? S Oct11 2:41
/usr/bin/perl /etc/squid/bin/kuota.pl
root 21558 0.0 0.0 2884 768 pts/0 S+ 12:28 0:00 grep kuota

Si no te sale así, es que no está corriendo y solo se ocurren 2 causas, o no instalaste la librería de perl que se necesita, la que te mencione al
inicio, oh! en el script en perl, el .pl no están bien puestos los datos
para que el script pueda conectarse a mysql y escribir en la base de datos
todo lo que toma del access.log del squid .Verifica los datos de conexión a la base de datos en el fichero kuota.pl ubicado en el directorio bin que creastes dentro /etc/squid y que tenga también bien puesto:

-Servidor Mysql localhost
- Nombre de la base de datos squid
- Usuario Mysql kuota
- Clave del usuario mysql aaaaa

9- Y por último, lo que integras al squid es el mysql_auth que es lo que
usarías para que squid autentique contra mysql, para eso debes tomar los 2 ficheros que estan en el compactado que se llaman:

mysql_auth.conf y mysql_auth

el fichero de configuracion .conf lo pones en /etc/squid y verifica los
permisos, que tenga los mismos que los archivos del squid creo que es 644 con dueño y grupo root , NO! Le pongas 600 como permiso al igual que el punto .conf del squid porque suele dar problemas!

Al leer este archivo verifica los datos de conexión al servidor mysql en este fichero también:

-Servidor Mysql localhost
- Nombre de la base de datos squid
- Usuario Mysql kuota
- Clave del usuario mysql aaaaa

10- en: /usr/bin copias el mysql_auth:
/usr/bin/mysql_auth en ese directorio hay una pila de fichero ejecutables,
cuando copies este para ahi, asegúrate que tenga los mismos permisos que tienen los demás que están en ese lugar.

Para saber si el mysql_auth autentica bien contra la base de datos donde
están los usuarios, puedes hacer una prueba desde la consola, ejecutas
este comando:

/usr/bin/mysql_auth

Esto te dejará la consola bloqueada, sin devolverte el promt, ahí mismo
tecleas tu usuario seguido de la contraseña (Yuneikys 12345), dejando un espacio entre el user y el password y das ENTER, si todo esta bien, eso debe devolverte un OK, si te da un error, algo está mal y tendrás que revisar hacía atrás el resto de los usuarios los creas luego desde la WEB, accediendo con tu usuario (yuneikys), que inicialmente entra al sistema de la web sin acceso full, para poder acceder a las opciones que te permiten agregar usuarios nuevos, borrarlos, etc… debes teclear un código de seguridad dando click en un
candado que estará en la posición de cerrado en la esquina superior
izquierda debajo de donde aparece el user con el que accediste a la web,
cual es ese código que pones ahí?? Bueno, la clave que le pusiste a tu
usuario en la tabla: useradmin en la base de datos, usando phpmyadmin (que puede ser igual o no, a la clave que pusiste en tabla password)

Fin.

Suerte Hermanos!

10 comentarios:

  1. saludos cómo puedo descargar esta herramienta

    ResponderEliminar
  2. como lo puedo hacer en eñ centos valdes842001@gmail.com este es mi correo para si me pueden ayudar

    ResponderEliminar
  3. Muy buen articulo, como puedo conseguir el script kuota??? mi correo es yunier850710@gmail.com

    ResponderEliminar
  4. y en el squid q hay q hacer para q se autentifique co los usuarios de la bd de kuota...

    ResponderEliminar
  5. ¿me permite establecer cuotas en sitios específicos o solo para navegación general? lo estoy implementando en mi empresa y necesito regular la entrada en redes sociales y correos internacionales a los usuarios que lo tienen permitido mi correo es nalmeida@ciget.fica.inf.cu agradeceria tu ayuda

    ResponderEliminar
  6. No, cuando implemente Kuota no concebí eso, el sistema fue desarrollado siguiendo especificaciones que debía cumplir en el centro de trabajo de fue realizado, este caso en la Universidad de Pinar del Río.

    saludos a todos y gracias por usar Kuota.

    Yoel RT

    ResponderEliminar
  7. Un saludo ante todo, la mayoria de estas entradas son viejas, me animo a escribir por que veo unas ultimas entradas de febrero, no tengo conocimientos de PERL y las cuotas aplicadas por el kuota.pl son mensuales, alguna manera de cambiar estas cuotas a semanales ?? alguien que pueda darme la luz para cambiar eso, gracias, mi correo es xpectro.ghost@gmail.com

    ResponderEliminar
  8. Hola a todos, aún usando kuota se puede autenticar vía ldap ??

    Saludos

    ResponderEliminar
  9. Hello a todos,quisiera saber como puedo obtener los ficheros de kuota??,cualquier informacion escribir a israel870730@gmail.com, salu2s

    ResponderEliminar
  10. como puedo obtener tan preciada herramienta de sistema de kuota
    se que se usa con mysql pero es posible adaptarla con LDAP
    me gustaria probar mi correo es yanielbruz@gmail.com please

    ResponderEliminar