Cómo configurar DKIM (OpenDKIM) con Postfix | EasyDMARC

Cómo configurar DKIM (OpenDKIM) con Postfix

5 min de lectura
OpenDKIM Postfix

Las claves de identificación de dominio digitales (DKIM o DomainKeys Identified Mail en inglés) son un protocolo de autenticación para mensajes de correo que permiten a los destinatarios verificar cuando un mensaje de correo proviene realmente del dominio del cual fue emitido. Dado que los correos de spam frecuentemente contienen encabezados falsificados, se hace necesaria este tipo de autenticación. DKIM es un sistema que utiliza criptografía para claves públicas que permite a los remitentes firmar electrónicamente sus correos electrónicos para validarlos y agilizar el proceso de verificación por parte de los destinatarios. DKIM también protege tus mensajes de correo contra la manipulación, otorgando integridad de extremo a extremo en las comunicaciones, desde el momento en que se genera la firma hasta que el agente de transferencia de correo (MTA) procesa la validación.

DKIM es implementado de múltiples maneras diferentes por cada sistema operativo y agente de trasferencia de correos que existe, por ejemplo, Linux usa Postfix como su MTA predeterminado, por lo cual tiene sentido cubrir todos los pasos de implementación de OpenDKIM para Postfix; de esta forma, los usuarios de CentOS podrán instalar y configurar OpenDKIM en Postfix para la versión más actualizada de este sistema operativo.

Cómo instalar y configurar OpenDKIM con Postfix en CentOS de Linux

Paso 1: Instalación

1. Primero, instala OpenDKIM.

sudo yum install opendkim 

Paso 2: Procede a configurar OpenDKIM

2. Edita el archivo de configuración principal de OpenDKIM

sudo nano /etc/opendkim.conf

3.Busca la línea "Mode v" y cámbiala a "Mode sv"

OpenDKIM está configurado de forma predeterminada en el modo de verificación (v), el cual chequea las firmas DKIM de los mensajes de correo recibidos. Si cambias la configuración al modo «sv» este nos permitirá activar el modo de firma para todos los correos salientes.

Change “Mode v” to “Mode sv”

4. En el mismo archivo de configuración de OpenDKIM, busca las siguientes líneas y elimina el comentario (#)

Keyfile
KeyTable
SigningTable
ExternalIgnoreList
InternalHosts

Remove the Comment (#) for

5. Al final de este archivo, agrega tu dominio

Domain yourdomain.com

Tambien debes incluir el comando RequireSafeKeys Falso

RequireSafeKeys False

Add “RequireSafeKeys False”

6. A continuación, debes editar el archivo de la tabla de firmas.

sudo nano /etc/opendkim/SigningTable

7. Ahora procederás a agregar la siguiente línea al final de este archivo, el cual le indica a OpenDKIM que si un remitente en tu servidor está usando cualquier dirección @yourdomain.com (en este ejemplo, *@easydmarc.me), entonces este mensaje debe ser firmado con la clave identificadora por defecto._domainkey.yourdomain.com (en este ejemplo, *@easydmarc.me). ejemplo, predetermined._domainkey.easydmarc.me)

*@yourdomain.com yourselector._domainkey.yourdomain.com

*@yourdomain.com yourselector._domainkey.yourdomain.com

sudo nano /etc/opendkim/SigningTable

Nota: el valor predeterminado es el selector DKIM, ten presente que cualquier dominio puede tener varias firmas DKIM y el selector DKIM te permite elegir una clave DKIM específica, la cual puedes usar con cualquier nombre de tu elección, pero es necesario asegurarte de no tener una firma DKIM ya implementada con el mismo nombre de selector.

8. Guarda y cierra el archivo de configuración principal para OpenDKIM

9. Ahora, edita el archivo KeyTable.

sudo nano /etc/opendkim/KeyTable

Agrega la siguiente línea, que especifica la ubicación de la clave DKIM privada.

yourdomain.com:selector:/etc/opendkim/keys/yourdomain.com/default.private

En esta captura de pantalla puedes ver como el selector se define como predeterminado

sudo nano /etc/opendkim/KeyTable10. Guarda y cierra el archivo.

11. A continuación, debes editar el archivo OpenDKIM de huéspedes de confianza.

sudo nano /etc/opendkim/TrustedHosts

127.0.0.0.1 y ::1 se incluyen en este archivo de forma predeterminada.

12. Ahora agrega la siguiente línea: *.yourdomain

sudo nano /etc/opendkim/TrustedHosts

Paso 3: Generar claves privadas y públicas

1. Crea un nuevo directorio para tu dominio

sudo mkdir /etc/opendkim/keys/yourdomain.com

2. Genera las claves usando la herramienta generadora de claves de OpenDKIM

sudo opendkim-genkey -b 1024 -d yourdomain.com -D /etc/opendkim/keys/yourdomain.com -s yourselector -v

sudo opendkim-genkey -b 1024 -d domain.com -D /etc/opendkim/keys/domain.com -s selector -v

3. Puedes hacer que OpenDKIM sea el propietario de la clave

sudo chown opendkim:opendkim /etc/opendkim/keys -R 

Paso 4: Publica la clave pública creada en tu DNS

1. Obtén y muestra la clave pública

sudo cat /etc/opendkim/keys/yourdomain.com/default.txt

sudo cat /etc/opendkim/keys/domain.com/default.txt2. Impleméntala en tu DNS (en este ejemplo puedes ver como la aplicamos en Cloudflare).

Notas importantes:

Nombre/Objetivo: yourselector._domainkey

Contenido: Valor que copiado en la etapa anterior. Asegúrate de eliminar los espacios y las comillas dobles.

Implement the Public Key in your DNS

3. Después de publicar la clave pública DKIM en su DNS, debes confirmar que DKIM es válido usando la herramienta de búsqueda de registros DKIM de EasyDMARC.

easydmarc dkim lookup tool

Paso 5: Conecta Postfix a OpenDKIM

Ahora que has configurado OpenDKIM, es hora de implementar DKIM en Postfix, asi que sigamos el proceso de configuración.

1. Edita el archivo de configuración principal de Postfix

sudo nano /etc/postfix/main.cf

2. Agrega las siguientes líneas al final del archivo: “main.cf”, estas permitirán que Postfix llame a OpenDKIM a través del protocolo milter.

smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters milter_default_action = accept 

open dkim configuration

3. Guarda y cierra el archivo.

4. Reinicia OpenDKIM y Postfix

sudo service opendkim restart
sudo service postfix restart

Paso 6: Comprueba que DKIM está funcionando

1. Envía un correo de prueba desde tu servidor para confirmar que DKIM está funcionando con Postfix.

Send a Test email and confirm DKIM is working

¡Felicitaciones!, has configurado OpenDKIM para Postfix, ahora puedes estar seguro que tus correos electrónicos llegaran a sus destinatarios tal como fueron concebidos en su forma original.