Postfix Tutorial · 5 min read · Oct 29, 2025

Usuarios Y Dominios Virtuales Con Postfix, Courier, MySQL Y SquirrelMail (Mandriva 2010.0 x86_64)

Usuarios Y Dominios Virtuales Con Postfix, Courier, MySQL Y SquirrelMail (Mandriva 2010.0 x86_64)

Versión 1.0
Autor: Falko Timme
Sígueme en Twitter

Este tutorial está protegido por derechos de autor (c) 2010 por Falko Timme. Se deriva de un tutorial de Christoph Haas que puedes encontrar en http://workaround.org. Eres libre de usar este tutorial bajo la licencia Creative Commons 2.5 o cualquier versión posterior.

Este documento describe cómo instalar un servidor de correo Postfix que se basa en usuarios y dominios virtuales, es decir, usuarios y dominios que están en una base de datos MySQL. También demostraré la instalación y configuración de Courier (Courier-POP3, Courier-IMAP), para que Courier pueda autenticar contra la misma base de datos MySQL que utiliza Postfix.

El servidor Postfix resultante es capaz de SMTP-AUTH y TLS y cuota (la cuota no está integrada en Postfix por defecto, mostraré cómo parchear tu Postfix adecuadamente). Las contraseñas se almacenan en forma encriptada en la base de datos (la mayoría de los documentos que encontré trataban con contraseñas en texto plano, lo que es un riesgo de seguridad). Además de eso, este tutorial cubre la instalación de Amavisd, SpamAssassin y ClamAV para que los correos electrónicos sean escaneados en busca de spam y virus. También mostraré cómo instalar SquirrelMail como una interfaz de webmail para que los usuarios puedan leer y enviar correos electrónicos y cambiar sus contraseñas.

La ventaja de tal configuración “virtual” (usuarios y dominios virtuales en una base de datos MySQL) es que es mucho más eficiente que una configuración basada en usuarios del sistema “reales”. Con esta configuración virtual, tu servidor de correo puede manejar miles de dominios y usuarios. Además, es más fácil de administrar porque solo tienes que tratar con la base de datos MySQL cuando agregas nuevos usuarios/dominios o editas los existentes. No más comandos postmap para crear archivos db, no más recargas de Postfix, etc. Para la administración de la base de datos MySQL, puedes usar herramientas basadas en la web como phpMyAdmin, que también se instalará en este tutorial. La tercera ventaja es que los usuarios tienen una dirección de correo electrónico como nombre de usuario (en lugar de un nombre de usuario + una dirección de correo electrónico), lo que es más fácil de entender y recordar.

Este tutorial se basa en Mandriva 2010.0 (x86_64). Ya deberías haber configurado un sistema básico de Mandriva, como se describe en los capítulos 1 a 7 de este tutorial: https://www.howtoforge.com/perfect-server-mandriva-2010.0-free-x86_64-ispconfig-2. Por favor, omite el capítulo 6.1 Creando Un Script De Actualización Automática, porque si hay una actualización de Postfix, reemplazará nuestro Postfix personalizado que construiremos en el capítulo 3.

Este tutorial está destinado como una guía práctica; no cubre los antecedentes teóricos. Estos se tratan en muchos otros documentos en la web.

¡Este documento se proporciona sin garantía de ningún tipo! Quiero decir que este no es el único modo de configurar un sistema así. Hay muchas maneras de lograr este objetivo, pero este es el camino que elijo. No emito ninguna garantía de que esto funcione para ti!

Nota Preliminar

El sistema debe tener una dirección IP estática. Yo uso 192.168.0.100 como mi dirección IP en este tutorial y server1.example.com como el nombre del host.

1 Instalar Apache, MySQL, phpMyAdmin

Primero actualizamos nuestra base de datos de paquetes:

urpmi.update -a

Podemos instalar los paquetes con un solo comando:

urpmi MySQL MySQL-client lib64mysql-devel phpmyadmin db4-devel html2text lib64sasl-devel openssl-devel openldap-devel pcre-devel postgresql8.4-devel rpm-build

2 Instalar Courier Y Saslauthd

Para instalar Courier y saslauthd, simplemente ejecutamos:

urpmi courier-authlib courier-authlib-mysql courier-imap courier-pop cyrus-sasl lib64sasl2 lib64sasl2-devel lib64sasl2-plug-plain lib64sasl2-plug-anonymous lib64sasl2-plug-crammd5 lib64sasl2-plug-digestmd5 lib64sasl2-plug-gssapi lib64sasl2-plug-login

