Post

Opendkim ,identifier ses mails avec le principe DKIM

Opendkim ,identifier ses mails avec le principe DKIM (Domain Key Identified Mail=Courriel au domaine identifié par clé)

Opendkim ,identifier ses mails avec le principe DKIM

Opendkim

Voici une proposition pour identifier ses mails avec le principe DKIM (Domain Key Identified Mail : Courriel au domaine identifié par clé), afin de ne plus être considéré comme potentiel spammeur. (plus d’infos sur [https://fr.wikipedia.org/wiki/DKIM Wikipedia]. Cela se fera avec opendkim, dont les dépendances sont moins lourdes que d’autres outils.

Installation des paquets

Toutes les commandes en mode su

Tout simplement :

1
apt-get install opendkim opendkim-tools

Création d’une clé

Nous allons créer les clés dans un répertoire fait exprès pour. Par exemple, nous allons créer /etc/dkim :

1
mkdir -p /etc/dkim

Générons les clés dans ce répertoire :

1
opendkim-genkey -D /etc/dkim/ -d votreDomaine.net -s mail

Vous pouvez voir dans ce répertoire 2 fichiers : mail.private et mail.txt

On rend l’utilisateur “opendkim” propriétaire de ce répertoire :

1
chown opendkim:opendkim -R /etc/dkim

Configuration d’opendkim

Edition de /etc/opendkim.conf

Pour un domaine unique

Ajouter à la fin du fichier “/etc/opendkim.conf” les lignes suivantes :

1
2
3
4
5
6
UserID opendkim:opendkim
Domain		 votreDomaine.net
KeyFile		 /etc/dkim/mail.private
Selector		 mail
AutoRestart	 yes
DNSTimeout   5

Pour du multi-domaine

Ça se complique un peu, pour chaque domaine il est préférable de générer une paire de clé différente et de les classer dans des répertoires séparés, par exemple : /etc/dkim/keys//

Ajouter à la fin du fichier “/etc/opendkim.conf” ajouter les lignes suivantes :

1
2
3
4
 KeyTable           /etc/dkim/KeyTable
 SigningTable       /etc/dkim/SigningTable
 ExternalIgnoreList /etc/dkim/TrustedHosts
 InternalHosts      /etc/dkim/TrustedHosts

Les 3 fichier vont lier les domaines à signer avec les clés de signature :

  • TrustedHosts = Liste les domaines à signer
  • SigningTable = Donne la correspondance entre les domaines et les selectors
  • KeyTable = Donne la correspondance entre les selectors et les clés à utiliser

**Automatisation **

Pour vous simplifier la tâche voilà un script simple permettant la génération des clés et la création des fichiers de configuration.

1
2
3
4
5
6
7
8
9
10
11
12
selector=mail
repertoire=/etc/dkim
domaines=(domain1.tld domaine2.tld)

for domaine in $domaines; do
  mkdir -p $repertoire/keys/$domaine
  opendkim-genkey -D $repertoire/keys/$domaine -r -d $domaine -s $selector
  chown opendkim:opendkim $repertoire/keys/$domaine/$selector.private
  echo "$selector._domainkey.$domaine $domaine:$selector:$repertoire/keys/$domaine/$selector.private" >> $repertoire/KeyTable
  echo "$domaine $selector._domainkey.$domaine" >> $repertoire/SigningTable
  echo "$domaine" >> $repertoire/TrustedHosts
done

Editer /etc/default/opendkim

Il faut que postfix et opendkim puissent communiquer. On ajoute alors dans /etc/default/opendkim ceci :

1
SOCKET="inet:8891:localhost"

Configuration de postfix

Indiquons à postfix qu’il doit signer les mails avec opendkim. Pour cela, ajouter dans /etc/postfix/main.cf :

1
2
3
4
5
# DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

Configurer les DNS

On y est presque! Il faut configurer aussi vos champs DNS. Je ne traite ici que le cas des DNS externes. Ajouter un champ DKIM ou TXT dans lequel sera mis le contenu du fichier /etc/dkim/mail.txt de la façon suivante :

  • Nom de domaine : mail._domainkey.votreDomaine.net
  • Contenu : v=DKIM; k=rsa; p=……..

Finalement…

On redémarre les services :

service opendkim restart service postfix restart

Tester si ça marche

http://www.appmaildev.com Sur cette page, une adresse mail vous est donnée. Envoyez-lui un mail. Quelques minutes plus tard, vous recevrez une réponse, dans laquelle vous devriez voir :

1
2
3
  ==============================================
  DKIM result: pass
  ==============================================

Dans le mail vous trouverez aussi des infos sur :

  • SPF est une autre méthode (simpliste) de vérification de la légitimité du serveur expéditeur.
  • DomainKey qui est le prédécesseur de DKIM, initié par Yahoo

Voir aussi

Cet article est sous licence CC BY 4.0 par l'auteur.