Despliegue de DKIM con exim en Debian
Concretamente con Debian v9 stretch, con exim v4.8.
En el resto del artículo, para los ejemplos se supone vun dominio llamado midominio.es
Básicamente, DKIM consiste en que el mensaje que se envía va firmado con una clave privada cuya contraparte pública se encuentra disponible en DNS, de forma que los receptores pueden comprobar que la firma del mensaje es correcta y, con ello, que el origen y el contenido del mensaje son auténticos.
1. Creación de par de claves pública/privada
sudo openssl genrsa -out midominio.es-private.pem 1024 sudo openssl rsa -in midominio.es-private.pem -out midominio.es-public.pem -pubout
2. Creación del registro DNS
En DNS hay que crear un registro TXT cuya 'clave' sea <selector>._domainkey.midominio.es, donde <selector> puede ser cualquier identificador que despues figure idéntico en la firma que hará exim en los correos. Como valor del registro TXT, el contenido de la clave pública creada en el paso anterior: es el contenido de midominio.es-public.pem eliminando cabecera, saltos de línea y pie: CUIDADO aquí pq es fácil cometer algún error.
3. Configuración exim
Dependiendo del tipo de configuración que se utilice, la configuración de exim se realiza en uno u otro fichero: si se usa fichero de configuración monolítico, entonces es exim4.conf.localmacros. Si no, alguno en el directorio conf.d/main, p.e. conf.d/main/000_localmacros puede servir.
Se añade la siguiente configuración:
DKIM_CANON=relaxed DKIM_SELECTOR=main DKIM_DOMAIN=rele.es DKIM_PRIVATE_KEY=/etc/exim4/midominio.es-private.pem
No se debe olvidar cuidar de que el usuario que corre exim tenga acceso de lectura a etcexim4/midominio.es-private.pem.
Despues:
sudo update-exim.conf sudo service exim4 restart
4. Pruebas
Antes de dar por bueno el despliegue, hay que probarlo: dkimvalidator.com permite enviar correo a una dirección que te facilita y examinar diversos tests, incluídos SPF y DKIM. Por último, correo a una dirección gmail también es un buen test, aunque en este caso solo se obtiene si falla un correo de devolución poco explicativo.