Introducción

Actualmente el conocimiento para instalar un servidor de correo es una importante tarea para cualquier administrador de sistemas. En nuestro caso, vamos a ver cómo desplegar un servidor de correo con Postfix en Ubuntu.

Sobre Postfix

Postfix es un MTA (Mail Transfer Agent) libre y open-source que enruta y entrega correo electrónico (e-mails). Como servidor SMTP, Postfix implementa la primera capa de defensa contra spambots y malware. Puede ser utilizar para enviar y recibir e-mail. Es el MTA por defecto en todas las distribuciones Linux.

Prerrequisitos

Para seguir esta guía, deberías tener:

  • Acceso root a tu servidor Ubuntu.
  • Un FQDN que apunte a tu servidor Ubuntu.

Instalación de Postfix

El primer paso es la instalación de Postix. Es muy sencillo porque este software está los respositorios de paquetes por defecto de Ubuntu.

Como ésta es nuestra primera operación con apt en esta sesión, vamos a actualizar nuestro índice de paquetes locales e instalar el paquete de Postfix.

sudo apt update
sudo apt install postfix

Durante el proceso de instalación se te preguntará alguna información de configuración, como el nombre de correo del sistema, que debe de ser el dominio (en nuestro caso ophelia.ga). Una vez instalado, debería de comprobar el fichero /etc/mailname que contiene el dominio correcto.

root|ophelia:~$ cat /etc/mailname
ophelia.ga

También es importante comprobar que el dominio está configurado en el fichero /etc/hosts. En mi caso está bien configurado en la línea con la IP de loopback 127.0.1.1.

root|ophelia:~$ cat /etc/hosts
# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.debian.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
#     /etc/cloud/cloud.cfg or cloud-config from user-data
#
127.0.1.1 ophelia.ga ophelia
127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Configuración de DNS

Una cosa importante es tener la configuración básica de DNS hecha. Si tu dominio es “ophelia.ga”, entonces este dominio debe de estar configurado para apuntar las entradas DNS A (o AAAA si es IPv6) a tu servidor de correo. Esta configuración normalmente en la web de administración de tu hosting provider (En mi caso, DigitalOcean).

Para comprobar la configuración podrías ejecutar este comando desde el servidor de correo, o menor, desde otra máquina Linux.

yvoictra|lavrea:~$ dig A +noall +answer +multiline ophelia.ga
ophelia.ga.             3600 IN A 159.223.173.62

La dirección IP contestada debe de ser la misma que tienes en tu servidor de correo.

Creación de usuario

Una vez que Postfix está instalado, podemos crear un nuevo usuario para utilizarlo para enviar y recibir correos. Esto no es obligatorio, pero recomendado.

root|ophelia:~$ sudo adduser gabriel

Incluye el usuario al grupo de correo

Es recomendable incluir usuarios que deban acceder al correo, al grupo “mail”.

usermod -aG mail gabriel

Abriendo los puertos de Postfix

Normalmente el sistema operativo tiene los puertos de correo cerrados por defecto. En el caso de Ubuntu, debes de permitir a Postfix en las reglas:

root|ophelia:~$ sudo ufw allow Postfix
Rule added
Rule added (v6)

Ahora, las reglas deben incluir Postfix (Puerto 25 TCP) en la configuración de puertos permitidos:

root|ophelia:~$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
25/tcp (Postfix)           ALLOW IN    Anywhere                  
22/tcp (OpenSSH)           ALLOW IN    Anywhere                  
25/tcp (Postfix (v6))      ALLOW IN    Anywhere (v6)             
22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)             

Probando el puerto 25 TCP desde Internet

Ahora me gusta comprobar desde cualquier otra máquina de Internet si el puerto está abierto, y si puedo acceder sin problema. Como debes de saber de artículos previos, uso Netcat para comprobar la conectividad.

Para esta prueba, solo necesito la dirección IP pública del servidor de correo.

yvoictra|lavrea:~$ nc -w 1 -vz 159.223.173.62 25
Connection to 159.223.173.62 25 port [tcp/smtp] succeeded!

En este caso, la conexión está funcionando.

Testeando el servicio de correo con la herramienta mail

Entrega local

Para comprobar la correcta entrega de correo electrónico, podemos utilizar la herramienta mailutils. No está instalada por defecto, por lo que el primer paso es:

sudo apt install mailutils

El siguiente paso es enviar un e-mail desde el usuario local “root”, al nuevo usuario local “gabriel”. En este caso, debe de ser como esto (desde la cuenta de root):

