Afficher/cacher Sommaire
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 :
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 :
mkdir -p /etc/dkim
Générons les clés dans ce répertoire :
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 :
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 :
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 :
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.
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 :
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 :
# 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 :
==============================================
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