serveur_hebergement:serveur_mail:partie_4_spf_dmarc_et_dkim

Ceci est une ancienne révision du document !


Partie 4 : SPF, DMARC et DKIM

SPF, DMARC et DKIM sont des mécanismes permettant de lutter contre le spam. Voyons comment fonctionnent plus en détails ces différents mécanismes.

De base, le protocole SMTP ne permet pas de vérifier qu'un expéditeur a bien le droit d'envoyer un courriel depuis tel domaine. C'est là que le SPF (Sender Policy Framework ou Système de Politique d'Envoi en français) va servir. Une entrée DNS de type TXT est ajoutée au nom de domaine, listant les adresses IP autorisés et/ou interdites à envoyer du courriel depuis ce domaine. Lorsque le destinataire reçoit un courrier, il interroge le domaine pour récupérer les adresses IP autorisées et/ou interdites à envoyer des courriels et vérifie si l'adresse IP qui a envoyée le courriel est autorisée ou non à envoyer des courriels.

DKIM (DomainKeys Identified Mail ou Courrier identifié par clés de domaine en français), est un système d'authentification à base de clés permettant au destinataire de s'assurer que le courriel a bien été envoyé depuis le domaine et qu'il n'y a pas d'usurpation. Le destinataire vérifie que la signature du courriel correspond bien à la clé contenue dans l'entrée DNS de type TXT mail._domainkey.domaine.fr.

Expliquer ce qu'est SPF et DMARC.

Pour SPF, ajoutez une entrée DNS type TXT :

v=spf1 mx ip4:adresseIPV4 ip6:adresseIPV6 ~all

Pour DMARC, ajoutez une entrée DNS type TXT _dmarc :

 "v=DMARC1; p=reject; rua=mailto:postmaster@domaine.fr; ruf=mailto:admin@domaine.fr; fo=0:1:d:s; adkim=s; aspf=s; sp=reject"

Il faut également que Postfix vérifie le SPF des mails que l'on reçoit afin de se protéger en partie des spams. Installez postfix-policyd-spf-python :

sudo aptitude install postfix-policyd-spf-python

Ouvrez le fichier /etc/postfix/master.cf et ajoutez la ligne suivante afin que Postfix démarre le programme policyd-spf au démarrage :

policyd-spf  unix  -       n       n       -       0       spawn
    user=policyd-spf argv=/usr/bin/policyd-spf

Ouvrez le fichier /etc/postfix/main.cf at ajoutez les lignes suivantes :

policyd-spf_time_limit = 3600
smtpd_recipient_restrictions =
   permit_mynetworks,
   permit_sasl_authenticated,
   reject_unauth_destination,
   check_policy_service unix:private/policyd-spf

Ces lignes servent à rejeter les mails qui ne sont pas adressés à notre domaine. Permit_mynetworks et permit_sasl_authenticated acceptent les e-mails à destination d'une adresse locale ou appartenant à un utilisateur enregistré. Reject_unauth_destination rejette les e-mails non adressés à notre domaine. Check_policy_service unix:private/policyd-spf active la vérification de SPF pour les mails entrants.

Expliquer ce qu'est DKIM.

Installez opendkim :

sudo aptitude install opendkim opendkim-tools

Ouvrez le fichier /etc/opendkim.conf. Décommentez les lignes

#Mode                   sv
#SubDomains             no

Mode sv active la vérification pour les mails entrant et la signature pour les mails sortant et subdomains no désactive la gestion des sous-domaines.

Commentez la ligne Socket local:/run/opendkim/opendkim.sock et décommentez la ligne Socket inet:8891@localhost. Cela va servir à faire communiquer OpenDKIM avec Postfix.

Ajoutez les lignes suivantes à la fin du fichier :

# Map domains in From addresses to keys used to sign messages
KeyTable           refile:/etc/opendkim/KeyTable
SigningTable       refile:/etc/opendkim/SigningTable

# Hosts to ignore when verifying signatures
ExternalIgnoreList  /etc/opendkim/TrustedHosts

# A set of internal hosts whose mail should be signed
InternalHosts       /etc/opendkim/TrustedHosts

Ces lignes indiquent à OpenDKIM les fichiers dont on va se servir pour configurer DKIM.

On enregistre et on crée le dossier qui contiendra les clés privées (une par nom de domaine) :

sudo mkdir -p /etc/opendkim/keys

Modifier le propriétaire et les droits de ce répertoire afin que seul l'utilisateur opendkim y ait accès :

sudo chown -R opendkim:opendkim /etc/opendkim
sudo chmod 711 -R /etc/opendkim/keys

Créer fichier /etc/opendkim/TrustedHosts et y mettre

127.0.0.1
localhost
.domaine.fr

Créer fichier /etc/opendkim/KeyTable et mettre dedans :

default._domainkey.domaine.fr     domaine.fr:default:/etc/opendkim/keys/example.com/default.private

Ça indique où est située la clé privée

Créer fichier /etc/opendkim/SigningTable et mettre dedans :

*@domaine.fr default._domainkey.domaine.fr
*@*.domaine.fr default._domainkey.domaine.fr

Ces deux lignes indiquent que lorsqu'un mail sera envoyé depuis votre domaine ou sous-domaine (seconde ligne) il devra être signé avec la clé privée identifiée par default._domainkey.domaine.fr

Dans répertoire /etc/opendkim/keys/ créez un répertoire domaine.fr :

sudo mkdir /etc/opendkim/keys/domaine.fr

Lancez la commande suivante pour générer les clés :

sudo opendkim-genkey -b 2048 -s default -d domaine.fr -D /etc/opendkim/keys/domaine.fr

Cela va créer deux clés 2048 bits, une privée et une publique, pour le domaine domaine.fr avec default comme sélecteur.

Une fois les clés créées, changer le propriétaire avec la commande :

sudo chown opendkim:opendkim /etc/opendkim/keys/domaine.fr/default.private

Puis changez les permissions afin que seul l'utilisateur opendkim y ait accès :

sudo chmod 640 /etc/opendkim/keys/domaine.fr/default.private

Récupérez le contenu de la clé publique :

sudo cat /etc/opendkim/keys/domaine.fr/default.txt

Ajoutez ce contenu dans le fichier de zone de bind (/etc/bind/pri.domaine.fr par exemple) en supprimant le “IN” et incrémentez le serial pour que la mise à jour soit prise en compte.

Dans /etc/postfix/main.cf ajouter à la fin les lignes suivantes pour que Postfix puisse appeler OpenDKIM :

#DKIM
milter_protocol = 6 
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters

Redémarrer Postfix et OpenDKIM

Vous pouvez tester votre configuration sur https://www.mail-tester.com/

Source : https://www.linuxbabe.com/mail-server/build-email-server-from-scratch-debian-postfix-smtp

Vous pourriez laisser un commentaire si vous étiez connecté.
  • serveur_hebergement/serveur_mail/partie_4_spf_dmarc_et_dkim.1667835158.txt.gz
  • Dernière modification : 2023/08/08 14:01
  • (modification externe)