Servidor de correo con docker

En este post, explicaré como montar un servidor de correo completo y no morir en el intento. Un servidor de correo se compone de 2 partes principalmente. MTA (mail delivery agent) en este caso será postfix y MDA (mail delivery agent) en este caso dovecot. Además de esto, se va a utilizar RSPAMD. Un potente gestor de SPAM que incluye filtros de graylist, dkim… Y para los certificado se utilizará letsencrypt.

El proyecto que he utilizado es el de hardware/mailserver

En este ejemplo hay que sustituir dominio.tld por el dominio que se quiera utilizar.

Pasos previos

Para empezar, es necesario tener 3 cosas previamente instaladas que vamos a utilizar. Docker, docker-compose y traefik.

Despliegue de docker

Una vez instalado esto, solo queda crear el proyecto y el docker-compose

Una vez definido el docker-compose, hay que levantarlo del siguiente modo:

Y aquí ya empezará a levantar todos los servicios. Dará error en la parte de certs pero es porque está traefik levantado y tiene el puerto 443 ocupado.

Configuración DNS

Ahora toca configurar los DNS de una manera correcta.

Registro A

El primero registro que hay que tener es el de mail.

Registro MX

Ahora el siguiente es el de MX

Registro DKIM

A continuación vamos a crear el DKIM. Esto vale para validar que el servidor de correo es autentico. Para esto se utiliza una key pública que se creará en la carpeta: /var/mail/dkim/dominio.tld/public.key

Registro SPF

Siguiente registro que hay que crear es el SPF. Esto vale para verificar la autenticidad de los servidores SMTP

Registro DMARC

Ahora vamos con el DMARC. Esto junto con SPF y DKIM protege la parte from del envelope

Pues con esto ya se tendría en producción un servidor de correo. Ahora para acceder a las URL

URLs

URL de posfixadmin

Desde aquí se configurarán todos los dominios de correo y cuentas de las que se quiera disponer

URL RSPAMD

Aquí se podrán ver los correos que han entrado y en que situación están

URL Webmail

Para poder acceder al mail desde un navegador

 

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *