« DANE » : différence entre les versions
| Ligne 71 : | Ligne 71 : | ||
RESULT : <span style="color:green">4ab84c51c437130ba853dcc1345e831bc4af0b1f3d9c9c9f59cce9839e14356a</span> }} | RESULT : <span style="color:green">4ab84c51c437130ba853dcc1345e831bc4af0b1f3d9c9c9f59cce9839e14356a</span> }} | ||
* | * Il est possible de '''vérifier''' le bon fonctionnement du '''hash''' récupéré précédemment avec la commande suivante : | ||
{{ Box Console | objet=openssl s_client -brief -starttls smtp -dane_tlsa_domain mail.geocoucou.eu -dane_tlsa_rrdata "3 1 1 4ab84c51c437130ba853dcc1345e831bc4af0b1f3d9c9c9f59cce9839e14356a" -connect mail.geocoucou.eu:587 <<< "Q"<br /><br /> | |||
<span style="color:grey">CONNECTION ESTABLISHED<br /> | |||
Protocol version: TLSv1.3<br /> | |||
Ciphersuite: TLS_AES_256_GCM_SHA384<br /> | |||
Requested Signature Algorithms: ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA512:Ed25519:Ed448:RSA-PSS+SHA256:RSA-PSS+SHA384:RSA-PSS+SHA512:RSA-<br />PSS+SHA256:RSA-PSS+SHA384:RSA-PSS+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA512:ECDSA+SHA224:ECDSA+SHA1:RSA+SHA224:RSA+SHA1<br /> | |||
Peer certificate: CN = mail.geocoucou.eu<br /> | |||
Hash used: SHA256<br /> | |||
Signature type: RSA-PSS<br /></span> | |||
<span style="color:green">Verification: OK<br /></span> | |||
<span style="color:grey">Verified peername: mail.geocoucou.eu<br /> | |||
DANE TLSA 3 1 1 ...c62f3b679b6d20718fbf97a3 matched EE certificate at depth 0<br /> | |||
Server Temp Key: X25519, 253 bits<br /> | |||
250 CHUNKING<br /> | |||
DONE</span> }} | |||
* Le '''hash''' devra être renseigné dans un '''enregistrements DNS''' de type '''TLSA''' sur le domaine de messagerie : | |||
{| class="wikitable" style="margin:auto" | {| class="wikitable" style="margin:auto" | ||
Dernière version du 23 août 2025 à 14:36
.:[ Serveur de Messagerie ]:.
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
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
- La génération du certificat du serveur de messagerie s'effectue avec Let's Encrypt :
|
|
|
- Le certificat est ensuite enregistré dans le dossier /etc/letsencrypt/live/domaine.tld/.
| Le certificat généré est au nom du serveur de messagerie (mail.geocoucou.eu) renseigné dans les MX du domaine geocoucou.eu. |
Configuration du MTA
- Editer le fichier de configuration /etc/postfix/main.cf puis y ajouter / modifier les lignes suivantes :
# Activation de DANE smtp_tls_security_level = dane smtp_dns_support_level = dnssec # Configuration des certificats smtpd_tls_cert_file = /etc/letsencrypt/live/mail.geocoucou.eu/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/mail.geocoucou.eu/privkey.pem # Emplacement des autorités de certification de confiance 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 de la clé privée du certificat du serveur :
|
|
|
- Il est possible de vérifier le bon fonctionnement du hash récupéré précédemment avec la commande suivante :
|
|
|
- Le hash devra être renseigné dans un enregistrements DNS de type TLSA sur le domaine de messagerie :
| 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 |
- Avec les indications suivantes pour chacun des enregistrements :
- Utilisation à 3 : Pour définir le niveau de confiance uniquement à notre certificat (peu importe si il soit auto-signé ou pas).
- Sélecteur à 1 : Permet d'indiquer que le champ TLSA contient la clé publique du certificat.
- Correspondance à 2 : Permet d'indiquer que la clé est hashée via SHA-256.
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.
| 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 :
|
|
|
|
|
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