postfix doit être installé
Installation des paquet requis :
apt-get update apt-get install opendkim opendkim-tools
Editer le fichier de configuration :
vim /etc/opendkim.conf
Ajouter les lignes suivantes :
AutoRestart Yes AutoRestartRate 10/1h UMask 002 Syslog yes SyslogSuccess Yes LogWhy Yes Canonicalization relaxed/simple ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts KeyTable refile:/etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable Mode sv PidFile /var/run/opendkim/opendkim.pid SignatureAlgorithm rsa-sha256 UserID opendkim:opendkim Socket inet:17789@localhost
Editer le fichier :
vim /etc/default/opendkim
Ajouter la ligne suivante :
SOCKET="inet:17789@localhost"
Editer le fichier :
vim /etc/postfix/main.cf
Ajouter les lignes suivantes :
# START - DKIM CONFIG milter_protocol = 2 milter_default_action = accept # smtpd_milters = inet:localhost:17789 non_smtpd_milters = inet:localhost:17789 # END - DKIM CONFIG
Création de la structure de fichier :
mkdir /etc/opendkim mkdir /etc/opendkim/keys
Ajuster le hôtes de confiance :
vim /etc/opendkim/TrustedHosts
Exemple :
127.0.0.1 localhost 192.168.2.2/32 *.domaine1.com *.domaine2.com
Il faut créer un tableau de correspondance : clé publique (DNS) et clé privé (serveur mail).
Créer/Editer le fichier :
vim /etc/opendkim/KeyTable
Ajouter par exemple les lignes suivantes, à modifier selon le nom de domaine :
mail._domainkey.domaine1.com. keexybox.org:mail:/etc/opendkim/keys/domaine1.com/mail.private mail._domainkey.domaine2.com. sagstem.com:mail:/etc/opendkim/keys/sdomaine2.com/mail.private
Par exemple, la clé publique révélée par l'enregistrement DNS mail._domainkey.domaine1.com
, correspondra à la clé privé localisé dans /etc/opendkim/keys/domaine1.com/mail.private
.
L'idée est d'assigner un domaine de messagerie @domaine.com
à un profil de clé public.
Editer le fichier :
vim /etc/opendkim/SigningTable
Insérer par exemple les lignes suivantes, à ajuster selon vos domaines :
Se rendre dans le répertoire de stockage des clé :
cd /etc/opendkim/keys
Créer le répertoire pour les clé de domaine1.com
et aller dans le répertoire. par exemple :
mkdir domaine1.com cd domaine1.com
Générer la pair de clé :
openssl genrsa -out mail.private openssl rsa -in mail.private -out mail.public -pubout -outform PEM
Appliquer les permissions :
chown opendkim:opendkim mail.private
Reproduire les étapes pour domain2.com
.
Afficher l'enregistrement DNS à créer :
cat /etc/opendkim/keys/domaine1.com/mail.txt
Exemple de résultat :
#-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtXc0cuhh+8e1ZFfeVTAn 6AKzPUMenYN7YDFau/93hHBHJwsiZkxmdcW17wWy95V2oYlKQXgZn5GvcY1reetC wczYZ6HSMLWL25k/kWXxHBefgJur8pMy3y9PbfLFr34q4Ux6BwplKwxaE8M09CGz Ch3CVuUu9MZedoRx04pcXeGWFJRio1oyIBkf5d33spivSnphikIJHir0iMQ9AsVQ be0aIt/7XxlkhVbCH7xovFzHEOgYN6S2wiXreT33VklvEDGqy9x+1/SGQCiwY2bY RNOj5nqeoFV9Rgcp/iLJnQZ48aPPqeNQCLKRyDBNlFz3896suwsUlF0mXmsd3pe3 dQIDAQAB -----END PUBLIC KEY-----
Préparer les lignes pour l'enregistrement DNS à mettre en une seul ligne :
"v=DKIM1;k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtXc0cuhh+8e1ZFfeVTAn6AKzPUMenYN7YDFau/93hHBHJwsiZkxmdcW17wWy95V2oYlKQXgZn5GvcY1reetCwczYZ6HSMLWL25k/kWXxHBefgJur8pMy3y9PbfLFr34q4Ux6BwplKwxaE8M09CGzCh3CVuUu9MZedoRx04pcXeGWFJRio1oyIBkf5d33spivSnphikIJHir0iMQ9AsVQbe0aIt/7XxlkhVbCH7xovFzHEOgYN6S2wiXreT33VklvEDGqy9x+1/SGQCiwY2bYRNOj5nqeoFV9Rgcp/iLJnQZ48aPPqeNQCLKRyDBNlFz3896suwsUlF0mXmsd3pe3dQIDAQAB"
Le format est :
"v=DKIM1;k=rsa;p=<chaine_en_une_ligne>"
Attention, si vous faite l'enregistrement DNS via un formulaire Web : Il faut parfois laisser les guillemets dans le champs de saisie de la cible et parfois non. Cela dépendant du fournisseur.
Relancer les services pour prendre en compte la configuration :
service postfix restart service opendkim restart