Cómo alojar varios dominios de correo en iRedMail con Nginx

Este tutorial te mostrará cómo alojar varios dominios de correo electrónico (alojamiento virtual) con iRedMail, que es una manera fácil de configurar tu propio servidor de correo electrónico.

Cómo alojar varios dominios de correo

Requisitos previos

Para seguir este tutorial, se supone que

  • Ya ha configurado un servidor de iRedMail con un dominio.
  • Está utilizando iRedMail 0.9.8 o superior, que utiliza Nginx para servir el webmail. El soporte para el servidor web Apache se elimina en la versión 0.9.8.

Lo que hay que hacer

Si quieres alojar varios dominios de correo, tienes que

  • Añade un nuevo dominio de correo y un usuario en el panel de administración de iRedMail.
  • Crea los registros MX, A y SPF para el nuevo dominio de correo.
  • Configurar la firma DKIM para los dominios adicionales.
  • Configurar el registro DMARC para el nuevo dominio.
  • Configurar RoundCube Webmail, Postfix y Dovecot para múltiples dominios

La comprobación del DNS inverso se utiliza para comprobar si la dirección IP del remitente coincide con el nombre de host HELO. No es necesario añadir otro registro PTR al añadir un nuevo dominio de correo.

Cómo alojar varios dominios de correo

Paso 1: Añadir dominios adicionales en el panel de administración de iRedMail

