Este tutorial le mostrará cómo configurar múltiples dominios de correo (alojamiento virtual) en el servidor CentOS/RHEL con PostfixAdmin, que es una interfaz web de código abierto para configurar y administrar un servidor de correo electrónico basado en Postfix para muchos dominios y usuarios.
Requisitos
Para seguir este tutorial, se requiere que
- Ha configurado PostfixAdmin con un dominio de correo.
- Ha seguido la parte 4 para configurar SPF y DKIM.
- Has instalado Roundcube Webmail.
Una vez que se cumplan los requisitos anteriores, siga las instrucciones a continuación.
Lo que debe hacer
Si desea alojar varios dominios de correo, debe
- Agregue un nuevo dominio de correo y usuario en el panel basado en web de PostfixAdmin.
- Cree un registro MX, A y SPF para el nuevo dominio de correo.
- Configure la firma DKIM para el nuevo dominio.
- Cree un registro DMARC para el nuevo dominio.
- Configure RoundCube Webmail, Postfix y Dovecot para varios dominios
Paso 1:agregar dominios adicionales en el panel de administración de Postfix
Inicie sesión en el panel PostfixAdmin con la cuenta postmaster. (https://postfixadmin.your-domain.com/
) Luego vaya a Domain List
-> New Domain
para agregar un nuevo dominio.
Tenga en cuenta que el nuevo dominio debe tener un registro DNS A, o PostfixAdmin arrojaría el siguiente mensaje de error. Puede comprobar el estado de propagación de DNS en dnsmap.io.
Invalid domain domain2.com, and/or not discoverable in DNS
Luego, agregue un usuario bajo el nuevo dominio.
Paso 2:Creación de registros MX, A y SPF para el nuevo dominio de correo
En su administrador de DNS, agregue el registro MX para el nuevo dominio como se muestra 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 su servidor usa una dirección IPv6, asegúrese de agregar un registro AAAA.
Luego cree un registro SPF para permitir que el host MX envíe correos electrónicos 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
Hemos instalado y configurado OpenDKIM para un solo dominio en la parte 4 de esta serie de tutoriales. Ahora debemos decirle a OpenDKIM que firme todos los correos electrónicos salientes para el nuevo dominio de correo.
Edite el archivo de la tabla de firmas de OpenDKIM.
sudo nano /etc/opendkim/SigningTable
Agregue el segundo dominio como se muestra a continuación.
*@domain1.com 20200308._domainkey.domain1.com *@domain2.com 20200308._domainkey.domain2.com
Edite el archivo de la tabla de claves.
sudo nano /etc/opendkim/KeyTable
Agregue el segundo dominio como se muestra a continuación.
20200308._domainkey.domain1.com domain1.com:20200308:/etc/opendkim/keys/domain1.com/20200308.private 20200308._domainkey.domain2.com domain2.com:20200308:/etc/opendkim/keys/domain2.com/20200308.private
Edite el archivo de hosts de confianza.
sudo nano /etc/opendkim/TrustedHosts
Agregue el segundo dominio como se muestra a continuación.
127.0.0.1 localhost *.domain1.com *.domain2.com
A continuación, necesitamos generar un par de claves privadas/públicas para el segundo dominio. Cree una carpeta separada para el segundo dominio.
sudo mkdir /etc/opendkim/keys/domain2.com
Genere claves usando opendkim-genkey
herramienta.
sudo opendkim-genkey -b 2048 -d domain2.com -D /etc/opendkim/keys/domain2.com -s 20200308 -v
El comando anterior creará claves de 2048 bits. -d (domain)
especifica el dominio. -D (directory)
especifica el directorio donde se almacenarán las claves y usamos 20200308
(fecha actual) como el selector (-s)
. Una vez que se ejecuta el comando, la clave privada se escribirá en 20200308.private
y la clave pública se escribirá en 20200308.txt
archivo.
Hacer opendkim
como propietario de la clave privada.
sudo chown opendkim:opendkim /etc/opendkim/keys/domain2.com/20200308.private
Mostrar la clave pública
sudo cat /etc/opendkim/keys/domain2.com/20200308.txt
La cadena después de p
el parámetro es la clave pública.
En su administrador de DNS, cree un registro TXT para el segundo dominio. Introduce 20200308._domainkey
en el campo Nombre. Copie todo lo que está entre paréntesis y péguelo en el campo de valor. Eliminar todas las comillas dobles. (Primero puede pegarlo en un editor de texto, eliminar todas las comillas dobles y luego copiarlo en su administrador de DNS. Su administrador de DNS puede requerir que elimine otros caracteres no válidos, como el retorno de carro).
Después de guardar sus cambios. Verifique el registro TXT con este comando.
dig TXT 20203008._domainkey.domain2.com
Ahora puede ejecutar el siguiente comando para probar si su registro DNS DKIM es correcto.
sudo opendkim-testkey -d domain2.com -s 20200308 -vvv
Si todo está bien, verás
opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key '20203008._domainkey.domain2.com' opendkim-testkey: key secure opendkim-testkey: key OK
Si ve "Clave no segura", no entre en pánico. Esto se debe a que DNSSEC no está habilitado en su nombre de dominio. DNSSEC es un estándar de seguridad para consultas DNS seguras. La mayoría de los nombres de dominio no han habilitado DNSSEC. Puede continuar siguiendo esta guía.
Reinicie OpenDKIM para que comience a firmar correos electrónicos para el segundo dominio.
sudo systemctl restart opendkim
Paso 4:Crear un registro DMARC para el nuevo dominio
Para crear un registro DMARC, vaya a su administrador de DNS y agregue un TXT registro. En el campo de nombre, ingrese _dmarc
. En el campo de valor, ingrese lo siguiente. Tenga en cuenta que debe crear el [email protected]
dirección de correo electrónico.
v=DMARC1; p=none; pct=100; rua=mailto:[email protected]
El registro DMARC anterior es un punto de partida seguro. Si desea leer una explicación detallada de DMARC, consulte el siguiente artículo.
- Creación de un registro DMARC para proteger su nombre de dominio de la falsificación de correo electrónico
Paso 5:Configuración de RoundCube, Postfix y Dovecot para varios dominios
Supongo que instaló Roundcube Webmail para el primer dominio de correo.
Tiene sentido permitir que los usuarios del primer dominio utilicen mail.domain1.com
y los usuarios del segundo dominio usan mail.domain2.com
al usar el correo web de RoundCube. Te mostraré cómo hacerlo con Apache y Nginx.
Apache
Si Roundcube es atendido por el servidor web Apache, cree un host virtual para el segundo dominio.
sudo nano /etc/httpd/conf.d/mail.domain2.com.conf
Ponga el siguiente texto en el archivo.
<VirtualHost *:80> ServerName mail.domain2.com DocumentRoot /var/www/roundcube/ ErrorLog /var/log/httpd/mail.domain2.com_error.log CustomLog /var/log/httpd/mail.domain2.com_access.log combined <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/roundcube/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
Guarde y cierre el archivo. Vuelva a cargar Apache para que los cambios surtan efecto.
sudo systemctl reload httpd
Nginx
Si Roundcube es atendido por el servidor web Nginx, cree un host virtual para el segundo dominio.
sudo nano /etc/nginx/conf.d/mail.domain2.com.conf
Ponga el siguiente texto en el archivo.
server { listen 80; server_name mail.domain2.com; root /var/www/roundcube/; index index.php index.html index.htm; error_log /var/log/nginx/roundcube.error; access_log /var/log/nginx/roundcube.access; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /.well-known/acme-challenge { allow all; } location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ { deny all; } location ~ ^/(bin|SQL)/ { deny all; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } }
Guarde y cierre el archivo. Luego pruebe las configuraciones de Nginx.
sudo nginx -t
Si la prueba es exitosa, vuelva a cargar Nginx para que los cambios surtan efecto.
sudo systemctl reload nginx
Obtención del certificado TLS
Ahora use Certbot para obtener el certificado TLS para todos sus dominios de correo, por lo que tendrá un solo certificado TLS con varios nombres de dominio y los clientes de correo no mostrarán advertencias de seguridad.
apache
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email [email protected]
Nginx
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email [email protected]
Tenga en cuenta que en el comando anterior, especificamos el nombre del certificado usando el primer dominio de correo, que se usará en la ruta del archivo, por lo que no tiene que cambiar la ruta del archivo en el archivo de configuración de Postfix o Dovecot.
Cuando le pregunte si desea actualizar el certificado existente para incluir el nuevo dominio, responda U
y pulsa Intro.
Ahora debería ver el siguiente mensaje, que indica que el certificado multidominio se obtuvo con éxito.
Vuelva a cargar Apache o Nginx para obtener el nuevo certificado.
sudo systemctl reload httpd sudo systemctl reload nginx
Ahora debería poder usar diferentes dominios para acceder al correo web de RoundCube. Además, debe volver a cargar el servidor Postfix SMTP y el servidor Dovecot IMAP para que puedan obtener el nuevo certificado. Eso es todo lo que necesita hacer para que Postfix y Dovecot sirvan múltiples dominios.
sudo systemctl reload postfix dovecot
Uso del cliente de correo en su computadora o dispositivo móvil
Inicie su cliente de correo electrónico de escritorio, como Mozilla Thunderbird, y agregue una cuenta de correo del segundo dominio.
- En la sección del servidor entrante, seleccione el protocolo IMAP, ingrese
mail.domain2.com
como nombre del servidor, elija el puerto 143 y STARTTLS. Elijanormal password
como método de autenticación. - En la sección saliente, seleccione el protocolo SMTP, ingrese
mail.domain2.com
como nombre del servidor, elija el puerto 587 y STARTTLS. Elijanormal password
como método de autenticación.
Sugerencia :también puede usar el puerto 993 con cifrado SSL/TLS para IMAP y el puerto 465 con cifrado SSL/TLS para SMTP. No deberías no utilice el puerto 25 como puerto SMTP para enviar correos electrónicos salientes.
Aunque el servidor Postfix SMTP y el servidor Dovecot IMAP usan el nombre de host del primer dominio de correo (mail.domain1.com) cuando se comunican con otros, ahora usan un certificado multidominio, por lo que el cliente de correo no mostrará advertencias de certificado.
Comprobación de SPF y DKIM
Ahora puede usar su cliente de correo electrónico de escritorio o su cliente de correo web para enviar un correo electrónico de prueba a [email protected]
y obtenga un informe de autenticación de correo electrónico gratuito. Aquí está el informe que obtuve de port25.com
No olvide probar su puntuación de correo electrónico en https://www.mail-tester.com y también pruebe la ubicación del correo electrónico con GlockApps.
Si la verificación DKIM falla, puede ir a https://www.dmarcanalyzer.com/dkim/dkim-check/ para ver si hay algún error con su registro DKIM.
¿Qué sucede si sus correos electrónicos aún se marcan como spam?
Tengo más consejos para ti en este artículo: 7 consejos efectivos para evitar que tus correos electrónicos se marquen como spam. Aunque requiere algo de tiempo y esfuerzo, sus correos electrónicos finalmente se colocarán en la bandeja de entrada después de aplicar estos consejos.
¿rDNS para múltiples dominios de correo?
El DNS inverso (rDNS), también conocido como registro PTR, se usa para verificar si la dirección IP del remitente coincide con el nombre de host HELO. No necesita agregar otro registro PTR al agregar un nuevo dominio de correo. Su rDNS debe configurarse con un solo nombre de host, es decir, el nombre de host configurado en Postfix, que se puede mostrar con el siguiente comando.
postconf myhostname
rDNS es un registro de direcciones IP. No es un registro de nombre de dominio. Si solo tiene una dirección IP, solo necesita un registro rDNS que apunte a un nombre de host. La verificación inversa de DNS no verifica qué From:
el dominio está en su correo electrónico, siempre que su dirección IP tenga un registro rDNS y el nombre de host pueda resolverse en la misma dirección IP, puede pasar la verificación DNS inversa.
Además, no necesita cambiar las siguientes configuraciones en Postfix cuando aloja múltiples dominios en un servidor.
- minombre de host
- mi origen
- midestino
Servicios de correo electrónico alojados como G Suite y Microsoft Exchange Online todos usan un nombre de host para un servidor para enviar un correo electrónico a sus clientes. Todos los correos electrónicos enviados por usuarios de G Suite usan google.com
en el nombre de host y los correos electrónicos enviados desde Microsoft Exchange Online, todos los usuarios usan outlook.com
en el nombre de host. Esto también es cierto para otros proveedores de servicios de correo electrónico como Mailchimp, SendinBlue, SendPluse, etc. Todos usan un nombre de host para un solo servidor y una dirección IP tiene solo un registro rDNS.