guide.deuxfleurs.fr/content/operations/email.md

6.7 KiB

title description weight draft date extra
Emails Emails 10 false 2023-03-16
parent
operations/courantes.md

Support d'un nom de domaine personnalisé

Deuxfleurs peut héberger vos e-mails, même s'ils ne finissent pas en @deuxfleurs.fr ! Voilà comment faire.

  1. Communiquez lui votre nom de domaine pour qu'il l'ajoute dans ou=domains,ou=groups,dc=deuxfleurs,dc=fr
  2. Communiquez lui l'adresse email que vous souhaitez pour qu'il change l'entrée mail dans votre profil utilisateur
  3. Vous devez ensuite rajouter les entrées pour votre nom de domaine en éditant votre zone :
  4. L'entrée MX pour recevoir les emails
@  MX  10 email-in.deuxfleurs.fr.
  1. L'entrée SPF pour autoriser notre IP à délivrer des emails en votre nom :
@  TXT  "v=spf1 mx:out.deuxfleurs.fr -all"
  1. L'entrée DKIM pour autoriser notre postfix+opendkim à délivrer des emails en votre nom :
smtp._domainkey  TXT  "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtdZp4qrgZR+6R7HeAkuLGJ/3L/6Ungvf5zwrMq6T8Tu931j2G4lYuPtsxyn9fZkT4y7DlX0waktLDBOCwf7X78nLEWjAFWiJTeWGRGhRdYRUFpscs9NUN0P+46jKlabibG3XTKd1DeAmywTu6o1oO03yiolrgKD1zgyDRFeUTfSwZIdPrdbcBSA1arda4WFtcBIrSygM9b4jtlqfQwGDrsMLbCBfVHDn4WfmDWyNg0gDAkuLrYClNETk6aqIyj9fC8srKri0Qp3cRagCn+fjBvuxP35qWWJH7Rnnh/tuEDr1ufuNYO2KgJZ7JdMidUotxXE8cfU+OrEWQf4mIYeJ4wIDAQAB"
  1. L'entrée DMARC pour indiquer le comportement à adopter si les contraintes précédentes ne sont pas satisfaites :
_dmarc  TXT  "v=DMARC1; p=reject; sp=reject; adkim=s; fo=1; aspf=s; ruf=mailto:prod-sysadmin@deuxfleurs.fr; rf=afrf; pct=100; ri=86400"
  1. C'est tout ! Vous devrez probablement attendre 24/48h que les changements se propagent.

Comprendre le fonctionnement des e-mails

Serveurs

  • SMTP: Postfix

  • IMAP: Dovecot (fixé sur une machine avec un backup)

Enregistrements DNS

