Volver al blog

Tutorial de configuración del servidor de correo: cómo usar Postfix, Dovecot, MySQL y SpamAssassin

Tutorial de configuración del servidor de correo: cómo usar Postfix, Dovecot, MySQL y SpamAssassin

Introducción

En Ubuntu 20.04, puede utilizar herramientas como Postfix, Dovecot, MySQL, y SpamAssassin para configurar un servidor de correo. El proceso puede resultar confuso para alguien que lo intenta por primera vez. Este tutorial tiene como objetivo simplificar el proceso de configuración del servidor de correo con pasos detallados. Al final de este tutorial, sabrá cómo agregar dominios virtuales, usuarios y alias. En última instancia, hará que su servidor virtual sea más seguro frente a los centros de spam.

Requisitos previos

Antes de comenzar con la configuración del servidor de correo, hay algunos requisitos previos que debe tener en cuenta. Primero, asegúrese de que su servidor privado virtual tenga un dominio que esté apuntando a su servidor. También necesita instalar y configurar MySQL. Además, debe tener un usuario con privilegios de root concedidos e instalar un certificado SSL. Finalmente, asegúrese de que su FQDN  esté configurado e identificado.

Si instala sus paquetes como usuario root, tendrá todos los privilegios. Por eso lo recomendamos:

Introduzca la contraseña de su usuario. En este punto, verá que el símbolo $ cambia a #. A continuación, exploremos los diferentes aspectos de la configuración uno por uno.

Paso 1: Instalación de paquetes

Comenzaremos aprendiendo cómo instalar paquetes:

Cuando aparezca la configuración de Postfix, seleccione Sitio de Internet:

Mail Server postfix config

Se le preguntará sobre el nombre de correo del sistema. Aquí, puede utilizar el FQDN o el dominio principal:

postfix configuration 2

Paso 2: Creación de una base de datos MySQL, dominios virtuales, usuarios y alias

A continuación, una vez instalados todos los paquetes, continuaremos con la configuración. Nuestro objetivo es configurar tres tablas. Una será para los dominios, otra para los usuarios y otra para los alias. Estas se alojarán en una base de datos MySQL que crearemos.

Supongamos que queremos llamar a nuestra base de datos servermail. Es libre de utilizar el nombre que elija. Así es como la crearemos:

Debe iniciar sesión como usuario root de MySQL:

A continuación, introduzca su contraseña. Si el intento es exitoso, se mostrará este resultado:

A continuación, crearemos un nuevo usuario para la autenticación de correo en particular. Otorgue el permiso SELECT de esta manera:

Después de eso, recargue sus privilegios de MySQL para aplicar los permisos correctamente:

A continuación, utilizaremos nuestra base de datos para crear las tablas e introducir los datos:

Crearemos tablas individuales para los dominios específicos que se reconocen como dominios autorizados:

El objetivo es introducir usuarios a la tabla. Por lo tanto, agregaremos la dirección de correo electrónico y la contraseña correspondientes. Tenga en cuenta que debe asociar cada usuario con un dominio:

A continuación, crearemos una tabla para todos nuestros alias virtuales para especificar todos los correos electrónicos que redirigiremos al otro correo electrónico:

Al final de este proceso, habrá creado con éxito tres tablas. A continuación, tenemos que introducir los datos.

  • Dominios virtuales

En esta sección, aprenderemos cómo introducir dominios dentro de la tabla virtual_domains . Específicamente, nos centraremos en cómo introducir el dominio principal (example.com) y el FQDN (hostname.example.com):

  • Correos electrónicos virtuales

A continuación, introduzca la dirección de correo electrónico y las contraseñas asociadas para cada uno de los dominios. Asegúrese de cambiar toda la información con su información específica:

  • Alias virtuales

Ahora puede introducir la dirección de correo electrónico a la que redirigirá la otra dirección de correo electrónico. La primera es el origen mientras que la segunda es el destino:

Luego, puede salir de MySQL:

Step 3: Configuring Postfix

Es importante configurar Postfix para que pueda gestionar las conexiones SMTP. También tiene que ser capaz de enviar los mensajes para todos los usuarios introducidos en la base de datos MySQL. Comencemos haciendo una copia del archivo predeterminado. Esto es para que pueda volver fácilmente a la configuración predeterminada si es necesario y cuando lo sea:

Ahora abra el archivo main.cf para modificarlo:

Comience comentando los parámetros TLS y luego agregue cualquier otro parámetro. En nuestro ejemplo, estamos utilizando los certificados SSL gratuitos. Por supuesto, puede cambiar la configuración según sus requisitos:

A continuación, agregará estos parámetros debajo de la configuración de TLS:

Después de eso, tenemos que comentar la configuración por defecto de mydestination. Luego, lo reemplazaremos con localhost. Con este cambio, el VPS podrá utilizar los dominios virtuales en la tabla MySQL:

Ahora use este comando para verificar que el parámetro myhostname está configurado en su FQDN:

Además, añada esta línea para activar la entrega de correo local a todos los dominios virtuales listados en la tabla:

Por último, añadiremos los siguientes parámetros para indicarle a Postfix que configure los dominios, usuarios y alias virtuales:

Para asegurarse de que no haya errores, compare estos cambios con el siguiente archivo:

https://www.dropbox.com/s/x9fpm9v1dr86gkw/etc-postfix-main.cf.txt

Once all of that is checked, you will create three files to append in the main.cf. El objetivo aquí es dar instrucciones a Postfix sobre cómo conectarse con MySQL. Para hacer esto, comenzaremos creando el archivo mysql-virtual-mailbox-domains.cf. Por supuesto, en su archivo, realizará los cambios según su configuración personal:

A continuación, reinicie Postfix:

Debe asegurarse de que Postfix sea capaz de encontrar su dominio. Para probar esto, use este comando:

El comando devolverá 1 si tiene éxito. En este caso, puede proceder creando el archivo mysql-virtual-mailbox-maps.cf :

Reinicie Postfix una vez más:

Nuevamente, nos aseguraremos de que Postfix sea capaz de encontrar la primera dirección de correo electrónico. Para probar esto, use el siguiente comando:

Si tiene éxito, obtendrá un resultado de 1 a cambio. Por lo tanto, pasaremos a crear el último archivo:

Esto completa la configuración entre Postfix y MySQL. Reinicie Postfix para aplicar:

Para confirmar que Postfix realmente está encontrando sus alias, use este comando:

Idealmente, debería recibir el correo que se reenvía al alias como salida. También puede modificar el /etc/postfix/master.cf archivo de esta manera si desea conectar el puerto 587 con clientes de correo electrónico de forma segura:

Aquí se explica cómo descomentar ciertas líneas y agregar parámetros:

A veces, es posible que deba reiniciar Postfix para confirmar que el puerto está abierto:

Esta herramienta también se puede utilizar para escanear los puertos del dominio. Puede usarla para verificar que los puertos 25 y 587 estén abiertos.

Paso 4: Configuración de Dovecot

Ahora es el momento de configurar Dovecot. Para esta sección, tendremos que copiar los 7 archivos que desea modificar. Esto es para asegurar que pueda revertir los cambios si es necesario. Ingrese este comando uno por uno:

Tiene que editar el archivo de configuración de Dovecot:

Asegúrese de que la opción esté descomentada:

