Différences entre versions de « Installer DKIM sur Postfix sous Debian »
Ligne 175 : | Ligne 175 : | ||
Il faut modifier le port si celui-ci est différent dans le fichier de configuration précédent. Il faut être attentif sur le port défini précédemment afin de conserver le même à travers les différents fichiers de configuration. | Il faut modifier le port si celui-ci est différent dans le fichier de configuration précédent. Il faut être attentif sur le port défini précédemment afin de conserver le même à travers les différents fichiers de configuration. | ||
− | ===Configuration de Postfix=== | + | ===Configuration de [https://www.ikoula.com/fr/cloud-public/oneclick/postfix Postfix]=== |
; Editer le fichier de configuration de Postifx | ; Editer le fichier de configuration de Postifx | ||
<syntaxhighlight lang="bash"> vi /etc/postfix/main.cf </syntaxhighlight> | <syntaxhighlight lang="bash"> vi /etc/postfix/main.cf </syntaxhighlight> |
Version actuelle datée du 20 septembre 2021 à 14:36
fr:Installer DKIM sur Postfix sous Debian ro:Instalaţi DKIM pe Postfix sub Debian pl:Zainstalować DKIM na Postfix w Debianie de:DKIM auf Postfix unter Debian installieren nl:DKIM op Postfix onder Debian installeren it:Installare Postfix sotto Debian DKIM pt:Instalar o DKIM no Postfix no Debian es:Instalar DKIM en Postfix en Debian he:להתקין DKIM Postfix תחת דביאן ru:Установить DKIM на Postfix под Debian ja:Debian に DKIM をインストールします。 ar:تثبيت DKIM على Postfix تحت ديبيان zh:在 Debian 下后缀上安装 DKIM en:Install DKIM on Postfix under Debian
Introduction
Afin d'éviter de voir finir ses e-mails dans le dossier de spam, il peut être intéressant de mettre en place un DKIM dans ses e-mails.
DKIM ou DomainKeys Identified Mail est une méthode d'authentification des e-mails. Cette méthode permet de signer un e-mail avec un identifiant de domaine émetteur, utile pour savoir qui est responsable de l'envoi en cas de réclamations. Vous trouverez plus d'informations sur le DKIM sur la page Wikipedia disponible à cette adresse.
Cet article a pour but d'introduire l'installation d'Open DKIM et sa configuration. Cet article n'est pas exhaustif sur les paramètres de configuration du service, il vous appartient de vérifier la cohérence de la configuration avec votre système.
Pré-requis
L'un des pré-requis essentiel est de conserver son système le plus à jour possible.
apt-get update
apt-get upgrade
Afin de conserver votre système Debian à jour, assurez-vous de posséder une liste des dépôts officiels. Vous pourrez trouver une liste des dépôts disponibles chez Ikoula et les instructions d'installation à cette adresse.
Sur un serveur de production, pensez à effectuer ces opérations pendant les heures creuses afin de minimiser l'impact de vos actions.
Mise en place
Installation d'OpenDKIM
- Tout d'abord installations OpenDKIM
apt-get install opendkim opendkim-tools
Configuration d'OpenDKIM
La configuration d'OpenDKIM s'effectue au travers de deux fichiers : /etc/opendkim.conf et /etc/default/opendkim.
/etc/opendkim.conf
Le fichier principal de configuration d'OpenDKIM.
- Ouvrir le fichier
vi /etc/opendkim.conf
- Ajouter les lignes suivantes au fichier /etc/opendkim.conf, si certaines sont déjà présentes les commenter pour éviter tout problème
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
Voici les différents paramètres :
AutoRestart | Redémarrer automatiquement le service en cas d'erreur. |
AutoRestartRate | Le nombre de redémarrage maximum dans un temps donné. Par exemple, dix redémarrages par heure : 10/1h. |
UMAsk | Accorder les permissions totales pour l'utilisateur défini par son userID, et accorder des permissions en lecture et exécution pour les autres utilisateurs. |
Syslog / SyslogSuccess / LogWhy | Activer les journaux détaillés pour le service. |
Canonicalization | La mise en forme canonique des messages de log. |
ExternalIgnoreList | Les hôtes externes autorisés à envoyer des e-mails depuis ce serveur sans authentification. |
InternalHosts | Les hôtes internes pour lesquels les e-mails sortants doivent être signés. |
KeyTable | Assure la liaison des noms de clés avec les fichiers de clé. |
SigningTable | La liste des signatures qui seront utilisées pour un message. Le choix se base sur l'adresse expéditrice. |
Mode | Le mode opératoire d'OpenDKIM. (s) signature et (v) vérification. |
PidFile | Emplacement du fichier de pid contenant l'identifiant processus du service. |
SignatureAlgorithm | L'algorithme de chiffrement choisi pour encoder les signatures. |
UserID | L'utilisateur et son groupe qui exécutera le service OpenDKIM |
Socket | Le port d'écoute sur lequel Postifx et OpenDKIM échangeront les messages. Pour écouter en local sur le port 17789: 17789@localhost. |
Ceci est une configuration d'exemple, vous devez faire correspondre les paramètres à votre configuration actuelle et selon les besoins. Vous trouverez plus d'informations à propos du fichier de configuration d'OpenDKIM à cette adresse.
# Log to syslog
#Syslog yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
#UMask 002
# Sign for example.com with key in /etc/mail/dkim.key using
# selector '2007' (e.g. 2007._domainkey.example.com)
#Domain example.com
#KeyFile /etc/mail/dkim.key
#Selector 2007
# Commonly-used options; the commented-out versions show the defaults.
#Canonicalization simple
#Mode sv
#SubDomains no
#ADSPDiscard no
# Always oversign From (sign using actual From and a null From to prevent
# malicious signatures header fields (From and/or others) between the signer
# and the verifier. From is oversigned by default in the Debian pacakge
# because it is often the identity key used by reputation systems and thus
# somewhat security sensitive.
OversignHeaders From
# List domains to use for RFC 6541 DKIM Authorized Third-Party Signatures
# (ATPS) (experimental)
#ATPSDomains example.com
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
/etc/default/opendkim
- Ouvrir le fichier
vi /etc/default/opendkim
- Ajouter la ligne suivante
SOCKET="inet:17789@localhost"
Il faut modifier le port si celui-ci est différent dans le fichier de configuration précédent. Il faut être attentif sur le port défini précédemment afin de conserver le même à travers les différents fichiers de configuration.
Configuration de Postfix
- Editer le fichier de configuration de Postifx
vi /etc/postfix/main.cf
- Vérifier que les lignes suivantes sont présentes et dé-commentées
milter_protocol = 2
milter_default_action = accept
- Si des filtres anti-spam sont installés il faut ajouter OpenDKIM à la liste
smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:17789
non_smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:17789
- Sinon ajouter OpenDKIM
smtpd_milters = inet:localhost:17789
non_smtpd_milters = inet:localhost:17789
Création des dossiers
Nous allons à présent créer les dossiers qui vont contenir toutes les données d'Open DKIM comme les hôtes, les signatures, etc.
- Créer la structure
mkdir /etc/opendkim
mkdir /etc/opendkim/keys
Autoriser les hôtes
Nous allons maintenant spécifier les hôtes autorisés à signer les e-mails avec OpenDKIM.
- Créer le fichier /etc/opendkim/TrustedHosts
vi /etc/opendkim/TrustedHosts
- Nous pouvons, afin de déclarer les domaines, utiliser des wildwards (*)
#Ne pas toucher les 3 premieres lignes
127.0.0.1
localhost
192.168.0.1/24
*.example.tld
Ce fichier est un exemple de configuration pour le domaine *.example.tld
- Enregistrer et fermer le fichier TrustedHosts
Dictionnaire de clés
Le fichier dictionnaire est là pour assurer la liaison de chaque domaine à sa clé correspondante.
- Créer le dictionnaire de clé
vi /etc/opendkim/KeyTable
- Ajouter la ligne suivante
mail._domainkey.example.tld example.tld:mail:/etc/opendkim/keys/example.tld/mail.private
Dans cet exemple, le domaine example.tld devra aller chercher sa clé dans /etc/opendkim/keys/example.tld/mail.private
Il est important que vous adaptiez cette configuration à votre domaine.
Dictionnaire de signature
Le fichier dictionnaire de signature est là pour assurer la liaison de chaque adresse e-mail vers son domaine correspondant.
- Créer le dictionnaire de signature
vi /etc/opendkim/SigningTable
- Ajouter la ligne suivante ( l'utilisation des wildcards est autorisée )
*@example.tld mail._domainkey.example.tld
Dans cet exemple les adresse en @example.tld devront être redirigées vers le sélecteur mail._domainkey.example.tld.
Il est important que vous adaptiez cette configuration à votre domaine.
Génération des clés publiques et privées
Nous allons à présent générer nos paires de clés publiques et privées.
- Se déplacer dans le dossier qui recevra les clés
cd /etc/opendkim/keys
- Créer un dossier pour notre nouveau domaine example.tld
mkdir example.tld
- Se déplacer dans le dossier du domaine
cd example.tld
- Générer les clés pour notre domaine example.tld
opendkim-genkey -s mail -d example.tld
L'option -s permet de spécifier un sélecteur et -d le domaine. Cette commande va créer deux fichiers mail.private la clé privée et mail.txt la clé publique.
- Changer le propriétaire de la clé privée
chown opendkim:opendkim mail.private
Ajout des clés publiques aux enregistrements DNS
Nous possédons à présent nos clés publiques, nous devons maintenant les ajouter dans les enregistrements DNS.
- Récupérons notre clé publique
cat /etc/opendkim/keys/example.tld/mail.txt
Vous devriez récupérer une ligne semblable à cette ligne d'exemple :
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iGY" ; ----- DKIM key mail for example.tld
- Copier la clé, la partie "v=DKIM1 ... +iGY", dans notre exemple
- Ajouter un enregistrement DNS TXT contenant la clé
La propagation DNS peut prendre quelques heures pour être effective ( de 24h à 48h ).
- Redémarrer les services Postfix et OpenDKIM
service postfix restart
service opendkim restart
Conclusion
L'utilisation d'OpenDKIM est maintenant effective pour les e-mails envoyés depuis les adresses du domaine @example.tld
Cet article n'est pas exhaustif sur la configuration d'OpenDKIM, il convient d'adapter ces exemples avec la configuration de votre serveur.
Activer l'actualisation automatique des commentaires