| Cómo configurar Postfix Courier y MySQL |
|
|
|
|
Postfix Courier y MySQL 1. ¿Por que este documento? Me he decidido a escribir este documento ya que los que busqué al intentar hacer la instalación de este trío no llegaron a gustarme. 2.¿Por que usar la autentificación en un SQL? Lo que vamos ha hacer con este trío es conseguir un sistema de correo completo con una autentificación es un sistema de bases de datos SQL, con lo cual conseguiremos manejar varios dominios virtuales con cientos de usuarios los cuales no existen en el sistema realmente. 3. ¿Que necesito? Bien yo hice la instalación sobre Debian GNU/Linux aunque no debería cambiar mucho para otros Linux o *BSD. postfix A high-performance mail transport agent Estos deberían estar en la misma máquina la BBDD puede ser remota y el servidor MySQL podemos instalarlo en la maquina local o no , eso tendrá que ser valorado a la hora de instalar. En distintas distribuciones a Debian o si instalamos desde código fuente debemos fijarnos en que postfix y courier estén compilados con soporte de MySQL. 4. Después de la instalación de paquetes. Lo primero que hice fue hacer las tablas de la base de datos. Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create database maildb; mysql> grant all privileges on maildb.* to postfix@localhost identified by 'elapassque quieras'; y seleccionamos la base de datos: mysql> use mail; La primera que creo es la de transport , viene a ser como el mailertable de sendmail indicamos que acción que se debe ejecutar dependiendo del dominio al que se dirige el email, la estructura es la siguiente. CREATE TABLE transport ( Domain indica el dominio sobre el cual se debe ejecutar la acción y transport la acción a realizar, recomiendo un man 5 transport para ver las opciones , aunque las más comunes son: smtp: con lo que redirigiremos el correo de ese servidor hacia otro dominio local: hará un relay local es decir chequeara si ese usuario existe en la maquina local y si es afirmativo le entregará el email virtual: este es relativo a los dominios virtuales normalmente los que autentificamos conta la base de datos. La tabla de transport deberia quedar similar a esta: La segunda tabla y la más compleja por el número de campos es la de los usuarios, la estructura es la siguiente: CREATE TABLE users (
address Pues nada aquí obviamente tenemos que poner la dirección de correo electrónico completa paco@jaco.com por ejemplo. crypt Aqui irá la clave encriptada, se debe insertar como encrypt('tupasswd'). clear El password en texto plano. name Nombre con el que se enviaran los emails, es decir paco@jaco.com usaria Francisco Yonky Mas Jaco. uid y gid Son el uid y el gid del usuario que puede escribir en el directorio de spool de mensajes, más adelante explicaré lo que es. home En este campo se ha de poner el directorio general de spool este directorio ha de tener un gid y uid igual al que hemos puesto anteriormente, y será donde se almacenen las carpetas del usuario de un dominio en concreto. Seria algo similar a esto /var/spool/mail/dominio/paco/, normalmente meteremos todo un dominio con el mismo gid y uid. domain Coincide con el dominio en nuestro caso jaco.com maildir Es el directorio maildir de usuario. Por ejemplo /var/spool/mail/dominio/paco/Maildir/. imapok Es un campo que pondremos a 1 si queremos que ese usuario posea cuenta imap bol1 y bol2 La he colocado para usarlas como variables bit para imap y poder emprender distintas acciones según estén a 1 o 0. La tabla quedaría mas o menos así:
|paco@dominio.com | paco| paco@dominio.com| PyinZSuIE0lRs | mipassesjaco | Francisco Yonky Mas Jaco | 1000 | 1000 | /var/spool/mail/dominio/paco/ | dominio.com | /var/spool/mail/dominio/paco/Maildir/ | 1 | 1 | 1 | La última tabla es virtual, esta tabla contendrá direcciones virtuales por ejemplo las del mailman, su estructura es: CREATE TABLE virtual ( address Identifica la dirección virtual goto dirección a la que apuntará la virtual. Ejemplo de la tabla en concreto para mailman: mysql> select * from virtual;
Bien ahora lo que necesitaremos será configurar el postfix para que use el mysql.
Chequea que en master.cf tengas: Ahora vamos con los archivos de conexión a MySQL que hemos definido anteriormente en main.cf Todos estos archivos los debemos crear en /etc/postfix: # transport.cf
# mysql_virt.cf # uids.cf # gids.cf # virtual.cf Ahora configuramos el courier para que pueda acceder a la base de datos. #archivo /etc/courier/authmysqlrc #archivo /etc/courier/authdaemon authmodulelist="authmysql" <-- esto es para los posibles métodos de autentificación de usuarios en el imap se puede incluir desde PAM a LDAP man authdaemon. Ahora reinicia los servicios de postfix y courier. 6.Añadiendo un dominio a transport Muy fácil solo hay que ejecutar esta consulta: insert into transport (domain,transport) values("dominio.com","virtual:"); 7. ¿Como añado usuarios? Los usuarios los debemos añadir en la base de datos y posteriormente crear los Debemos hacer algo así: Luego creamos el directorio de este usuario y le damos permisos: mkdir -p /var/spool/mail/dominio/paco/Maildir 8.Fin Bueno ya debería estar funcionando todo pero si algo falla revisa los logs del sistema no creo que te sea difícil encontrar el fallo ya que los errores de postfix dan bastante información , te aconsejo que también si fallara algo miraras el log del mysql por si hay alguna consulta mal formada o te has equivocado en algún campo. Este Documento esta escrito por Omar López aka pollo puedes usarlo como quieras, no me hago responsable de los daños que puedas causar con el. Autor: pollo www.valenciawireless.net postfix postfix courier mysql sql ssl >> |
| < Anterior | Próximo > |
|---|


Enlaces