« DANE » : différence entre les versions

De NCad Wiki
Aller à la navigation Aller à la recherche
Ligne 21 : Ligne 21 :
== Prérequis ==
== Prérequis ==


Pur illustrer la présente documentation nous disposons :
Pour pouvoir configurer '''DANE''' sur notre serveur de messagerie '''[[Postfix]]''', les conditions suivantes doivent déjà être remplies :
* D'un serveur de messagerie '''[[:Postfix]]''' opérationnel.
* Disposer d'un serveur de messagerie '''Postfix''' opérationnel.
* D'un '''nom de domaine''' ''(geocoucou.eu)''.
* D'un '''nom de domaine''' ''(geocoucou.eu)'' pleinement fonctionnel.
* Du protocole '''DNSSEC''' d'activé sur notre '''racine DNS'''.
* Du protocole '''DNSSEC''' d'activé sur la '''racine DNS''' de notre nom de domaine.


= Configuration =
= Configuration =

Version du 22 juin 2025 à 07:45

.:[ Serveur de Messagerie ]:.

Installation >> Postfix avec MySQL

Filtrage anti-spam : Anti-Spam SpamAssassin | Anti-Virus Clamav


Filtrage anti-virus : Plateforme de filtrage Amavis >> Amavis avec MySQL


Plus de fonctions : Ajouter un Disclaimer | DKIM Proxy | OpenDKIM | Mailman | Maildrop | DANE | SPF


Clients de messagerie : Configurer Thundirbird | Configurer Roundcube


Pour aller plus loin : Commandes messagerie | DNSBL | MX Backup
POSTFIX Logo.png

Introduction

Présentation

L'IETF (Internet Engineering Task Force) a proposé le protocole/mécanisme DANE (DNS - based Authentication of Named Entities) qui s’appuie sur le DNS pour authentifier des entités applicatives.
Cette démarche s'enregistre dans une logique de sécurisation des accès clients-serveurs en :

  • Sécurisant les requêtes DNS effectuées depuis les postes clients au travers des protocoles/mécanismes DNSSEC et TLS.
  • Mieux sécuriser les accès chiffrés des clients vers les serveurs.
  • Le principe est décrit dans les normes IETF suivantes :
    • RFC 6394: Cas d’utilisation DANE
    • RFC 6698: Protocole DANE

— Source: Wikipédia • https://fr.wikipedia.org/wiki/DNS_-_based_Authentication_of_Named_Entities

Prérequis

Pour pouvoir configurer DANE sur notre serveur de messagerie Postfix, les conditions suivantes doivent déjà être remplies :

  • Disposer d'un serveur de messagerie Postfix opérationnel.
  • D'un nom de domaine (geocoucou.eu) pleinement fonctionnel.
  • Du protocole DNSSEC d'activé sur la racine DNS de notre nom de domaine.

Configuration

Génération des certificats

  • Génération du certificat du serveur de messagerie avec Let's Encrypt :

certbot certonly --standalone -d mail.geocoucou.eu

Configuration du MTA

  • Editer le fichier de configuration /etc/postfix/main.cf puis y ajouter / modifier les lignes suivantes :
smtp_tls_security_level = dane
smtp_dns_support_level = dnssec

smtpd_tls_cert_file = /etc/letsencrypt/live/mail.geocoucou.eu/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.geocoucou.eu/privkey.pem

smtp_tls_CApath = /etc/ssl/certs
smtpd_tls_CApath = /etc/ssl/certs
  • Editer le fichier de configuration /etc/postfix/master.cf puis y ajouter / modifier les lignes suivantes :
submission inet n       -       y       -       -       smtpd
   [...]
   -o smtpd_tls_security_level=encrypt
   -o smtpd_sasl_auth_enable=yes
   -o smtpd_tls_auth_only=yes
  • Un redémarrage de Postfix est nécessaire pour la prise en compte des paramètres :
    service postfix restart

Configuration de la zone DNS

  • Récupération du hash sha256 du certificat serveur :

openssl x509 -in /etc/postfix/ssl/mail.geocoucou.eu.crt -outform DER | openssl sha256
RESULT : 4ab84c51c437130ba853dcc1345e831bc4af0b1f3d9c9c9f59cce9839e14356a

  • Le hash récupéré à l'étape précédente devra être utilisé pour les enregistrements DNS suivants à configurer dans le domaine de messagerie :
Enregistrement DNS Geocoucou.eu
Sous-domaine Type Utilisation Selecteur Correspondance Valeur Rôle
_25._tcp.mail TLSA 3 1 1 4ab84c51c437130ba853dcc1345e831bc4af0b1f3d9c9c9f59cce9839e14356a Connecteur SMTP
_587._tcp.mail TLSA 3 1 1 4ab84c51c437130ba853dcc1345e831bc4af0b1f3d9c9c9f59cce9839e14356a Connecteur SUBMISSION
_465._tcp.mail TLSA 3 1 1 4ab84c51c437130ba853dcc1345e831bc4af0b1f3d9c9c9f59cce9839e14356a Connecteur SMTPS

Configuration des rapports TLSRPT

Fonctionnement

TLSRPT est un mécanisme décrit dans la RFC 8460 qui permet d'activer la génération de rapport d'erreurs lorsqu'un serveur d'envoi de messagerie rencontre un problème lors de la négociation de la liaison TLS vers le serveur de messagerie de destination. Ce mécanisme est similaire à celui de DMARC.

Configuration

  • Ajout d'un enregistrement DNS permettant d'indiquer à quelle adresse mail les rapports d'activité TLSA devront être envoyés. Dans notre cas, il s'agit de l'adresse de messagerie tlsa-reports@geocoucou.eu.
Enregistrement DNS Geocoucou.eu
Sous-domaine Type Valeur Rôle
_smtp._tls TXT v=TLSRPTv1; rua=mailto:tlsa-reports@geocoucou.eu Envoi des rapports TLSA

Vérification

Configuration TLS

  • Vérification du paramétrage de la liaison TLS à l'aide de la commande openssl :

openssl s_client -debug -starttls smtp -crlf -connect mail.geocoucou.eu:587 > postfix.txt
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R10
verify return:1
depth=0 CN = mail.geocoucou.eu
verify return:1
250 CHUNKING

Un code de retour 2XX indique que le serveur est prêt à traiter les requêtes du client.

  • Vérification de la connexion au MTA via une liaison TLS à l'aide du journal d'évènements de Postfix (/var/log/mail.log) :
Jun 17 21:12:34 geocoucoumail postfix/smtpd[3833973]: Trusted TLS connection established from mail-oo1-xc2d.google.com[2607:f8b0:4864:20::c2d]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256
Jun 17 21:12:34 geocoucoumail postfix/smtpd[3833973]: warning: d.2.c.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.ix.dnsbl.manitu.net: RBL lookup error: Host or domain name not found. Name service error for name=d.2.c.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.ix.dnsbl.manitu.net type=A: Host not found, try again
Jun 17 21:12:35 geocoucoumail dkimproxy.in[3829373]: connect from 127.0.0.1
Jun 17 21:12:35 geocoucoumail postfix/smtpd[3834015]: connect from localhost[127.0.0.1]
Jun 17 21:12:35 geocoucoumail postfix/smtpd[3833973]: NOQUEUE: client=mail-oo1-xc2d.google.com[2607:f8b0:4864:20::c2d]
Jun 17 21:12:35 geocoucoumail postfix/smtpd[3834015]: 22C4E200FA: client=localhost[127.0.0.1], orig_client=mail-oo1-xc2d.google.com[2607:f8b0:4864:20::c2d]
Jun 17 21:12:35 geocoucoumail dkimproxy.in[3829373]: DKIM verify - pass; message-id=<CAAaFqx0VsycF=mQAA=UNGa_PaS-2BFR4BXkurWrujXbPdGaL3Q@mail.gmail.com>, signer=<@gmail.com>, from=<xxxxxx@gmail.com>
Jun 17 21:12:35 geocoucoumail postfix/cleanup[3834017]: 22C4E200FA: message-id=<CAAaFqx0VsycF=mQAA=UNGa_PaS-2BFR4BXkurWrujXbPdGaL3Q@mail.gmail.com>
Jun 17 21:12:35 geocoucoumail postfix/qmgr[3833971]: 22C4E200FA: from=<xxxxxx@gmail.com>, size=21349, nrcpt=1 (queue active)
Jun 17 21:12:35 geocoucoumail postfix/smtpd[3833973]: proxy-accept: END-OF-MESSAGE: 250 2.0.0 Ok: queued as 22C4E200FA; from=<xxxxxx@gmail.com> to=<xxxxxx@geocoucou.eu> proto=ESMTP helo=<mail-oo1-xc2d.google.com>
Jun 17 21:12:35 geocoucoumail postfix/smtpd[3834015]: disconnect from localhost[127.0.0.1] ehlo=1 xforward=1 mail=1 rcpt=1 data=1 quit=1 commands=6
Jun 17 21:12:35 geocoucoumail postfix/pipe[3834018]: 22C4E200FA: to=<xxxxxx@geocoucou.eu>, relay=maildrop, delay=0.32, delays=0.21/0.08/0/0.03, dsn=2.0.0, status=sent (delivered via maildrop service)
Jun 17 21:12:35 geocoucoumail postfix/qmgr[3833971]: 22C4E200FA: removed
Jun 17 21:12:35 geocoucoumail postfix/smtpd[3833973]: disconnect from mail-oo1-xc2d.google.com[2607:f8b0:4864:20::c2d] ehlo=2 starttls=1 mail=1 rcpt=1 bdat=1 quit=1 commands=7