Servidor de correo · 3 min read · Oct 05, 2025
Solución Completa de Servidor de Correo con Dominios y Usuarios Virtuales (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - Página 2
III. Instalando y configurando el Servidor MySQL (+Esquema PostFixAdmin)
Primero, necesitamos instalar el servidor MySQL en sql-1.internal.example.com. Para facilitar las cosas, también vamos a instalar el cliente de línea de comandos de MySQL. Esto se puede lograr escribiendo lo siguiente en el prompt:
# apt-get install mysql-server mysql-clientDespués de que apt-get haya realizado su magia de instalación, querrás bloquear el acceso root a la base de datos mysql. Esto se hace utilizando la herramienta mysqladmin.
# mysqladmin -u root password "mypassword"NOTA: ¡Cambia mypassword por tu propia contraseña segura!!!
Ahora vamos a crear la base de datos y los usuarios para Usuarios y Dominios Virtuales. Es importante notar que Postfix (y Dovecot) solo requieren acceso SELECT a esta base de datos. PostfixAdmin requerirá SELECT, UPDATE e INSERT.
# mysql -uroot -p
Enter password:
mysql> CREATE DATABASE virtual_mail;
mysql> GRANT SELECT ON virtual_mail.* TO 'vmail_user'@'mx-1.example.com' IDENTIFIED BY 'vmail_user_password';
mysql> GRANT SELECT,UPDATE,INSERT ON virtual_mail.* TO 'vmail_admin'@'mx-1.example.com' IDENTIFIED BY 'vmail_admin_password';
mysql> GRANT SELECT ON virtual_mail.* TO 'vmail_user'@'mx-2.example.com' IDENTIFIED BY 'vmail_user_password';
mysql> GRANT SELECT,UPDATE,INSERT ON virtual_mail.* TO 'vmail_admin'@'mx-2.example.com' IDENTIFIED BY 'vmail_admin_password';
mysql> quitNOTA: ¡Cambia vmail_user_password y vmail_admin_password por tus propias contraseñas seguras!!!
Ahora necesitamos descargar Postfix Admin. Aunque la herramienta en sí no es obligatoria para nuestra configuración, es muy útil y el esquema que utiliza está bien pensado. Una vez que hayas descargado el archivo tarball de distribución de Postfix Admin, descomprímelo así:
# tar xfvz postfixadmin-2.1.0.tgzDentro del directorio resultante, abre postfixadmin-2.1.0/DATABASE_MYSQL.TXT con tu editor de texto favorito. Elimina todas las líneas bajo la sección “Postfix / MySQL”. Estas líneas crean la base de datos inicial, que ya hemos hecho. Para Postfix Admin 2.1.0, estas son las líneas 26-39.
Cuando termines, carga el archivo en tu tabla MySQL existente con el siguiente comando:
# mysql -uroot -p virtual_mail < postfixadmin-2.1.0/DATABASE_MYSQL.TXTNOTA: Si recibes un error que dice “Acceso denegado para el usuario ‘mail’@’localhost’ a la base de datos ‘mysql’”, entonces no comentaste las líneas correctamente. Si no recibes ningún mensaje después de ingresar tu contraseña, entonces todo salió bien.
IV. Servidor de Compartición de Archivos NFS
Muchos servidores van a requerir acceso a las carpetas Maildir de nuestros usuarios, así que para simplificar las cosas, vamos a instalarlas en un montaje NFS. Uno de los beneficios de Maildir es que es compatible con NFS. El formato de buzón, en cambio, no sería bonito. Afortunadamente, configurar NFS en Debian es tan simple como configurar cualquier otro servicio.
Comencemos instalando el servicio en files-1.internal.example.com:
# apt-get install nfs-kernel-server nfs-common portmapLas Exportaciones NFS (Comparticiones) son controladas por el archivo /etc/exports. Cada línea comienza con la ruta local absoluta de un directorio a exportar, seguida de una lista de clientes permitidos separados por espacios. NFS puede ser extremadamente poderoso, pero no voy a entrar en todos los detalles aquí. Para nuestros propósitos, lo siguiente sería suficiente:
/etc/exports:
/vmail mx-1.internal.example.com(ro, insecure) mx-2.internal.example.com(ro, insecure) postman.internal.example.com(rw, no_root_squash) secure-mail.internal.example.com(rw, no_root_squash)Si realizas cambios en /etc/exports en un servidor NFS en funcionamiento, puedes hacer que los cambios sean efectivos emitiendo el comando:
# exportfs -aVamos a necesitar un usuario real para manejar todos los mapeos virtuales en nuestra configuración. Para esta solución, vamos a usar el id de usuario 150. Este id de usuario es para un usuario “Correo Virtual” creado específicamente. Utiliza el grupo “mail” estándar, con el gid predeterminado (Debian) de 8. Puedes crear el usuario y el directorio así:
# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Buzón Virtual" vmail
# mkdir /vmail
# chmod 770 /vmail/
# chown vmail:mail /vmail/ NOTA: Este usuario deberá ser creado en todos los servidores que accederán a esta compartición (mx-1, mx-2, postman, files-1, secure-mail). Si el usuario no existe, podrías obtener errores de acceso a archivos. Aunque se podría usar NIS para crear un único host para este usuario, eso está fuera del alcance de este documento.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.