Voici une procédure indiquant comment créer une entrée DKIM, permettant d’authentifier l’envoi des mails.
DKIM est une méthode d’authentification des serveurs de mails associant cryptographie à clé publique et DNS.
Sous Linux, il est préférable d’utiliser opendkim.
aptitude install opendkim
Il faut ensuite générer une paire de clés qui seront utilisées pour DKIM :
mkdir -p /etc/postfix/dkimkeys cd /etc/postfix/dkimkeys openssl genrsa -out privatedkim.key 1024 openssl rsa -in privatedkim.key -pubout -out publicdkim.key chmod 640 privatedkim.key chown opendkim:opendkim *.key
La configuration se réalise dans /etc/opendkim.conf
Voici un fichier de configuration basique, il faut au moins spécifier un selector, un domaine et le fichier de clé :
Syslog yes UMask 002 Domain boutique.blml.fr KeyFile /etc/postfix/dkimkeys/privatedkim.key Selector boutique
Il faut aussi indiquer le SOCKET de connexion dans le fichier /etc/default/opendkim :
SOCKET="inet:[email protected]" # listen on loopback on port 12345
Puis il faut configurer le serveur de mail pour qu’il utilise ce socket. Avec postfix, le fichier /etc/postfix/main.cf doit contenir ceci :
milter_default_action = accept milter_protocol = 6 smtpd_milters = inet:localhost:12345 non_smtpd_milters = inet:localhost:12345
La configuration système se termine en relançant les services :
/etc/init.d/postfix reload /etc/init.d/opendkim restart
Enfin il faut faire un enregistrement TXT dans la zone DNS. L’enregistrement est de la forme
<selector>._domainkeys.<domaine> IN TXT « v=DKIM1; k=rsa; p=<Clé publique du fichier publicdkim.key>
Avec la boutique blml cela donne (en une seule ligne) :
boutique._domainkey.boutique.blml.fr. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEezrazeBAQUAA4GNADCBiQKBgQDvtn0KVraH+ci4wxao0q2z/f2prOfxMNFt8ipLaerazerze546YfXaBU0/2pPwOPGh2R3+MMYrYT0gs8q/anWTkbLN/Ks89zertaSDAIP8qkQgAftT/EvXURFzce3NA377er7uDqcUquQLn3xlNNit+ez645rEZRIDAQAB"
Pour tester le DNS
dig boutique._domainkey.boutique.blml.fr TXT
Pour vérifier la signature des mails, les en-têtes doivent contenir la clé DKIM avec un « pass »
Pour un debug avancé, regarder http://www.brandonchecketts.com/emailtest.php.