3 Aplicar Parche De Cuota A Postfix

Tenemos que obtener el rpm fuente de Postfix, parchearlo con el parche de cuota, construir un nuevo paquete rpm de Postfix e instalarlo.

cd /usr/src  
wget ftp://wftp.tu-chemnitz.de/pub/linux/mandrakelinux/official/2010.0/SRPMS/main/release/postfix-2.6.5-2mdv2010.0.src.rpm  
rpm -ivh postfix-2.6.5-2mdv2010.0.src.rpm

El último comando mostrará algunas advertencias que puedes ignorar:

warning: user mandrake does not exist - using root  
warning: group mandrake does not exist - using root

Ahora parcheamos las fuentes de Postfix con el parche postfix-2.6.5-vda-ng (de http://vda.sourceforge.net/):

cd /root/rpmbuild/SOURCES  
tar xvfz postfix-2.6.5.tar.gz  
gunzip postfix-2.6.5-vda-ng.patch.gz  
cd postfix-2.6.5  
patch -p1 < ../postfix-2.6.5-vda-ng.patch  
cd ..  
mv postfix-2.6.5.tar.gz postfix-2.6.5.tar.gz_orig  
tar -pczf postfix-2.6.5.tar.gz postfix-2.6.5/  
rm -fr postfix-2.6.5/  
gzip postfix-2.6.5-vda-ng.patch

Luego construimos nuestro nuevo paquete rpm de Postfix con soporte de cuota y MySQL:

cd /root/rpmbuild/SPECS/  
rpmbuild -ba postfix.spec

Nuestro paquete rpm de Postfix se crea en /root/rpmbuild/RPMS/x86_64, así que vamos allí:

cd /root/rpmbuild/RPMS/x86_64

El comando

ls -l

te muestra los paquetes disponibles:

[root@server1 x86_64]# ls -l  
total 3388  
-rw-r--r-- 1 root root  230449 2010-03-08 17:29 lib64postfix1-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root 1351340 2010-03-08 17:29 postfix-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root 1763590 2010-03-08 17:29 postfix-debug-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   30266 2010-03-08 17:29 postfix-ldap-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   25460 2010-03-08 17:29 postfix-mysql-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   25617 2010-03-08 17:29 postfix-pcre-2.6.5-2mdv2010.0.x86_64.rpm  
-rw-r--r-- 1 root root   25476 2010-03-08 17:29 postfix-pgsql-2.6.5-2mdv2010.0.x86_64.rpm  
[root@server1 x86_64]#

Primero desinstala tu paquete Postfix actual…

urpme postfix

…luego selecciona los paquetes postfix y postfix-mysql e instálalos así:

rpm -ivh postfix-2.6.5-2mdv2010.0.x86_64.rpm postfix-mysql-2.6.5-2mdv2010.0.x86_64.rpm

4 Establecer Contraseñas De MySQL Y Configurar phpMyAdmin

Por defecto, la red no está habilitada en el paquete MySQL de Mandriva 2010.0, pero la red es requerida por ISPConfig. Podemos cambiar esto comentando la línea skip-networking en /etc/my.cnf:

vi /etc/my.cnf

| [...] # No escuchar en un puerto TCP/IP en absoluto. Esto puede ser una mejora de seguridad, # si todos los procesos que necesitan conectarse a mysqld se ejecutan en el mismo host. # Toda interacción con mysqld debe hacerse a través de sockets Unix o pipes con nombre. # Ten en cuenta que usar esta opción sin habilitar pipes con nombre en Windows # (a través de la opción "enable-named-pipe") hará que mysqld sea inútil! # #skip-networking [...] |

Después, creamos los enlaces de inicio del sistema para Apache y MySQL…

chkconfig mysqld on  
chkconfig httpd on

… y comenzamos ambos servicios:

/etc/init.d/mysqld start  
/etc/init.d/httpd start

Ahora verifica que la red esté habilitada. Ejecuta

netstat -tap | grep mysql

La salida debería verse así:

[root@server1 x86_64]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im                  *:*                         LISTEN      14395/mysqlmanager  
tcp        0      0 *:mysql                     *:*                         LISTEN      14403/mysqld  
[root@server1 x86_64]#

A continuación, ejecuta

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

para establecer una contraseña para el usuario root (¡de lo contrario, cualquiera puede acceder a tu base de datos MySQL!).

Ahora puedes dirigir tu navegador a http://server1.example.com/phpmyadmin/ o http://192.168.0.100/phpmyadmin/ e iniciar sesión con el nombre de usuario root y tu nueva contraseña de root de MySQL.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.