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.
4. En el mismo archivo de configuración de OpenDKIM, busca las siguientes líneas y elimina el comentario (#)
Keyfile
KeyTable
SigningTable
ExternalIgnoreList
InternalHosts
5. Al final de este archivo, agrega tu dominio
Domain yourdomain.com
Tambien debes incluir el comando RequireSafeKeys Falso
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
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
10. 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
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
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
2. 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.
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.
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
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.
¡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.