====== OpenDKIM ====== ===== Installation ===== ==== Debian ==== :!: [[postfix]] doit être installé Installation des paquet requis : apt-get update apt-get install opendkim opendkim-tools ===== Configuration ===== ==== Paramétrage d'opendkim ==== 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" ==== Implémentation dans Postfix ==== 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 ==== Autorisation des hôtes ==== 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 ==== Définition tableau des clé ==== 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''. ==== Assignation domaine de messagerie et clé publique ==== 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 : * *@domaine1.com mail._domainkey.domaine1.com * *@domaine2.com mail._domainkey.domaine2.com ==== Génération des clés publiques et privés ==== 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''. ==== Enregistrement DNS des clés publiques ==== 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=" :!: 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. ==== Redémarrer les services ==== Relancer les services pour prendre en compte la configuration : service postfix restart service opendkim restart