Roylan Suarez Reyes escribió: >> 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 flexible 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 > esto está mas bueno de lo que pensaba y facil además, la pregunta es, y probablemente sea el mismo aldo quien la responda este mismo algoritmo servirá para postfix y ejabberd?
yo tengo autenticado squid y postfix con user unix y auth PAM, ejabberd nunca lo he logrado, si lo logro creo que no me meteré nunca con ldap. La pregunta es para tratar de hacerlo con mysql los tres servicios -- whilo ________________________________ Lic. Wilfredo Martínez Consuegra Administrador de Red RIMED Villa Clara Ministerio de Educación Phone: (53)(42) 20 1077 Jabber: [email protected] _______________________________________________ Cancelar suscripción https://listas.softwarelibre.cu/mailman/listinfo/linux-l Buscar en el archivo http://listas.softwarelibre.cu/buscar/linux-l