A continuación, habilitaremos los protocolos debajo de la línea !include_try /usr/share/dovecot/protocols.d/*.protocol . Si lo desea, también puede agregar pop3:

Para asegurarse de que no haya errores, compárelo con este archivo:

https://www.dropbox.com/s/wmbe3bwy0vcficj/etc-dovecot-dovecot.conf.txt

A continuación, edite el archivo de configuración de correo:

Busque la línea mail_location . Debe descomentarla y agregar este parámetro:

Después de eso, busque la línea mail_privileged_group . Nuevamente, descoméntela y agregue el parámetro mail:

Para eliminar cualquier posibilidad de errores, compárelo con este archivo:

https://www.dropbox.com/s/hnfeieuy77m5b0a/etc.dovecot.conf.d-10-mail.conf.txt

  • Verificación de permisos

Para verificar los permisos, use este comando:

Asegúrese de que sus permisos se muestren de la siguiente manera:

Puede crear una carpeta para cada dominio. Todas estas carpetas se registrarán en la tabla MySQL:

Cree un usuario y grupo vmail usando un id de 5000:

A continuación, debe cambiar el propietario de la carpeta /var/mail al usuario vmail:

Ahora edite el archivo /etc/dovecot/conf.d/10-auth.conf :

Añada la siguiente línea después de descomentar la autenticación de texto plano:

Utilice esto para modificar el auth_mechanisms parámetro:

Ahora comente esta línea:

Para habilitar la autorización de MySQL, tiene que descomentar la siguiente línea:

Para detectar y editar errores, utilice el siguiente archivo:

https://www.dropbox.com/s/4h472nqrj700pqk/etc.dovecot.conf.d.10-auth.conf.txt

Crear un archivo /etc/dovecot/dovecot-sql.conf.ext con su información le permitirá autenticarse:

Introduzca este código en el archivo:

Utilizaremos nuestra información personalizada de MySQL para modificar el archivo /etc/dovecot/dovecot-sql.conf.ext :

Establezca MySQL como parámetro después de descomentar el parámetro driver de esta manera:

Puede introducir su información específica de MySQL descomentando la línea connect :

Ahora tiene que descomentar la línea default_pass_scheme y cambiarla a SHA-512:

Añada la siguiente información después de descomentar password_query:

Para detectar errores, utilice este archivo para comparar:

https://www.dropbox.com/s/48a5r0mtgdz25cz/etc.dovecot.dovecot-sql.conf.ext.txt

A continuación, puede cambiar el propietario y el grupo de la carpeta dovecot al usuario vmail:

El siguiente paso es modificar el archivo /etc/dovecot/conf.d/10-master.conf . Debe tener mucho cuidado aquí, ya que se cambiarán diferentes parámetros:

Utilice el siguiente código para cambiar el parámetro unix_listener a service_auth:

A continuación, tiene que editar service auth-worker así:

Detecte errores comparando con este archivo:

https://www.dropbox.com/s/g0vnt233obh6v2h/etc.dovecot.conf.d.10-master.conf.txt

El siguiente paso es modificar el archivo de configuración SSL de Dovecot. Si planea usar la configuración predeterminada, puede omitir este paso e ir a la siguiente sección:

A continuación, cambie el ssl parámetro a required de esta manera:

También modificaremos la ruta para ambos ssl_cert y ssl_key:

Reinicie Dovecot:

Asegúrese de verificar que el puerto 993 esté abierto. Si ha habilitado pop3, entonces también verifique el puerto 995:

Si ha completado los pasos hasta este punto, ¡felicitaciones! Ha configurado su servidor de correo con éxito. Para asegurarse de haber realizado todos los pasos correctamente, puede probar su cuenta con la ayuda de un cliente de correo electrónico como este:

El puerto 993 se utiliza para IMAP seguro y el puerto 587/puerto 25 para SMTP.

Paso 5: Configuración de SpamAssassin

Finalmente hemos llegado a la última sección del tutorial donde configuraremos SpamAssassin. Comenzaremos instalando SpamAssassin:

Cree un usuario para SpamAssassin de esta manera:

Debe abrir y modificar los ajustes de configuración para poder configurar SpamAssassin:

Ahora que está aquí, debe cambiar el ENABLED parámetro para habilitar el demonio de SpamAssassin:

Modifique los parámetros home y options con este código:

Use esta línea para especificar el PID_File parámetro:

A continuación, use este comando para indicar que las reglas de SpamAssassin se actualizarán automáticamente:

Verifique si hay errores comparando con el siguiente documento:

https://www.dropbox.com/s/ndvpgc2jipdd4bk/etc.default.spamassassin.txt

Si desea configurar las reglas anti-spam, debe abrir el /etc/spamassassin/local.cf archivo de nuevo:

La forma en que funciona SpamAssassin es que califica cada correo recibido por el usuario. Evalúa las puntuaciones de los correos electrónicos y, si es superior a 5.0 en su control de spam, el correo se marca como spam. Aquí están los parámetros que puede usar para configurar estas reglas anti-spam:

Una vez configuradas las reglas anti-spam, debe indicarle a Postfix que cada correo electrónico debe ser verificado con SpamAssassin. Para este propósito, necesitamos modificar el /etc/postfix/master.cf archivo:

Busque la siguiente línea y agregue el spamassassin filtro:

Ahora puede añadir estos parámetros:

Finalmente, inicie SpamAssassin y reinicie Postfix para aplicar los cambios. Cuando vuelva a iniciar, Postfix comenzará a verificar el spam de los correos electrónicos:

¡Y eso es todo! Ha configurado con éxito su servidor de correo con Postfix y Dovecot. También realizó la autenticación MySQL y configuró el filtrado de spam con SpamAssassin.

Conclusión

Este tutorial describe los pasos que debe seguir para realizar la configuración de su servidor de correo con las herramientas mencionadas anteriormente. Podría utilizarse como una guía completa para que configure su servidor de correo de forma independiente. Si está interesado en utilizar la función de servidor SMTP de Google, siga este tutorial.

¡Feliz informática!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev es diseñador creativo en CloudSigma, centrado en una identidad empresarial coherente mediante el uso de canales de marketing tradicionales e innovadores. Es experto en fusionar la visión artística con el marketing estratégico para crear narrativas de marca impactantes.

Comentarios

Aún no hay comentarios. Sea el primero.