DomainKeys Identified Mail (DKIM) es un método de validación de correo electrónico que utiliza claves públicas y privadas. La clave privada se utiliza para firmar cada mensaje enviado y la clave pública es utilizada por el receptor del mensaje para validar la firma. Es muy importante utilizar DKIM porque, además de prevenir el fraude, da a sus correos electrónicos más posibilidades de no ser clasificados como SPAM.
Al hacer este tutorial utilicé Debian y DKIM-Filter 2.8.2.
Instalación y configuración de claves de correo identificadas por dominio (DKIM)
1. instale dkim-filter:
$ apt-get install dkim-filter
2. Crea las claves (públicas y privadas) y las carpetas donde deben guardarse. Repita este proceso para cada dominio para el que desee utilizar DKIM. He utilizado el dominio «masterdaweb.com» como ejemplo:
$ mkdir -p /etc/dkim/keys/masterdaweb.com $ cd /etc/dkim/keys/masterdaweb.com $ dkim-genkey -r -d masterdaweb.com
En la carpeta donde creamos las claves, /etc/dkim/keys/masterdaweb.com, tendremos dos archivos:
default.private (contiene la clave privada)
default.txt (contiene la clave pública)
El propio nombre del archivo «default.private» se utiliza como nombre del SELECTOR, que se utilizará en la configuración DNS. Si quieres cambiar el nombre del SELECTOR, sólo tienes que cambiar el nombre del fichero «default.private». En nuestro ejemplo lo dejaremos como está.
3. Cree el archivo «/etc/dkim-keys.conf»:
$ vi /etc/dkim-keys.conf
Añada la siguiente línea para cada dominio para el que desee utilizar DKIM:
*@masterdaweb.com:masterdaweb.com:/etc/dkim/keys/masterdaweb.com/default.private
Como en nuestro ejemplo no hemos cambiado el nombre del SELECTOR, por defecto tendrá el nombre «default.private», si has cambiado el nombre del SELECTOR corrige la línea añadida arriba con el nombre utilizado.
4. Añada un registro TXT al DNS de cada dominio que vaya a utilizar DKIM. El registro TXT que utilizaremos está en «/etc/dkim/keys/masterdaweb.com/default.txt». Para ello, sigue estos pasos:
Copiar registro TXT:
cat /etc/dkim/keys/masterdaweb.com/default.txt
Antes de añadir el registro TXT copiado, cambie el registro según el nombre del SELECTOR. En nuestro ejemplo, el registro copiado era:
por defecto._domainkey IN TXT «v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDewoXL1vvGBj/AyFYblIQSc1l5jRsYjDkeE4jVLSIDwgpqnWAMB6ibSuBU/ZS4zIWqIj2rTxHhowIO19obe9orf7XgKcq3kKAqtreznW15BfMBpCAoHVNd3q0yjniANFIXFH7mxEljR+ufFOtGYzIytFwPmDn2VepKZBaqLOOHDwIDAQAB». ;
En lugar de la palabra «por defecto», ponga el nombre del SELECTOR:
default.private._domainkey IN TXT «v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDewoXL1vvGBj/AyFYblIQSc1l5jRsYjDkeE4jVLSIDwgpqnWAMB6ibSuBU/ZS4zIWqIj2rTxHhowIO19obe9orf7XgKcq3kKAqtreznW15BfMBpCAoHVNd3q0yjniANFIXFH7mxEljR+ufFOtGYzIytFwPmDn2VepKZBaqLOOHDwIDAQAB». ;
Ahora inserte el registro TXT editado en el DNS del dominio.
Para comprobar si el registro TXT que ha añadido es válido, existe una herramienta en línea: http://dkimcore.org/c/keycheck
5. Cree el archivo «/etc/dkim-filter.conf»:
$ vi /etc/dkim-filter.conf
Añada la siguiente línea al archivo:
KeyList /etc/dkim-keys.conf
6. Abra el archivo «/etc/default/dkim-filter»:
$ vi /etc/default/dkim-filter
Añade el siguiente socket al archivo:
SOCKET=»inet:8891@localhost»
7. Configure Postfix para que consulte el filtro DKIM utilizando el socket que creó anteriormente:
$ vi /etc/postfix/main.cf
Añada las siguientes líneas al archivo:
milter_default_action = aceptar
protocolo_milter = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
8. Reinicie DKIM-Filter y recargue la configuración de Postfix:
$ /etc/init.d/dkim-filter restart $ postfix reload
¡Ya está! Ahora espere a que el DNS se propague y luego pruébelo enviando un correo electrónico y comprobando el encabezado del correo electrónico para ver si DKIM funciona correctamente.