Entre en el panel de administración de iRedMail con la cuenta de postmaster. (https://mail.your-domain.com/iredadmin) A continuación, añada dominios en la pestaña Añadir.

A continuación, añade un usuario en el nuevo dominio.

Paso 2: Creación de registros MX, A y SPF para el nuevo dominio de correo

En su gestor de DNS, añada el registro MX para el nuevo dominio como se indica a continuación.

Record Type    Name      Value

MX             @         mail.domain2.com

El registro A apunta a la dirección IP de su servidor de correo.

Record Type    Name     Value

A              mail     IP-address-of-mail-server

Si tu servidor utiliza una dirección IPv6, asegúrate de añadir un registro AAAA.

A continuación, cree el registro SPF para permitir que el host MX envíe correo electrónico para el nuevo dominio de correo.

Record Type    Name      Value

TXT            @         v=spf1 mx ~all

Paso 3: Configuración de la firma DKIM para el nuevo dominio

Necesitas decirle a amavisd que firme todos los correos salientes para el nuevo dominio de correo. Edite el archivo /etc/amavis/conf.d/50-user.

sudo nano /etc/amavis/conf.d/50-user

Encuentra la siguiente línea,

dkim_key('domain1.com', 'dkim', '/var/lib/dkim/domain1.com.pem');

Añade otra línea para especificar la ubicación de la clave privada del segundo dominio.

dkim_key('domain2.com', 'dkim', '/var/lib/dkim/domain2.com.pem');

En la sección @dkim_signature_options_bysender_maps, añade la siguiente línea.

 "domain2.com" => { d => "domain2.com", a => 'rsa-sha256', ttl => 10*24*3600 },

Guarda y cierra el archivo. A continuación, genera la clave privada para el segundo dominio.

sudo amavisd-new genrsa /var/lib/dkim/domain2.com.pem 2048

Reinicia Amavis.

sudo systemctl restart amavis

Mostrar las claves públicas.

sudo amavisd-new showkeys

Se mostrarán todas las claves públicas. Necesitamos la clave pública del segundo dominio, que está entre los paréntesis.

En su gestor de DNS, crea un registro TXT para el este nuevo dominio. Introduce dkim._domainkey en el campo Host. Copia todo lo que hay entre los paréntesis y pégalo en el campo de valor. Borra todas las comillas dobles. (Puedes pegarlo primero en un editor de texto, eliminar todas las comillas dobles y luego copiarlo en tu gestor de DNS. Es posible que tu gestor de DNS te pida que elimines otros caracteres no válidos, como el retorno de carro).

Después de guardar los cambios. Compruebe el registro TXT con este comando.

dig TXT dkim._domainkey.domain2.com

Ahora puede ejecutar el siguiente comando para comprobar si su registro DNS DKIM es correcto.

sudo amavisd-new testkeys

Si el registro DNS es correcto, la prueba pasará.

TESTING#1 domain1.com: dkim._domainkey.domain1.com => pass
TESTING#2 domain2.com: dkim._domainkey.domain2.com => pass

Tenga en cuenta que su registro DKIM puede necesitar algún tiempo para propagarse a Internet. Dependiendo del registrador de dominios que utilice, su registro DNS puede propagarse instantáneamente o puede tardar hasta 24 horas en hacerlo.

Puedes ir a https://www.dmarcanalyzer.com/dkim/dkim-check/, introducir dkim como selector e introducir tu nombre de dominio para comprobar la propagación del registro DKIM.

Paso 4: Configuración del registro DMARC para el nuevo dominio

To create a DMARC record, go to your DNS manager and add a TXT record. In the name field, enter _dmarc. In the value field, enter the following:

v=DMARC1; p=none; pct=100; rua=mailto:dmarc-reports@your-domain.com

Paso 5: Configuración de RoundCube, Postfix y Dovecot para múltiples dominios

Tiene sentido dejar que los usuarios del primer dominio utilicen mail.dominio1.com y los usuarios del segundo dominio utilicen mail.dominio2.com como dirección para usar RoundCube webmail

Cambia el directorio de trabajo a /etc/nginx/.

cd /etc/nginx/

Crea un archivo de bloque de servidor en blanco para este nuevo dominio en el directorio /etc/nginx/sites-enabled/.

sudo touch sites-enabled/mail.domain2.com.conf

Copia las configuraciones del sitio HTTP por defecto en el archivo.

cat sites-enabled/00-default.conf | sudo tee -a sites-enabled/mail.domain2.com.conf

Copia las configuraciones del sitio SSL por defecto en el archivo.

cat sites-enabled/00-default-ssl.conf | sudo tee -a sites-enabled/mail.domain2.com.conf

Editar el archivo de host virtual.

sudo nano sites-enabled/mail.domain2.com.conf

Encuentra la siguiente línea.

server_name _;

Necesitamos cambiar el nombre_del_servidor a mail.dominio2.com, porque más tarde necesitamos usar Certbot para generar un nuevo certificado tls.

server_name mail.domain2.com;

Hay 2 instancias de server_name, necesitas cambiar ambas. Guarde y cierre el archivo. A continuación, pruebe la configuración de Nginx.

sudo nginx -t

Si la prueba es exitosa, recarga Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Ahora utiliza el plugin de Certbot webroot para obtener el certificado TLS para todos tus dominios de correo, así tendrás un único certificado TLS con múltiples nombres de dominio en él y los clientes de correo no lanzarán advertencias de seguridad.

sudo certbot certonly --webroot --agree-tos -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email your-email-address -w /var/www/html

Observa que en el comando anterior, hemos especificado el nombre del certificado utilizando el primer dominio de correo, que se utilizará en la ruta del archivo, por lo que no tienes que cambiar la ruta del archivo en el archivo de configuración de Postfix o Dovecot.

Cuando te pregunte si quieres actualizar el certificado existente para incluir el nuevo dominio, responde U y pulsa Enter.

Now you should see the following message, which indicates the multi-domain certificate is successfully obtained.

Si encuentras el siguiente error,

Detail: Invalid response from
https://mail.domain2.com/.well-known/acme-challenge/j3Nd2mNFQ43P9xLJSP4IFAiRytDCb3bemZwuAxDzWQc
[xx.xx.xx.xx]: 404

entonces necesitas usar el plugin certbot nginx para obtener el certificado TLS.

sudo apt install python3-certbot-nginx
sudo certbot certonly -a nginx --agree-tos -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email your-email-address

Una vez obtenido el certificado TLS, recargue Nginx para que recoja el nuevo certificado.

sudo systemctl reload nginx

Ahora deberías poder utilizar diferentes dominios para acceder al webmail de RoundCube. También es necesario recargar el servidor SMTP Postfix y el servidor IMAP Dovecot para que recojan el nuevo certificado.

sudo systemctl reload postfix dovecot

Comprobación de SPF y DKIM

Ahora puedes utilizar tu cliente de correo electrónico de escritorio o cliente de correo web para enviar un correo electrónico de prueba a check-auth@verifier.port25.com y obtener un informe de autenticación de correo electrónico gratuito. Este es el informe que obtuve de port25.com

postfix spf dkim ubuntu

No olvides probar tu puntuación de correo electrónico en https://www.mail-tester.com y también probar la colocación del correo electrónico con GlockApps.

¿Qué pasa si tus correos electrónicos siguen siendo marcados como spam?

Tengo más consejos para ti en este artículo: 7 consejos eficaces para evitar que tus correos electrónicos sean marcados como spam. Aunque requiere algo de tiempo y esfuerzo, tus correos electrónicos acabarán siendo colocados en la bandeja de entrada tras aplicar estos consejos.

¿RDNS para múltiples dominios de correo?

El DNS inverso (rDNS), también conocido como registro PTR, se utiliza para comprobar si la dirección IP del remitente coincide con el nombre de host HELO. No es necesario añadir otro registro PTR al añadir un nuevo dominio de correo. Su rDNS debe ser configurado a un solo nombre de host, es decir, el nombre de host establecido en Postfix, que puede ser mostrado con el siguiente comando.

postconf myhostname

rDNS es un registro para direcciones IP. No es un registro para nombres de dominio. Si sólo tiene una dirección IP, entonces sólo necesita un registro rDNS que apunte a un nombre de host. La comprobación de DNS inverso no verifica qué dominio From: hay en su correo electrónico, siempre que su dirección IP tenga un registro rDNS y el nombre de host pueda resolverse a la misma dirección IP, puede pasar la comprobación de DNS inverso.

Además, no es necesario cambiar la siguiente configuración en Postfix cuando se alojan varios dominios en un servidor.

  • myhostname
  • myorigin
  • mydestination

Los servicios de correo electrónico alojados, como G Suite y Microsoft Exchange Online, utilizan un nombre de host para un servidor para enviar un correo electrónico para sus clientes. Los correos electrónicos enviados desde los usuarios de G Suite utilizan todos google.com en el nombre de host y los correos electrónicos enviados desde los usuarios de Microsoft Exchange Online utilizan todos outlook.com en el nombre de host. Lo mismo ocurre con otros proveedores de servicios de correo electrónico como Mailchimp, SendinBlue, SendPluse, etc. Todos ellos utilizan un nombre de host para un solo servidor y una dirección IP tiene un solo registro rDNS.

Hasta aquí este tutorial, Espero que te haya ayudado a alojar múltiples dominios de correo electrónico con iRedMail.

¡Que tengas un Ingenioso día!

¡que tengas un ingenioso día!

Contrata tu plan Ingenios@ de Sistemas por 5€ al mes y responderé a todas tus preguntas sobre tecnología en el menor tiempo posible. Pasa a formar parte de la comunidad Ingenios@s de Sistemas y disfruta de contenido exclusivo y aprende sobre sistemas Open Source, Blockchain, SmarContract, Web3, Inteligencia Artificial y Reaidad Virtual, súbete al tren de la Revolución 4.0

Si quieres estar al día y no perderte nada Suscribete al Podcast Ingenios@s de Sistemas, un episodio diario que te mantendrá informado y formado en esta vertiginosa carrera.

Deja un comentario

Share to...