Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
serveur_hebergement:serveur_mail:partie_4_spf_dmarc_et_dkim [2022/11/07 16:28] – 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 3: | Ligne 3: | ||
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. | 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. | ||
- | ===== SPF ===== | + | ===== Fonctionnement du SPF ===== |
De base, le protocole SMTP ne permet pas de vérifier qu'un expéditeur a bien le droit d' | 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' | 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' | ||
- | ===== DKIM ===== | + | ===== Fonctionnement de DKIM ===== |
DKIM (DomainKeys Identified Mail ou Courrier identifié par clés de domaine en français), est un système d' | 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' | 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' | ||
- | ===== DMARC ===== | + | ===== Fonctionnement de DMARC ===== |
DMARC (Domain-based message authentication, | DMARC (Domain-based message authentication, | ||
Ligne 19: | Ligne 19: | ||
+ | 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 : | |
- | Expliquer ce qu'est SPF et DMARC. | + | <code bash> |
- | + | Ajoutez | |
- | Pour SPF, ajoutez une entrée DNS type TXT : < | + | |
- | Pour DMARC, ajoutez une entrée DNS type TXT _dmarc : < | + | |
- | + | ||
- | 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 : <code bash> | + | |
- | + | ||
- | Ouvrez le fichier | + | |
< | < | ||
policyd-spf | policyd-spf | ||
Ligne 37: | Ligne 34: | ||
</ | </ | ||
- | Ouvrez le fichier / | + | Ouvrez le fichier |
+ | <code bash> | ||
+ | Ajoutez | ||
< | < | ||
policyd-spf_time_limit = 3600 | policyd-spf_time_limit = 3600 | ||
- | smtpd_recipient_restrictions = | + | smtpd_recipient_restrictions = permit_mynetworks, |
- | permit_mynetworks, | + | |
- | permit_sasl_authenticated, | + | |
- | reject_unauth_destination, | + | |
- | check_policy_service unix: | + | |
</ | </ | ||
- | Ces lignes servent à rejeter les mails qui ne sont pas adressés à notre domaine. | + | Ces lignes servent à rejeter les courriels |
- | Permit_mynetworks et permit_sasl_authenticated acceptent les e-mails | + | |
- | Reject_unauth_destination rejette les e-mails | + | |
- | Check_policy_service unix: | + | |
- | Expliquer ce qu'est DKIM. | + | Passons à configuration du SPF pour les courriels sortant. |
+ | Ajoutez une entrée DNS type TXT à votre domaine : | ||
+ | < | ||
+ | Remplacez " | ||
- | Installez opendkim : <code bash> | + | Cette entrée DNS signifie que les courriels ayant votre domaine (toto@domaine.fr par exemple) doivent être envoyé depuis l' |
- | Ouvrez le fichier / | + | Passons à DKIM. |
- | Décommentez les lignes | + | |
+ | ===== Installation du DKIM ===== | ||
+ | |||
+ | Installez opendkim : | ||
+ | <code bash> | ||
+ | |||
+ | Ouvrez le fichier | ||
+ | <code bash> | ||
+ | Décommentez les lignes | ||
< | < | ||
#Mode sv | #Mode sv | ||
# | # | ||
</ | </ | ||
- | 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. | + | "Mode sv" |
- | Commentez la ligne Socket local:/ | + | Commentez la ligne suivante : |
+ | < | ||
+ | |||
+ | Décommentez | ||
+ | < | ||
+ | On désactive le fichier de socket et on demande à OpenDKIM d' | ||
Ajoutez les lignes suivantes à la fin du fichier : | Ajoutez les lignes suivantes à la fin du fichier : | ||
Ligne 77: | Ligne 88: | ||
InternalHosts | InternalHosts | ||
</ | </ | ||
- | Ces lignes indiquent à OpenDKIM les fichiers dont on va se servir pour configurer DKIM. | + | Ces lignes indiquent à OpenDKIM les fichiers dont on va se servir pour configurer |
- | On enregistre et on crée le dossier qui contiendra les clés privées (une par nom de domaine) : | + | Créez |
<code bash> | <code bash> | ||
Ligne 88: | Ligne 99: | ||
</ | </ | ||
- | Créer | + | Créez le fichier |
+ | <code bash> | ||
+ | Ajouter les lignes suivantes : | ||
< | < | ||
127.0.0.1 | 127.0.0.1 | ||
Ligne 94: | Ligne 107: | ||
.domaine.fr | .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 | |
- | Créer | + | <code bash> |
- | < | + | Ajoutez les lignes suivantes |
- | Ça indique où est située la clé privée | + | < |
+ | Remplacez domaine.fr par votre nom de domaine. | ||
Créer fichier / | Créer fichier / | ||
Ligne 106: | Ligne 120: | ||
Ces deux lignes indiquent que lorsqu' | Ces deux lignes indiquent que lorsqu' | ||
- | Dans répertoire / | + | Dans répertoire / |
- | Lancez la commande suivante pour générer les clés : <code bash> | + | <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. | 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, | + | Une fois les clés créées, |
- | Puis changez les permissions afin que seul l' | + | <code bash> |
- | Récupérez le contenu de la clé publique | + | Puis changez les permissions afin que seul l' |
- | Ajoutez ce contenu dans le fichier de zone de bind (/ | + | <code bash> |
- | Dans / | + | 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 | ||
< | < | ||
#DKIM | #DKIM | ||
Ligne 124: | Ligne 147: | ||
non_smtpd_milters = $smtpd_milters | non_smtpd_milters = $smtpd_milters | ||
</ | </ | ||
- | Redémarrer Postfix et OpenDKIM | ||
- | Vous pouvez tester votre configuration sur https:// | + | |
+ | ===== 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:// | Source : https:// |