root|ophelia:~$ mail gabriel@ophelia.ga
Cc: 
Subject: Test
Test
root|ophelia:~$ 

(Control+D para terminar)

El log /var/log/mail.log debe de tener esta información relacionada al correo:

Jul 26 09:17:28 ophelia postfix/pickup[10541]: DF5EA3F32F: uid=0 from=<root@ophelia.ga>
Jul 26 09:17:28 ophelia postfix/cleanup[11358]: DF5EA3F32F: message-id=<20220726071728.DF5EA3F32F@ophelia.ga>
Jul 26 09:17:28 ophelia postfix/qmgr[10542]: DF5EA3F32F: from=<root@ophelia.ga>, size=315, nrcpt=1 (queue active)
Jul 26 09:17:28 ophelia postfix/local[11361]: DF5EA3F32F: to=<gabriel@ophelia.ga>, relay=local, delay=0.06, delays=0.04/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
Jul 26 09:17:28 ophelia postfix/qmgr[10542]: DF5EA3F32F: removed

Entonces podemos conectarnos a la cuenta de usuario de gabriel para comprobar la entrega del mail, con el comando mail:

root|ophelia:~$ su - gabriel
gabriel@ophelia:~$ mail
"/var/mail/gabriel": 1 mensaje 1 nuevo
>N   1 root               lun jul 26 09:17  14/411   test
? 

Entrega remota

Ahora podemos probar la entrega de un e-mail a un servidor remoto. En este caso, usaremos la cuenta de usuario local “gabriel” para enviar un e-mail al servidor de GMail.

root|ophelia:~$ su - gabriel
gabriel@ophelia:~$ mail mytestaccount@gmail.com
Cc: 
Subject: Test
Test

(Control+D para terminar)

En esta situación, el correo podría no llegar al destino (es normal, no hemos terminado!)

Podrías tener una pista de lo que está ocurriendo en el log /var/log/mail.log:

