Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
serveur_hebergement:serveur_mail:partie_4_spf_dmarc_et_dkim [2022/09/01 12:35] – créée fate | serveur_hebergement:serveur_mail:partie_4_spf_dmarc_et_dkim [2023/08/08 14:00] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Partie 4 : SPF, DMARC et DKIM ====== | ====== 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. | ||
+ | |||
+ | ===== Fonctionnement du SPF ===== | ||
+ | |||
+ | De base, le protocole SMTP ne permet pas de vérifier qu'un expéditeur a bien le droit d' | ||
+ | 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 (Postfix, pas la personne qui reçoit le courriel) 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' | ||
+ | |||
+ | ===== Fonctionnement de DKIM ===== | ||
+ | |||
+ | DKIM (DomainKeys Identified Mail ou Courrier identifié par clés de domaine en français), est un système d' | ||
+ | Le serveur qui envoi le courriel met à disposition une clé publique via une entrée DNS de type TXT et signe tous les courriels envoyés. Le destinataire vérifie que la signature du courriel est valide à l'aide de la clé contenue dans l' | ||
+ | |||
+ | ===== Fonctionnement de DMARC ===== | ||
+ | |||
+ | DMARC (Domain-based message authentication, | ||
+ | DMARC permet également d' | ||
+ | |||
+ | |||
+ | Passons à l' | ||
+ | |||
+ | ===== Installation du SPF ===== | ||
+ | |||
+ | Commencez par installer postfix-policyd-spf-python qui va permettre à Postfix de vérifier le SPF des courriels reçus : | ||
+ | <code bash> | ||
+ | |||
+ | Ouvrez le fichier master.cf : | ||
+ | <code bash> | ||
+ | Ajoutez la ligne suivante afin que Postfix démarre le programme policyd-spf au démarrage : | ||
+ | < | ||
+ | policyd-spf | ||
+ | user=policyd-spf argv=/ | ||
+ | </ | ||
+ | |||
+ | Ouvrez le fichier main.cf : | ||
+ | <code bash> | ||
+ | Ajoutez les lignes suivantes : | ||
+ | < | ||
+ | policyd-spf_time_limit = 3600 | ||
+ | smtpd_recipient_restrictions = permit_mynetworks, | ||
+ | </ | ||
+ | Ces lignes servent à rejeter les courriels qui ne sont pas adressés à notre domaine : | ||
+ | * Permit_mynetworks et permit_sasl_authenticated acceptent les courriels à destination d'une adresse locale ou appartenant à un utilisateur enregistré. | ||
+ | * Reject_unauth_destination rejette les courriels non adressés à notre domaine. | ||
+ | * Check_policy_service unix: | ||
+ | |||
+ | Passons à configuration du SPF pour les courriels sortant. | ||
+ | Ajoutez une entrée DNS type TXT à votre domaine : | ||
+ | < | ||
+ | Remplacez " | ||
+ | |||
+ | Cette entrée DNS signifie que les courriels ayant votre domaine (toto@domaine.fr par exemple) doivent être envoyé depuis l' | ||
+ | |||
+ | Passons à DKIM. | ||
+ | |||
+ | ===== Installation du DKIM ===== | ||
+ | |||
+ | Installez opendkim : | ||
+ | <code bash> | ||
+ | |||
+ | Ouvrez le fichier opendkim.conf : | ||
+ | <code bash> | ||
+ | Décommentez les lignes suivantes : | ||
+ | < | ||
+ | #Mode sv | ||
+ | # | ||
+ | </ | ||
+ | "Mode sv" active la vérification pour les courriels entrant et ajoute une signature pour les courriels sortants. " | ||
+ | |||
+ | Commentez la ligne suivante : | ||
+ | < | ||
+ | |||
+ | Décommentez la ligne suivante : | ||
+ | < | ||
+ | On désactive le fichier de socket et on demande à OpenDKIM d' | ||
+ | |||
+ | Ajoutez les lignes suivantes à la fin du fichier : | ||
+ | < | ||
+ | # Map domains in From addresses to keys used to sign messages | ||
+ | KeyTable | ||
+ | SigningTable | ||
+ | |||
+ | # Hosts to ignore when verifying signatures | ||
+ | ExternalIgnoreList | ||
+ | |||
+ | # A set of internal hosts whose mail should be signed | ||
+ | InternalHosts | ||
+ | </ | ||
+ | Ces lignes indiquent à OpenDKIM les fichiers dont on va se servir pour configurer la signature DKIM. | ||
+ | |||
+ | Créez le dossier qui contiendra les clés privées (une par nom de domaine) : | ||
+ | <code bash> | ||
+ | |||
+ | Modifier le propriétaire et les droits de ce répertoire afin que seul l' | ||
+ | <code bash> | ||
+ | sudo chown -R opendkim: | ||
+ | sudo chmod 711 -R / | ||
+ | </ | ||
+ | |||
+ | Créez le fichier TrustedHosts : | ||
+ | <code bash> | ||
+ | Ajouter les lignes suivantes : | ||
+ | < | ||
+ | 127.0.0.1 | ||
+ | localhost | ||
+ | .domaine.fr | ||
+ | </ | ||
+ | Remplacez domaine.fr par votre nom de domaine. Ces lignes indique à OpenDKIM que lorsque un courriel est envoyé depuis le serveur (127.0.0.1 et localhost) ou depuis le domaine, il faut ajouter une signature DKIM. | ||
+ | |||
+ | Créez le fichier KeyTable : | ||
+ | <code bash> | ||
+ | Ajoutez les lignes suivantes : | ||
+ | < | ||
+ | Remplacez domaine.fr par votre nom de domaine. Ça indique où est située la clé privée. | ||
+ | |||
+ | Créer fichier / | ||
+ | < | ||
+ | *@*.domaine.fr default._domainkey.domaine.fr</ | ||
+ | Ces deux lignes indiquent que lorsqu' | ||
+ | |||
+ | Dans répertoire / | ||
+ | <code bash> | ||
+ | Lancez la commande suivante pour générer les clés : | ||
+ | <code bash> | ||
+ | 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, changez le propriétaire avec la commande : | ||
+ | <code bash> | ||
+ | |||
+ | Puis changez les permissions afin que seul l' | ||
+ | <code bash> | ||
+ | |||
+ | Récupérez le contenu de la clé publique : | ||
+ | <code bash> | ||
+ | |||
+ | Créez une entrée DNS de type TXT nommée default._domainkey et ayant comme valeur le contenu de la clé publique en supprimant le " | ||
+ | |||
+ | Ouvrez le fichier main.cf : | ||
+ | <code bash> | ||
+ | Ajouter à la fin les lignes suivantes pour que Postfix puisse appeler OpenDKIM : | ||
+ | < | ||
+ | #DKIM | ||
+ | milter_protocol = 6 | ||
+ | milter_default_action = accept | ||
+ | smtpd_milters = inet: | ||
+ | non_smtpd_milters = $smtpd_milters | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Installation de DMARC ===== | ||
+ | |||
+ | Pour DMARC, ajoutez une entrée DNS type TXT _dmarc : < | ||
+ | |||
+ | A quoi correspond toutes ces options : | ||
+ | * v=DMARC1 : indique la version du protocole | ||
+ | * p=reject : indique la politique en cas d' | ||
+ | * rua=mailto: | ||
+ | * ruf=mailto: | ||
+ | * fo=1: condition d' | ||
+ | * adkim=s : Mode de cohérence des noms de domaine pour DKIM. " | ||
+ | * aspf=s : pareil que adkim mais pour SPF. | ||
+ | * sp=reject : pareil que p mais pour les sous-domaines | ||
+ | |||
+ | |||
+ | Vous pouvez tester votre configuration sur [[https:// | ||
+ | |||
+ | Source : https:// |