> On Tue, 07 Apr 2009 10:27:51 -0400
> listas <[email protected]> wrote:
>
>>
>> Hace ya un año investigue sobre ese asunto, pregunte creo que aqui y
>> no se supo nada.
>> veo que ya hay resultados y me gustaria por favor que si son
>> concretos y alguien ya lo ha explotado y logrado el squid + mysql lo
>> exponga o al menos lo que se haya logrado a ver si entre los
>> interesados le damos un finnal feliz ;) , se que
>> muchos aqui les interesaria y entre ellos yo, que en lo personal no
>> lo he podido hacer jamas.
>>
>
> Bueno yo tengo un mysql_auth modificado y está funcionando y dando
> servicios desde el 2004 más o menos.
> El que envíe ahorita es hecho en python y es un reemplazo de mysql_auth.

Hola Yo utilizo otro metodo aca te lo pego, este tutorial esta hecho para
FreeBSD pero tambien lo he probado en Debian y ubuntu solo que cambien
algunas cositas(la forma de instalar, etc....).

PAM como mecanismo de autenticación centralizada.

Los programas que conceden accesos a usuarios en un sistema utilizan
autenticación para verificar sus identidades.

Históricamente, cada programa tiene su forma particular de realizar la
autenticación. Bajo FreeBSD muchos programas son configurados para usar un
proceso de autenticación centralizado llamado PAM (Pluggable
Authentication Modules).

PAM utiliza una arquitectura conectable y modular, que otorga al
administrador del sistema de una gran flexibilidad en establecer las
políticas de autenticación para el sistema.

En la mayoría de los casos, el archivo de configuración PAM predeterminado
para una aplicación que soporta PAM es suficiente. Sin embargo, a veces
queremos almacenar los usuarios en una base de datos para centralizar
algunos servicios.

Ventajas PAM

PAM ofrece las ventajas siguientes:

    * Un esquema de autenticación común que se puede usar con una gran
variedad de aplicaciones.
    * Gran flexibilidad y control de la autentificación tanto para los
administradores de sistemas como para los desarrolladores de la
aplicación.
    * PAM es un mecanismo &#64258;exible para la autenticación de usuarios.
    * Permite el desarrollo de programas independientes del mecanismo de
autenticación
    * Ofrece al administrador la posibilidad de implementar complejas
políticas de autenticación para cada servicio.
    * Ofrece un esquema de autenticación centralizado.
    * Permite a los desarrolladores de aplicaciones abstraerse de los
mecanismos de autenticación.
    * Facilita el mantenimiento de las aplicaciones

Como podemos ver PAM ofrece muchas ventajas que en ocasiones los
administradores ignoramos.

Archivos de configuración y servicios PAM

El directorio /etc/pam.d/ contiene los archivos de configuración de PAM
para cada aplicación tipo PAM. En versiones antiguas de PAM se utilizaba
/etc/pam.conf, pero este archivo ya no se utiliza y solamente es usado si
el directorio /etc/pam.d/ no existe.

Cada aplicación tipo PAM o servicios tiene un archivo dentro del
directorio /etc/pam.d/. Cada uno de estos archivos lleva el nombre del
servicio para el cual controla el acceso. Depende del programa tipo PAM
definir el nombre de su servicio e instalar su archivo de configuración en
el directorio /etc/pam.d/. Por ejemplo, el programa login define su nombre
de servicio como login e instala el archivo de configuración PAM
/etc/pam.d/login, el programa squid necesita el archivo /etc/pam.d/squid y
asi con cada uno de los servicios.

    Un ejemplo para aprender

Para comprender mejor el uso de PAM, en este ejemplo veremos como podemos
autenticar Squid contra una Base de Datos de MySql. Daremos por sentado
que tenemos pam, mysql y squid instalados y configurados correctamente.

1. Por lo general PAM viene por defecto en todos los sistemas FreeBSD.

