Holá Pedro,
estando confrontado con más o menos el mismo problema queria informarte
sobre la solución que yo tengo instalado en mi servidor. Tengo una
instalación básica de Debian 3.0 Woody, originalmente con Postfix y
Courier "out-of-the-box" como paquetes originales Debian.
Despues de la instalación inicial el servidor ha gañado +- 25 domains,
con 10 de ellos registrados para mis clientes. El desafío era ofrecer
una possibilidad para ellos configurar sus cuentas de correo por un
interface web. Mi decisión era instalar DBMail (http://www.dbmail.org),
un sistema que - en collaboración con Postfix y MySQL - ofrece tres
daemons para inyectar correo de Postfix smtp en una base de datos y
extraerlos por POP y IMAP. Toda la administración de utilizadores
(nombre, password, aliases de correo etc.) puede ser hecho por un
interface PHP, que todo mundo puede escribir fácilmente.
La instalación de dbmail no era fácil, sin embargo. El manual es una
pena, sólo con mucho investigación en diversos foros finalmente lo
hice. Para Debian se necesita varios libraries que normalmente no son
incluidos. Aquí una lista de todos paquetes que tengo instalado:
- Apache 1.3.27 y PHP 4.3.1 (para el interface web)
- MySQL 3.23.56
- DBMail 1.2.1
- libmysqlclient.so 10.0.0 (necesario para compilar DBMail, instalado
via apt-get install libmysqlclient10-dev)
- Postfix en la versión stable recomendado de Debian
- Cyrus SASL 1.5.28 (agente de autentificación)
- PAM mysql (pam_mysql.so, instalado via apt-get install libpam-mysql)
El manual de DBMail há una misinformación sobre los libraries:
normalmente se usa "-lcrypto" y "-lmysqlclient" en el build-script. El
make no funcionó así comiga, sólo substituendo "-lcrypto" con "-lcrypt"
era acertado.
Los bases de datos que DBMail anstala en MySQL tienen un table que se
llama "users". Este table tambien puede ser utilizado para la
autentificaci´n SASL. Aquí
(http://small.dropbear.id.au/myscripts/postfixmysql.html) se encuentra
un fácil manual de instalación (en inglés), que funciona óptimo comigo.
El único problema era que inicialmente pam_mysql.so no podría conectir
con mysql (los logs dicen, "pam_mysql: MySQL err Can't connect to local
MySQL server through s
ocket '/var/run/mysqld/mysqld.sock'"). Esto es porque en mi servidor
mysqld.sock reside en /tmp/ y no en /var/run/mysqld/. Un link simbólico
trabaja perfectamente.
El fichero "/etc/pam.d/smtp" para usar el user-table de DBMail junto
con SASL lee como sigue:
auth required pam_mysql.so user=[mysql-user for dbmail-database]
passwd=[password] db=dbmail table=users usercolumn=userid
passwdcolumn=passwd crypt=0
en contrário que la cita en postfixmysql.html. Así tienes un sólo table
para SMTP y POP/IMAP, fácilmente de administrar por phpMyAdmin o una
solución hecho tu mismo.
Michael