Skip to content

Ubuntu : configurer DomainKey et Dkim sur Postfix

Ecrit par Samuel le 26 juillet 2011

Il est aujourd’hui de plus en plus difficile de passer la barrière des filtres antispam.

Dans le domaine du jeu concours, la bonne réception des mails est un enjeu primordial. Une grande part de la réussite d’un jeu réside dans la viralité générée par le système de parrainage des joueurs. Or si les mails de parrainage tombent en spam la viralité sera très basse.

C’est pourquoi, il est important d’avoir des mails signés via Dkim et/ou DomainKey.

DKIM et DomainKey fonctionnent par signature cryptographique du corps du message et d’une partie de ses en-têtes. Cette signature vérifie donc l’authenticité du domaine expéditeur et garantit l’intégrité du message reçu.

Principe : Le mail envoyé contiendra une signature cryptée à partir d’une clef et du contenu du mail dont le  service de messagerie récepteur  (Gmail, yahoo, hotmail, …) pourra vérifier la validité à partir d’une clef publique déclarée dans les DNS du serveur d’envoi de l’email.

L’installation se fait donc en 2 parties :

1- Installation du service DKIM et/ou DomainKey sur Postfix pour ajouter la signature dans les emails envoyés.

2- Déclaration de la clef publique dans les DNS du serveur.

1- Installer DKIM sur Ubuntu

  • Installation du paquet

 apt-get install opendkim

  • On édite le fichier de config

nano /etc/opendkim.conf

  • On modifie les lignes suivantes :

Domain                 example.com
KeyFile                /etc/mail/dkim.key
Selector               dkim
SubDomains              yes

A noter :

- example.com sera à remplacer par le nom de votre serveur de mail

- le repertoire /etc/mail/ sera à créer (mkdir /ect/mail)

  • On génère les clefs public/privée

opendkim-genkey -t -s dkim -d example.com

  • On place la clef privée dans le répertoire /etc/mail

mv dkim.private /etc/mail/dkim.key

  • Ouvrir dkim.txt pour récupérer l’enregistrement TXT à déclarer dans vos enregistrements DNS

nano dkim.txt

  • On ajoute l’enregistrement chez notre hébergeur, tel que que vous le trouverez dans dkim.txt. Il sera de la forme :

dkim._domainkey IN TXT « v=DKIM1; g=*; k=rsa; t=y; p=CLEF_PUBLIQUE »

  • Pensez ensuite à supprimer ce fichier

 rm dkim.txt

  • On configue dkim sur Postfix

nano /etc/postfix/main.cfg

  • On ajouter les lignes suivantes en fin de fichier :

# DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

  • On lance le serveur opendkim

/etc/init.d/opendkim start

  • On relance postfix

 /etc/init.d/postfix restart

 

2 – Installer Domainkey sur Ubuntu

  • On installe le paquet dk-filter

apt-get install dk-filter

  • On génère ensuite les clefs (privée et publique)

openssl genrsa -out private.key 1024
openssl rsa -in private.key -out public.key -pubout -outform PEM

  • On déplace la clef privée dans /etc/mail

mv private.key /etc/mail/domainkey.key

  • On édite le ficher de configuration de dk-filter

nano /etc/default/dk-filter

  • On le modifie ainsi :

# Sane defaults: log to syslog
DAEMON_OPTS= »-l »
# Sign for domain.tld with key in /etc/mail/domainkey.key using
# selector ’2007′ (e.g. 2007._domainkey.domain.tld)
DAEMON_OPTS= »$DAEMON_OPTS -d domain.tld -s /etc/mail/domainkey.key -S dk »
# See dk-filter(8) for a complete list of options
#
# Uncomment to specify an alternate socket
#SOCKET= »/var/run/dk-filter/dk-filter.sock » # default
#SOCKET= »inet:54321″ # listen on all interfaces on port 54321
SOCKET= »inet:8892@localhost » # listen on loopback on port 8892
#SOCKET= »inet:12345@192.0.2.1″ # listen on 192.0.2.1 on port 12345

  • On ajoute les enregistrements suivant sur vos DNS

 _domainkey.domain.tld. IN TXT « t=y; o=~;

  •  et en récupérant le contenu de public.key (que l’on supprimera ensuite)

mail._domainkey.domain.tld. IN TXT « k=rsa; t=y; p=CONTENU_public.key »

  • On Modifie les 2 dernières lignes du fichier de config Postfix (/etc/postfix/main.cfg)

smtpd_milters = inet:localhost:8891,inet:localhost:8892
non_smtpd_milters = inet:localhost:8891,inet:localhost:8892

  • On lance dk filter

/etc/init.d/dk-filter restart

  • On relance postfix

/etc/init.d/postfix restart

 

Une autre bonne pratique est de déclarer un champ SPF dans ces DNS…. mais nous verrons ça dans un prochain article !

Articles liés

Il n'y a pas d'article lié .

Commentaires

  1. temps juillet 26, 2011

    Un autre problème avec les jeux, c’est leur crédibilité, mais enfin, nous sommes déjà au dela du problème technique. Mais influence les aces des navigateurs quelque soit les clefs de validations.
    Cordialement

Trackbacks

  1. ViralGames
  2. Pauline ROCHER
  3. Guillaume Durand
  4. SimonTernoir
  5. Pierre JONATHAN

Ajouter un commentaire

Required

Required

Optionnel