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!

Cambiar passwd de correo con user unix

Para cambiar el password del correo con usuarios del sistema
descargue el siguiente plugins del sitio oficial del squirrelmail:

http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fchange_pass-2.7a-1.4.x.tar.gz

Ahora descompactelo y copielo en el directorio plugins del squirrelmail,ejecute el sqcript o en el config.php active este plugins!

Instale el paquete:

apt-get install poppassd

Este paquete va a gestionar por el puerto 106 el cambio de pasword, por lo tanto asegurese de permitirlo en su cortafuegos! Reinicie su servidor! Entre al squirrelmail con su usuario, busque en opciones un nuevo plugins de cambiar su password!

Suerte!!

Cuotas de Correo con Postfix.

Para limitar la cuota de un buzon de correo usando postfix y usuarios unix solo debemos añadir la cantidad que vamos asignar al parametro:

mailbox_size_limit =

Desde ese momento quedará establecido el máximo de espacio a usar en el buzón.Pero como saber los usuarios que exeden esa cuota,para ello lo haremos con un script llamado reporte_cuota que nos va a generar y enviar un email con los usuarios que han violado la cuota y automaticamente se les enviará un mensaje pidiendole limpiar su buzón a los usuarios implicados. Este script lo vamos a depositar en un directorio donde prefieras junto con tres archivos llamado body, megas ,rep e instalaremos el paquete mailx. Entramos al script y escribimos los siguientes parametros:

# Variables
dir=”/home/ejemplo/cuota/rep”

DOMINIO=ejemplo.co.cu

# ;megas que quiera que te reporte !!!(el fichero debe existir)!!!
ver=`cat $dir | grep -f /home/ejemplo/cuota/megas` echo “$ver” > $dir

# poniendo texto en el archivo body del mail que se enviará-
max=`cat /home/ejemplo/cuota/megas | head -n 1`
min=`cat /home/ejemplo/cuota/megas | tail -n 1`

# mail de usuarios que exceden la cuota.
mailx -s “Cuotas de usuarios” $i@$DOMINIO < body
mailx -s “Usuarios con cuota de buzon llena de $min a $max megas” usuario@ejemplo.co.cu < $dir ### Fin ###

Todo listo,solo debe poner en el archivo megas la cantidad por la que se generará el informe de los usuarios que exceden esa cuota. El script me lo pueden pedir escribiendome a mi correo. Solo queda dar permisos y ejecutar el script. Suerte!!