Servidor de correo · 3 min read · Sep 28, 2025
Usuarios Y Dominios Virtuales Con Postfix, Courier Y MySQL (Debian Etch)
Usuarios Y Dominios Virtuales Con Postfix, Courier Y MySQL (Debian Etch)
Versión 1.0
Autor: Falko Timme
Este tutorial tiene derechos de autor (c) 2007 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 basado en 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 cual 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.
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 cual es más fácil de entender y recordar.
Este tutorial está destinado a ser 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!
1 Nota Preliminar
Este tutorial se basa en Debian Etch, así que deberías configurar una instalación básica de Debian Etch antes de continuar con este tutorial. El sistema debe tener una dirección IP estática. Uso 192.168.0.100 como mi dirección IP en este tutorial y server1.example.com como el nombre del host.
2 Instalar Postfix, Courier, Saslauthd, MySQL, phpMyAdmin
Para instalar Postfix, Courier, Saslauthd, MySQL y phpMyAdmin, simplemente ejecutamos
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl postfix-tls libsasl2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysqlSe te harán algunas preguntas:
¿Crear directorios para la administración basada en web? <– No
¿Tipo general de configuración? <– Sitio de Internet
¿Nombre de correo? <– server1.example.com
¿Certificado SSL requerido? <– Ok
3 Aplicar El Parche De Cuota A Postfix
Tenemos que obtener las fuentes de Postfix, parchearlo con el parche de cuota, construir nuevos paquetes Postfix.deb e instalar esos paquetes .deb:
apt-get install build-essential dpkg-dev fakeroot debhelper libgdbm-dev libldap2-dev libpcre3-dev libssl-dev libsasl2-dev postgresql-dev po-debconf dpatch libdb4.3-dev libmysqlclient15-dev lsb-release libcdb-devcd /usr/src
apt-get source postfix(Asegúrate de usar la versión correcta de Postfix en los siguientes comandos. Tengo Postfix 2.3.8 instalado. Puedes averiguar tu versión de Postfix ejecutando
postconf -d | grep mail_versionLa salida debería verse así:
server1:~# postconf -d | grep mail_version
mail_version = 2.3.8
milter_macro_v = $mail_name $mail_version)
wget http://vda.sourceforge.net/VDA/postfix-2.3.8-vda.patch.gz
gunzip postfix-2.3.8-vda.patch.gz
cd postfix-2.3.8
patch -p1 < ../postfix-2.3.8-vda.patch
dpkg-buildpackageEs posible que veas una advertencia como esta al final del comando dpkg-buildpackage:
(ADVERTENCIA: Falló al firmar el archivo .dsc y .changes)Puedes ignorar este mensaje.
Para instalar nuestro nuevo paquete de Postfix, ejecutamos
cd ..
dpkg -i postfix_2.3.8-2_i386.deb
dpkg -i postfix-mysql_2.3.8-2_i386.debRecibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.