2. Necesitamos instalar pam_mysql. Un modulo para autenticar contra mysql

# cd /usr/ports/security/pam-mysql
# make install clean

3. También es necesario tener instalado mysql-server, en mi caso tengo la
version 5.0, que nos servirá para almacenar el nombre de usuario y
contraseña de cada usuario.

# cd /usr/ports/databases/mysql50-server
# make install clean

Tambien podemos instalar phpmyadmin para que nos ayude a gestionar la base
de datos de usuarios:

# cd /usr/ports/databases/phpmyadmin
# make install clean

4. Vamos a suponer que tenemos una Base de datos con la siguiente estructura:

Nombre Base de Datos: bd_usuarios
Tabla de usuarios: usuarios
Campo de Usuario: n_usuarios
Campo de Password: p_usuario

Como es lógico el password debe estar encriptado. Para este ejemplo nos
sirve cualquier BD siempre que tenga un campo usuario y password.

5. Nos vamos al directorio /etc/pam.d/ y creamos un fichero llamado squid,
en caso de que no exista

# cd /etc/pam.d
# touch squid

Lo editamos con el editor favorito y añadimos el siguiente texto:

auth required /usr/local/lib/pam_mysql.so user=user_mysql
passwd=clave_mysql host=localhost db=bd_usuarios table=usuarios
usercolumn=n_usuario passwdcolumn=p_usuario crypt=1

account required /usr/local/lib/pam_mysql.so user=user_mysql
passwd=clave_mysql host=localhost db=bd_usuarios table=usuarios
usercolumn=n_usuario passwdcolumn=p_usuario crypt=1

session required /usr/local/lib/pam_mysql.so user=user_mysql
passwd=clave_mysql host=localhost db=bd_usuarios table=usuarios
usercolumn=n_usuario passwdcolumn=p_usuario crypt=1

Como podemos ver este fichero esta compuesto por 3 lineas, solo explicare
una, ya que es valido para las demás.

auth: comprobación de que el usuario es realmente quien dice ser.

required: Es necesario tener éxito. Aunque falle la autenticación se sigue
la pila

/usr/local/lib/pam_mysql.so: indica la ruta de la librería pam_mysql.
Cambia en otros SO.
user=user_mysql: Indica un usuario valido de mysql con acceso a la Base de
Datos de usuarios (bd_usuarios)

passwd=clave_mysql: La clave de acceso a mysql del usuario explicado en el
paso anterior.

host=localhost: El servidor que aloja la base de datos.

db=bd_usuario: La base datos de usuarios.

table=usuarios: La tabla que almacena los campos de usuario y password

usercolumn=n_usuario: el nombre del campo que almacena los nombre de los
usuarios

passwdcolumn=p_usuario: El nombre del campo que almace el password del
usuario.

crypt=1 : El tipo de encriptación de la clave del usuario (0= texto plano)
(1=crypt) (2=Crypt mysql) (3=md5)

6. Con esto ya tenemos ha PAM listo para actuar como un mecanismo de
autenticación de squid..

7. Ahora debemos configurar squid, solamente modificaremos el siguiente
parámetro de squid:

auth_param basic program /usr/local/squid/libexec/pam_auth

8. Ahora podemos reiniciar la maquina e intentar acceder a Internet, si
tenemos algún problema podemos verificar en los logs y comprobar. También
podemos crear una pequeña página en php para que los usuarios tengan la
posibilidad de cambiar el password.

Espero que les sea util….





> _______________________________________________
> Cancelar suscripción
> https://listas.softwarelibre.cu/mailman/listinfo/linux-l
> Buscar en el archivo
> http://listas.softwarelibre.cu/buscar/linux-l
>




_______________________________________________
Cancelar suscripción
https://listas.softwarelibre.cu/mailman/listinfo/linux-l
Buscar en el archivo
http://listas.softwarelibre.cu/buscar/linux-l

Responder a