Ceci est une ancienne révision du document !
Partie 4 : SPF, DMARC et DKIM
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, reject_rbl_client zen.spamhaus.org, check_policy_service unix:private/policyd-spf
Ces lignes servent à éviter que n'importe qui puisse envoyer des mails via notre serveur et également de rejeter les mails qui ne sont pas adressés à notre domaine. Permit_mynetworks et permit_sasl_authenticated autorisent le serveur et les clients authentifiés à envoyer des mails. 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'IP/nom de domaine listés dans la liste spamhaus. 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
Ajoutez l'utilisateur postfix au groupe opendkim :
sudo adduser postfix opendkim
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éé 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 ai 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
!!!! J'en suis ici !!!! Dans /etc/postfix/main.cf ajouter à la fin :
#DKIM
milter_protocol = 6 milter_default_action = accept
smtpd_milters = inet:localhost:8891 non_smtpd_milters = inet:localhost:8891
Redémarrer postfix
Ouvrir port DKIM : sudo ufw allow 12578 comment opendkim
Créer fichier /etc/opendkim/KeyTable et mettre dedans :
mail._domainkey.memodugeek.info memodugeek.info:mail:/etc/opendkim/keys/memodugeek.info/mail.private mail._domainkey.rasp.fr rasp.fr:mail:/etc/opendkim/keys/rasp.fr/mail.private mail._domainkey.daijobu-fansub.fr daijobu-fansub.fr:mail:/etc/opendkim/keys/daijobu-fansub.fr/mail.private mail._domainkey.siebert.ovh siebert.ovh:mail:/etc/opendkim/keys/siebert.ovh/mail.private
Créer fichier /etc/opendkim/SigningTable et mettre dedans :
*@memodugeek.info mail._domainkey.memodugeek.info *@rasp.fr mail._domainkey.rasp.fr *@daijobu-fansub.fr mail._domainkey.daijobu-fansub.fr *@siebert.ovh mail._domainkey.siebert.ovh
Créer fichier /etc/opendkim/TrustedHosts et y ajouter les lignes suivantes :