Servidor de correo en un VPS

Después de haber visto varios escenarios de cómo configurar un servidor de correo, hoy veremos como hacerlo pero dentro de un VPS donde no se cuenta con LDAP o MySQL/PostgreSQL como backends de almacenamiento de usuarios. Básicamente estaremos autenticando contra un archivo de texto, procedimiento sencillo y que es más que eficiente y suficiente para pocas cuentas de correo.

Este procedimiento es válido para Debian/Ubuntu, aunque si se adapta a AlmaLinux/RockyLinux debería funcionar del mismo modo. Se asume que ya usted tenga tenga actualizado el sistema:

Primero que nada, deshabilitemos:

Ojo: Recordarles quiero que el sistema de correo depende de un vinculo estrecho con el sistema de dns. Así que configuren bien su archivo de resolución de nombres:

Y dejamos de la siguiente manera:

Antes de instalar algo debemos instalar los utilitarios básicos o herramientas que
necesitaremos para nuestro trabajo:

Comenzamos con añadir el grupo de nuestros sistema de correo al que llamaré vmail:

Usuario del sistema:

Instalando el combo Postfix+Dovecot+SASL

Ahora debemos agregar el usuario postfix al grupo sasl:

Así postfix trabajará con la autenticación sasl.

Habilitando sasl

Ahora, debemos editar /etc/default/saslauthd debemos editar y dejar así:

Para lo cual ejecutaremos:

Listo por acá. Ahora pasaremos a los certificados SSL.

Certbot – Lets Encrypt / Certificados autofirmados

Instalando el bot de los certificados Lets Encrypt:

Generando los certificados:

Si usas certificados autofirmados:

Ahora veamos Dovecot

Antes de seguir debemos entender las variables usadas por Dovecot:

%u – usuario, nombre de usuario completo (por ejemplo: [email protected])
%n – usuario, parte del nombre del usuario que no incluye el dominio (por ejemplo: usuario)
%d – dominio, parte del usuario que no incluye el usuario (por ejemplo: dominio.tld)

Editar:

cambiar:

Editar:

Descomentar:

Si deseamos deshabilitar los puertos 110[pop3] y 143[imap v4] que son inseguros:

en /etc/dovecot/conf.d/10-master.conf debemos comentar los puertos y añadir port = 0

La sección lmtp dejarla así:

La sección de autenticación dejarla así:

Editar:

cambiar:

Si se usan los certificados de Let’s Encrypt:

Si se usan certificados autofirmados:

Además:

Editar:

cambiar:

comentar:

descomentar:

Editar:

cambiar:

Ahora creamos el archivo donde se van a almacenar los usuarios:

Para generar el password del usuario:

Nota: Como este proceso es engorroso, al final adjunto script de creación de los usuarios, para mejorar este punto.

Y el formato del archivo de password:

Y por último Postfix:

Primero generaremos los certificados:

Ahora procederemos a configurar Postfix:

Editamos:

Y agregamos esto[OJO: esto es un extracto de ejemplo, que funciona, pero que puede/debe ser mejorado]:

Ahora crear el dominio:

Añadiendo nuestro dominio:

Poner:

Hacer db del dominio:

El fichero para evitar la suplantación de identidad:

Y el contenido:

Permitir smtp y smtps

Ajustamos de la siguiente manera:

Listo. Ahora a reiniciar Postfix, Dovecot y SASL:

Ya que estás de cara a internet o de cara a un ambiente hostil, pon firewall:

Hacemos backup de las reglas por default y agregamos las nuestras personalizadas:

Y creamos nueva configuración

Para finalizar, añado un script mencionado anteriormente creado por mí para añadir/actualizar usuarios a este servidor:

Contenido:

Permisos de ejecución:

¿Funcionamiento? Fácil, ejecutar en la consola del server:

Y ahora si acabé :D.

Adjunto link a repo de github con todos los archivos usados de ejemplo, para que se guíen en caso de dudas. Saludos y espero les sirva.

Agradecimientos:

A mi compañero de inventos @danny920825 y a @TicoAM_cu, que me pone a inventar.

Referencias:

[1] https://www.vultr.com/docs/how-to-install-postfix-dovecot-and-roundcube-on-ubuntu-20-04
[2] https://wiki.meurisse.org/wiki/Dovecot
[3] https://syslink.pl/cipherlist/

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*