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/09/01 14:08] – 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 ====== | ||
- | Expliquer ce qu' | + | 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. |
- | Pour SPF, ajoutez une entrée DNS type TXT : < | + | ===== Fonctionnement du SPF ===== |
- | Pour DMARC, ajoutez une entrée DNS type TXT _dmarc : < | + | |
- | Il faut également | + | De base, le protocole SMTP ne permet pas de vérifier qu'un expéditeur a bien le droit d' |
- | Installez postfix-policyd-spf-python : <code bash> | + | 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' |
- | Ouvrez le fichier / | + | ===== 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 | ||
+ | <code bash> | ||
+ | Ajoutez | ||
< | < | ||
policyd-spf | policyd-spf | ||
Ligne 15: | 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 à éviter que n' | + | Ces lignes servent à rejeter les courriels |
- | Permit_mynetworks et permit_sasl_authenticated | + | |
- | Reject_unauth_destination rejette les connexions provenant d'un client non authentifié ainsi que les mails non adressés à notre domaine. | + | |
- | Reject_rbl_client zen.spamhaus.org rejette les connexions provenant d' | + | |
- | Check_policy_service unix: | + | |
+ | Passons à configuration du SPF pour les courriels sortant. | ||
+ | Ajoutez une entrée DNS type TXT à votre domaine : | ||
+ | < | ||
+ | Remplacez " | ||
- | Expliquer ce qu' | + | Cette entrée DNS signifie que les courriels ayant votre domaine (toto@domaine.fr par exemple) doivent être envoyé depuis l'adresse IP ou le domaine MX figurant dans l' |
- | Installez opendkim : <code bash> | + | Passons à DKIM. |
- | Ajoutez l' | + | ===== Installation du DKIM ===== |
- | Ouvrez le fichier / | + | Installez opendkim : |
- | Décommentez les lignes | + | <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 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:// |