Jul 26 09:20:45 ophelia postfix/pickup[10541]: 2AA2C3F330: uid=1000 from=<gabriel@ophelia.ga>
Jul 26 09:20:45 ophelia postfix/cleanup[11514]: 2AA2C3F330: message-id=<20220726072045.2AA2C3F330@ophelia.ga>
Jul 26 09:20:45 ophelia postfix/qmgr[10542]: 2AA2C3F330: from=<gabriel@ophelia.ga>, size=315, nrcpt=1 (queue active)
Jul 26 09:20:46 ophelia postfix/smtp[11516]: 2AA2C3F330: to=<mytestaccount@gmail.com>, relay=gmail-smtp-in.l.google.com[172.253.115.26]:25, delay=1.2, delays=0.02/0.01/0.48/0.65, dsn=5.7.1, status=bounced (host gmail-smtp-in.l.google.com[172.253.115.26] said: 550-5.7.1 [159.223.173.62      12] Our system has detected that this message is 550-5.7.1 likely unsolicited mail. To reduce the amount of SPAM sent to Gmail, 550-5.7.1 this message has been blocked. Please visit 550-5.7.1  https://support.google.com/mail/?p=UnsolicitedMessageError 550 5.7.1  for more information. o10-20020a05620a2a0a00b006aee4afb966si10902320qkp.524 - gsmtp (in reply to end of DATA command))
Jul 26 09:20:46 ophelia postfix/cleanup[11514]: 516913F334: message-id=<20220726072046.516913F334@ophelia.ga>
Jul 26 09:20:46 ophelia postfix/qmgr[10542]: 516913F334: from=<>, size=3019, nrcpt=1 (queue active)
Jul 26 09:20:46 ophelia postfix/bounce[11517]: 2AA2C3F330: sender non-delivery notification: 516913F334
Jul 26 09:20:46 ophelia postfix/qmgr[10542]: 2AA2C3F330: removed
Jul 26 09:20:46 ophelia postfix/local[11519]: 516913F334: to=<gabriel@ophelia.ga>, relay=local, delay=0.02, delays=0/0.01/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Jul 26 09:20:46 ophelia postfix/qmgr[10542]: 516913F334: removed

En mi caso, el servidor de GMail ha establecido el estado del mail como bounced, con el error 550-5.7.1. GMail tiene una web para explicar cada error de los que devuelve su servidor SMTP. No te preocupes, es algo normal tener este error en los primeros pasos.

Sobre mi error, esta es la info de GMail:

550, “5.7.1”, Nuestro sistema ha detectado una cantidad anómala de correo no solicitado procedente de tu dirección IP. Para tratar de impedir que llegue SPAM a nuestros usuarios, hemos bloqueado el correo procedente de tu dirección IP. Consulta más información en el artículo Evitar que el correo enviado a los usuarios de Gmail se bloquee o se envíe a la carpeta de SPAM.

En la próxima sección, explicaré medidas para evitar este bloqueo.

Configura el servidor de correo para evitar ser bloqueado

Con respecto al servicio de correo electrónico, es bastante habitual que un servidor o un dominio se marque como un spammer. Yo creo que por defecto eres un spammer hasta que demuestres lo contrario. Excluyendo la posibilidad de que sea un servidor comprometido, un falso positivo se produce habitualmente por una de las siguientes causas:

  • El servidor es un servidor de correo electrónico abierto
  • La IP del sevidor del remitente está en lista negra
  • El servidor no tiene un FQDN y una entrada PTR en los DNS
  • La entrada DNS de The Sender Policy Framework (SPF) no existe, o está mal configurada
  • La entrada DNS de DomainKeys Identified Mail (DKIM) no existe, o está mal configurada

Aquí explicaré los mejores hábitos para evitar que te bloqueen otros servidores de correo.

Entradas DNS adicionales (Registros MX y PTR)

Previamente hemos comprobado o añadido las entradas DNS tipo A (o AAAA) apuntando a tu servidor de correo electrónico, pero es necesario otro tipo de entradas para tener el servidor correctamente configurado.

Las entradas que necesitamos son la entradas DNS MX y PTR.

Entradas DNS de tipo MX

Esta configuración es bastante simple. Solo necesitas añadir la entrada MX (normalmente desde la web de administración de tu proveedor de hosting. En mi caso, DigitalOcean), y es necesario añadir la variable “prioridad” y “TTL”. Dejaré estas variables con el valor por defecto (No priority = 0 ; TTL=14440 seconds).

Una vez hecho, podrías testear la configuración con dig.

[23:03:43] root|lavrea:~$ dig MX +noall +answer +multiline ophelia.ga
ophelia.ga.             14400 IN MX 0 ophelia.ga.

Entradas DNS de tipo PTR

Las entradas DNS de tipo PTR se utilizan para solucionar búsquedas DNS inversas o resolución DNS inversa (rDNS). Esto es un método para determinar el nombre del dominio asociado a una dirección IP.

Así, lo primero que necesito saber es la entrada tipo A (dirección IP) del servidor:

yvoictra|lavrea:~$ dig A +noall +answer +multiline ophelia.ga
ophelia.ga.             3600 IN A 159.223.173.62

Y ahora tengo que solicitar la entrada PTR con el comando dig utilizando el parámetro -x, en mi caso:

root|lavrea:~$ dig +noall +answer +multiline -x 159.223.173.62
62.173.223.159.in-addr.arpa. 1800 IN PTR ophelia.ga.

Hay otra forma de hacerlo (es más complicado porque hay que invertir la dirección IP, y añadir el sufijo “.in-addr.arpa.”), que es:

root|lavrea:~$ dig PTR 62.173.223.159.in-addr.arpa. +noall +answer
62.173.223.159.in-addr.arpa. 1438 IN    PTR     ophelia.ga.

Así que ¡sí! Ambas pruebas resuelven el dominio de mi servidor de correo (ophelia.ga), lo que significa que mi proveedor de hosting añadió la entrada DNS PTR cuando arranqué mi servidor.

Protocolos de autenticación (DKIM, SPF y DMARC)

Estos son mecanismos de autenticación que han sido creado en los últimos años para evitar SPAM.

SPF (Sender Policy Framework)

SPF (Sender Policy Framework) es un sistema que identifica los servidores de correo que están permitidos que envíen correo dado un determinado dominio. Configurado SPF ayuda a evitar que tu e-mail sea clasificado como SPAM.

El sistema SPF utiliza una nueva entrada DNS del tipo TXT. Si necesitas más información sobre esto, visita la páginas de sintaxis de entradas SPF. En mi experiencia, suelo utilizar la misma configuración que funciona bien en todos mis entornos.

v=spf1 a -all

Explco la sintaxis de esta entrada:

  • La etiqueta v=spf1 es obligatoria en este tipo de entradas.
  • La etiqueta a se utiliza para indicar que el “registro tipo A” del dominio está autorizado a enviar mail (es lo mismo que utilizando +a).
  • La etiqueta -all se utiliza con el carácter - para indicar que hay que prohibir cualquier otra entrada DNS (diferente de la entrada de tipo ‘A’).

Otras opciones podrían ser:

v=spf1 mx -all

En este caso, en lugar de utilizar la entrada de tipo ‘A’, se especifica que la entrada de tipo MX del dominio es el único permitido para enviar correo. En mi caso, esta opción también funcionaría porque también tengo entradas MX DNS en mi dominio.

v=spf1 ip4:159.223.173.62 -all

En este último ejemplo, he añadido la IPv4 de mi servidor de correo.

Finalmente, esta configuración tiene que hacerse en el servidor DNS. En mi caso, utilizaré mi proveedor de hosting, DigitalOcean, para hacerlo.

Una vez hecho, puedes comprobar los registros TXT con dig desde cualquier servidor Linux con conexión a Internet.

root|lavrea:~$ dig TXT ophelia.ga +noall +answer
ophelia.ga.             3600    IN      TXT     "v=spf1 a -all"

¡Y sí! El registro SPF ya está hecho.

DKIM (DomainKeys Identified Mail)

DKIM (DomainKeys Identified Mail) es un sistema que permite a tus servidores de correo añadir una firma en las cabeceras de los correos salientes. Esta cabecera identifica la llave pública de tu dominio para que otros servidores puedan verificar la firma. Esta firma te ayuda a mantener tu correo de ser considerado SPAM.

Instalar DKIM

El primer paso con DKIM, es instalar un par de paquetes

sudo apt install opendkim opendkim-tools
Ficheros de configuración DKIM

Una vez instalados, es necesario editar varios ficheros de configuración.

Empezaremos con el fichero de configuración opendkim.conf:

sudo vi /etc/opendkim.conf

Y añadiendo esta configuración al final del fichero.

AutoRestart             Yes
AutoRestartRate         10/1h
UMask                   002
Syslog                  yes
SyslogSuccess           Yes
LogWhy                  Yes

Canonicalization        relaxed/simple

ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable

Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
SignatureAlgorithm      rsa-sha256

UserID                  opendkim:opendkim

Socket                  inet:12301@localhost

El siguiente fichero de configuración es /etc/default/opendkim:

 sudo vi /etc/default/opendkim

Y añadimos la siguiente línea al final del fichero.

 SOCKET="inet:12301@localhost"

El último fichero a modificar es el de Postfix, que permitirá añadir las cabeceras DKIM.

 sudo vi /etc/postfix/main.cf

Es necesario añadir estas líneas.

milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301

El siguiente paso es crear la estructura de directorios:

sudo mkdir -p /etc/opendkim/keys

Y crear un fichero TrustedHosts nuevo

sudo vi /etc/opendkim/TrustedHosts

En el que deberías añadir el dominio de tu servidor de correo.

127.0.0.1
localhost
*.ophelia.ga

El siguiente fichero es el KeyTable, e igualmente, hay que añadir una línea del dominio.

sudo vi /etc/opendkim/KeyTable

Y añade la siguiente línea (¡cambia el dominio del servidor de correo!)

mail._domainkey.ophelia.ga ophelia.ga:mail:/etc/opendkim/keys/ophelia.ga/mail.private

Y el último fichero que añadir, SigningTable.

sudo vi /etc/opendkim/SigningTable

Añade una línea con este formato (¡cambia el dominio del servidor de correo!)

*@ophelia.ga mail._domainkey.ophelia.ga
Crear la llave DKIM

Y el último paso es crear las llaves DKIM.

Crea la siguiente estructura de directorios para el dominio:

sudo mkdir /etc/opendkim/keys/ophelia.ga
cd /etc/opendkim/keys/ophelia.ga

Y crea la llave DKIM:

sudo opendkim-genkey -s mail -d ophelia.ga

Tmabién es necesario cambiar el propietario del fichero.

sudo chown opendkim:opendkim mail.private

Finalmente, puedes ver la llave DKIM:

sudo cat mail.txt

Este fichero debería de tener este aspecto:

mail._domainkey IN      TXT     ( "v=DKIM1; h=sha256; k=rsa; "
          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAso301Saq6vQ6NTS3jJY6AV78xaj/nq8oVrkSkAEPXJBnFhUur/NDTMG1Fy4L+3QnJx6i9nyp/GnztACA/Iun34sMaqAvPZ1HxtjZYCj6V1qnpx1rXu0Q6EqsWfEP+RvrYHnoy51r46p1MH0zbi3ewrVShEqSlOuwFFljG4pDqFltUzA0ryt89Q6xT0WzhjAs1PRl/GwrsPWKi8"
          "9w08C7EDnOT9iH3PudhZtdXvJAxlm8TwnM9D5lW2GfGv4fAJKzwel5NLlhE/xlugT64bIe0fopAlCSN0BpcNQI49NZa4upshaoiiKqRlYfWZZuYoLLq5XWm/70EvQdawizl2rAEwIDAQAB" )  ; ----- DKIM key mail for ophelia.ga

El valor dentro del paréntesis es lo que necesitas. Selecciona y copia la región entera y no incluyas las dobles comillas antes de v=DKIM1. Tampoco incluyas las dobles comillas finales antes de cerrar los paréntesis, ni las intermedias.

Pégalo como valor para la entrada TXT en tu servidor DNS. Yo uitlizaré mi proveedor de hosting, DigitalOcean, para hacerlo.

Reinicia los servicios para añadir la llave DKIM
sudo service postfix restart
sudo service opendkim restart
Comprobar la configuración de DKIM

Podemos comprobar que la llave DKIM está instalada bien con la herramienta opendkim-testkey.

root|ophelia:~$ opendkim-testkey -d ophelia.ga -s mail -vvv
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key 'mail._domainkey.ophelia.ga'
opendkim-testkey: key not secure
opendkim-testkey: key OK
root|ophelia:~$

También podemos comprobar la resolución de esta entrada TXT desde cualquier servidor Linux.

root|lavrea:~$ dig +noall +answer +multiline mail._domainkey.ophelia.ga TXT
mail._domainkey.ophelia.ga. 3600 IN TXT "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAso301Saq6vQ6NTS3jJY6AV78xaj/nq8oVrkSkAEPXJBnFhUur/NDTMG1Fy4L+3QnJx6i9nyp/GnztACA/Iun34sMaqAvPZ1HxtjZYCj6V1qnpx1rXu0Q6EqsWfEP+RvrYHnoy51r46p1MH0zbi3ewrVShEqSlOuwFFljG4pDqFltUzA0ryt89Q6" "xT0WzhjAs1PRl/GwrsPWKi89w08C7EDnOT9iH3PudhZtdXvJAxlm8TwnM9D5lW2GfGv4fAJKzwel5NLlhE/xlugT64bIe0fopAlCSN0BpcNQI49NZa4upshaoiiKqRlYfWZZuYoLLq5XWm/70EvQdawizl2rAEwIDAQAB"

La última manera de comprobar que la configuración de DKIM es correcta, es utilizando el servicio verifier.port25.com. Es necesario enviar un email desde tu servidor de correo a la dirección check-auth@verifier.port25.com, y el servicio analizará tu mensaje y te enviará un informe por correo indicando si tu e-mail fuer firmado correctamente o no.

root|ophelia:~$ mail -a "From: root <root@ophelia.ga>" -s "Test" "check-auth@verifier.port25.com"
Cc: 
test
 
root|ophelia:~$ 

(Recuerda, Control+D para terminar)

Y comprueba la entrada de tu buzón de correo en la que recibirás el informe.

DMARC (Domain Message Authentication, Reporting and Conformance)

DMARC (Domain Message Authentication, Reporting & Conformance) te permite anunciar a los servidores de correo las políticas de tu dominio. Las políticas aplican a los correos que fallan las validaciones SPF o DKIM. También te permite solicitar informes de los mensajes fallidos recibiéndolos de los servidores de correo.

Esta configuración es opcional, pero creo que es bueno configurarlo. La entrada DMARC se añade para avisar a los servidores de correo qué hacer con los emails que indican que son de tu dominio pero fallan las validaciones SPF o DKIM.

La entrada DMARC también es un registro TXT (como SPF y DKIM), para la entrada _dmarc en tu dominio utiliza los siguientes valores:

"v=DMARC1;p=quarantine;sp=quarantine;adkim=s;aspf=s;rua=mailto:root@ophelia.ga;ruf=mailto:root@ophelia.ga;fo=1;ri=3600"

Los parámetros que he usado los detallo aquí:

  • v=DMARC1 es una etiqueta obligatoria.
  • p=quarantine, esto indica la política a aplicar al email que falle el chequeo de DMARC. En mi caso, utilizo ‘quarantine’ (no descartar, pero tratar de forma distinta a los correos normales). Esta política puede ser ’none’, ‘quarantine’ o ‘reject. ’none’ se utiliza para recoger los informes de DMARC para comprobar el estado de tu correo sin aplicar políticas.
  • sp=quarantine especifica meter en cuarentena los emails de los subdominios del dominio que falle la validación DMARC.
  • adkim=s especifica el ‘modo de alineamiento’ para las firmas DKIM. Puede ser r (relajado) o s (estricto).
  • aspf=s especifica el ‘modo de alineamiento’ para las firmas SPF. Puede ser r (relajado) o s (estricto).
  • rua=mailto:root@ophelia.ga especifica la dirección de email para enviar los informes.
  • ruf=mailto:root@ophelia.ga especifica la dirección de email para enviar los informes forenses.
  • fo=1 especifica opciones forenses. Valores permitidos: ‘0’ para generar informes si tanto las validaciones DKIM y SPF fallan, ‘1’ para generar informes si las validaciones DKIM o SPF falla para producir un resultado satisfactorio en DMARC, ’d’ para generar informes si DKIM ha fallado, o ’s’ si SPF ha fallado.
  • ri=3600 especifica el intervalo de informes que te gustaría recibir los informes XML agregados. Es una preferencia, y los ISPs podrían (y suelen hacerlo) enviar informes con distintos intervalos (normalmente uno al día).

Escribe el valor de las entradas TXT en tu servidor DNS y, como antes, utilizaré mi proveedor de hosting DigitalOcean, para hacerlo. Write the value for the TXT record in your DNS server, as before, I will use my hosting provider, DigitalOcean, to do it.

Comprobar la configuración de DMARC

La configuración de DMARC podría comprobarse con dig:

root|lavrea:d$ dig TXT _dmarc.ophelia.ga +noall +answer;
_dmarc.ophelia.ga.      3600    IN      TXT     "v=DMARC1;p=quarantine;sp=quarantine;adkim=s;aspf=s;rua=mailto:root@ophelia.ga;ruf=mailto:root@ophelia.ga;fo=1;ri=3600"
root|lavrea:d$ 

También podrías utilizar la herramienta de chequeo de DMARC dmarcian para validar tus registros DMARC.

Probando el servicio de correo con la herramienta mail de nuevo

Entrega remota

Como vimos antes, nuestro correo había sido rechazado. Ahora, con las configuraciones que hemos hecho, yo creo que será suficiente para tener nuestro servidor de correo funcionando.

Usaremos nuestro usuario gabriel user para enviar otro email al servidor de GMail.

root|ophelia:~$ su - gabriel
gabriel@ophelia:~$ mail mytestaccount@gmail.com
Cc: 
Subject: Test 2
Test 2

(Control+D para terminar)

Y ahora podemos revisar el log /var/log/mail.log para ver la respuesta del servidor de GMail.

Jul 27 17:19:53 ophelia postfix/pickup[19402]: E0D643F19D: uid=1000 from=<gabriel@ophelia.ga>
Jul 27 17:19:53 ophelia postfix/cleanup[21492]: E0D643F19D: message-id=<20220727151953.E0D643F19D@ophelia.ga>
Jul 27 17:19:53 ophelia opendkim[14911]: E0D643F19D: DKIM-Signature field added (s=mail, d=ophelia.ga)
Jul 27 17:19:53 ophelia postfix/qmgr[14842]: E0D643F19D: from=<gabriel@ophelia.ga>, size=351, nrcpt=1 (queue active)
Jul 27 17:19:55 ophelia postfix/smtp[21494]: E0D643F19D: to=<mytestaccount@gmail.com>, relay=gmail-smtp-in.l.google.com[172.253.115.26]:25, delay=1.8, delays=0.09/0.03/0.47/1.2, dsn=2.0.0, status=sent (250 2.0.0 OK  1658935195 bb13-20020a05622a1b0d00b0031ee2b1e392si10322968qtb.510 - gsmtp)
Jul 27 17:19:55 ophelia postfix/qmgr[14842]: E0D643F19D: removed

Y ¡¡¡sí!!!, el status del email es “sent” (enviado), por lo que el servidor de Gmail aceptó nuestro email. Buenas noticias. Ahora tenemos un servidor de correo corriendo con entrega local y remota.


Buy me a coffee

¡Ey! 👋 Gracias por tu visita a esta página. Si te gusta mi trabajo, quizás puedas ayudarme con un café, ¡Te lo agradeceré un montón! :-)