nom type valeur signification
@ MX 12 email-in.deuxfleurs.fr Serveur que chercheront à joindre les gens qui veulent envoyer un courrier à une addresse @deuxfleurs.fr
default._domainkey TXT v=DKIM1; h=sha256; k=rsa; p=<clef publique> Enregistrement DKIM (voir ci-dessous)
smtp._domainkey TXT v=DKIM1; h=sha256; k=rsa; p=<clef publique> Enregistrement DKIM (voir ci-dessous)
@ TXT `"v=spf1 mx:out.deuxfleurs.fr ip4: [...] -all" Enregistrement SPF (voir ci-dessous)
_dmarc TXT "v=DMARC1; [...] Enregistrement DMARC (voir ci-dessous)
email-in A défini par D53 Addresse IPv4 pour parler au serveur Postfix (pour l'enregistrement MX)
smtp A défini par D53 Addresse IPv4 pour parler au serveur Postfix (pour les utilisateurs Deuxfleurs)
imap A défini par D53 Addresse IPv4 pour parler au serveur Dovecot (pour les utilisateurs Deuxfleurs)

L'enregistrement DKIM

Référence : https://www.cloudflare.com/learning/dns/dns-records/dns-dkim-record/

Exemple de valeurs :

default._domainkey.deuxfleurs.fr. 10800	IN TXT	"v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtdZp4qrgZR+6R7HeAkuLGJ/3L/6Ungvf5zwrMq6T8Tu931j2G4lYuPtsxyn9fZkT4y7DlX0waktLDB" "OCwf7X78nLEWjAFWiJTeWGRGhRdYRUFpscs9NUN0P+46jKlabibG3XTKd1DeAmywTu6o1oO03yiolrgKD1zgyDRFeUTfSwZIdPrdbcBSA1arda4WFtcBIrSygM9b4jtlqfQwGDrsMLbCBfVHDn4Wfm" "DWyNg0gDAkuLrYClNETk6aqIyj9fC8srKri0Qp3cRagCn+fjBvuxP35qWWJH7Rnnh/tuEDr1ufuNYO2KgJZ7JdMidUotxXE8cfU+OrEWQf4mIYeJ4wIDAQAB"

smtp._domainkey.deuxfleurs.fr. 1800 IN	TXT	"v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtdZp4qrgZR+6R7HeAkuLGJ/3L/6Ungvf5zwrMq6T8Tu931j2G4lYuPtsxyn9fZkT4y7DlX0waktLDB" "OCwf7X78nLEWjAFWiJTeWGRGhRdYRUFpscs9NUN0P+46jKlabibG3XTKd1DeAmywTu6o1oO03yiolrgKD1zgyDRFeUTfSwZIdPrdbcBSA1arda4WFtcBIrSygM9b4jtlqfQwGDrsMLbCBfVHDn4Wfm" "DWyNg0gDAkuLrYClNETk6aqIyj9fC8srKri0Qp3cRagCn+fjBvuxP35qWWJH7Rnnh/tuEDr1ufuNYO2KgJZ7JdMidUotxXE8cfU+OrEWQf4mIYeJ4wIDAQAB"

default._domainkey.adnab.me. 3600 IN	TXT	"v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHd2zQXgGAoFX2CFaRqvWw1oBGhbUIRB5QXPxE9nvWwe/og5LjZBcnKoInPWsKYEz/f5kmpTDq4RZT3PMmjm+u5IuvyQ2LJcdIKSW6t8KWa7yztk2D87f3Lono6WJwvY8RHdGPqKS5RXfEdQFriXiSCAO5ZSQrNXQ5yiQ9T1ptGwIDAQAB; t=s"

Structure :

  • Le nom de domaine est composé d'un selecteur (souvent default, on a ici aussi smtp) qui permet de distinguer différentes clefs pour signer les messages. Il est formé de la manière suivante: <selecteur>._domainkey.<domaine>
  • La valeur est composé de plusieurs champs entre guillemets séparés par des ;, le champ v peut contenir la version de DKIM utilisée (ici v=DKIM1)
  • Le champ p contient la clef publique
  • Les autres champs sont optionels

Application à la vérification d'une signature (exemple) :

Prenons la signature suivante :

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=deuxfleurs.fr; s=smtp;
	t=1679050854; bh=AkDk3Tm0bnC7b6dvTjRXJbThLE6h/IStsBGIYGa+q7c=;
	h=Date:To:From:Subject:From;
	b=Qll5ASi9DmD2rw9LK1vJOahE77Pd/HNDbmrkrOCt4S8Nu42WtJXXOtiwo9J3KGPzR
	 zA2Cw5oCUB0HW5ere8RkINsUj9X/nxOovxFaJw4LSrgEYxQh7unaGBs6Ecw6k2Aqc/
	 oMhNE2OVCSlLkJVUQbgzwBUcZuwndlki6yYoJXkSPMuZ4tFbhgjSaxneRgUvPocYw3
	 Vqc/yMEAbofrlaEf6nSNQZL+LSE4IEBeudsv3JodMn12OYAijhO0rrHHsinK9UkM3M
	 PEEISyatG6RzE6veh4VVv3PTyJMYouQI7fKNooLuDmlGsdSTV9HRo4UvQeOQT1SL/7
	 KvgJtR0Hqz3mQ==

Cette signature contient les champs suivants :

  • v (obligatoire) indique la version, doit toujours être à 1
  • a (obligatoire) indique l'algorithme de signature, généralement rsa-sha256
  • d (obligatoire) indique le domaine pour lequel la signature est produite
  • s (obligatoire) indique le sélecteur de la clef DKIM utilisée (ici smtp pour utiliser la clef smtp._domainkey.deuxfleurs.fr)
  • h (obligatoire) indique la liste des en-têtes signés
  • bh (obligatoire) donne le hash du contenu du message
  • b (obligatoire) donne la signature à proprement parler, qui signe les en-têtes h et le hash du contenu bh
  • t (recomandé) donne le timestamp de la signature, i.e. sa date et son heure
  • c est un paramètre additionnel de la méthode de calcul de la signature

L'enregistrement SPF

Exemple de valeurs :

deuxfleurs.fr.		300	IN	TXT	"v=spf1 mx:out.deuxfleurs.fr ip4:82.66.80.201 -all"
adnab.me.		3600	IN	TXT	"v=spf1 mx mx:adnab.me include:mx.ovh.com -all"

L'enregistrement DMARC

Exemple de valeurs :

_dmarc.deuxfleurs.fr.	300	IN	TXT	"v=DMARC1; p=reject; sp=reject; adkim=s; fo=1; aspf=s; ruf=mailto:prod-sysadmin@deuxfleurs.fr; rua=mailto:prod-sysadmin@deuxfleurs.fr; rf=afrf; pct=100; ri=86400"
_dmarc.adnab.me.	3600	IN	TXT	"v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s; rua=mailto:postmaster@adnab.me!10m; ruf=mailto:postmaster@adnab.me!10m; rf=afrf; pct=100; ri=86400"