Pour mettre en place DANE il faut avoir mis DNSSEC sur sont domaine ou sous-domaine et qu'il pleinement fonctionnel. 

Il y a une partie DNS / certificats : mettre en place l'enregistrement DNS TLSA, et une partie postfix : intégration de la première partie dans postfix , fichiers de configuration main.cf et master.cf

Vous pouvez regarder Bind9 : DNSSEC

 

Partie 1 : mise en place de l'enregistrement DNS de type TLSA

Pour cela il faut générer le hash de votre clé prive de votre certificat qui est au format PEM en utilisant la commande :

openssl rsa -in </chemin/de/votre/clé> -pubout -outform DER | sha256sum

ou

openssl rsa -in </chemin/de/votre/clé> -pubout -outform DER | openssl sha256

Pour vérifier la validité de votre clé utiliser la commande  :

openssl s_client -brief -starttls smtp -dane_tlsa_domain <domaine_ou_machine_à_vérifier> -dane_tlsa_rrdata "3 1 1 <votre_clé>" -connect <domaine_ou_machine_à_vérifier>:<port> <<< "Q"

example :

openssl s_client -brief -starttls smtp -dane_tlsa_domain ns4.pra.rip -dane_tlsa_rrdata "3 1 1
737278f40077a0c50fc5cb67d2c7d11c931a9fc05f4e02bb7b96c8a8d09b8cbe" -connect ns4.pra.rip:587 <<< "Q
"
CONNECTION ESTABLISHED
Protocol version: TLSv1.2
Ciphersuite: DHE-RSA-CHACHA20-POLY1305
Peer certificate: CN = *.pra.rip
Hash used: SHA256
Signature type: RSA-PSS
Verification: OK
Verified peername: *.pra.rip
DANE TLSA 3 1 1 ...5f4e02bb7b96c8a8d09b8cbe matched EE certificate at depth 0
Server Temp Key: DH, 2048 bits
250 CHUNKING
DONE



Cela donne un enregistrement DNS pour votre zone :

_<port>._<protocol>.<nom_de_votre_machine_smtp(s)_mx_pop(s)_imap(s)> IN TLSA 3 1 1 <votre_clé>

port : 25 , 443, 587 , 465 , 143 , 993, 110 (il faut faire 1 enregistrement DNS par port suivant pour quel type service que vous voulez mettre en place DANE);

protocole : tcp ou udp dans notre cas c'est donc tcp ;

nom_de_votre_machine_smtp(s)_mx_pop(s)_imaps(s) : il faut que la machine est un enregistrement CNAME ou A et / ou AAAA

<votre_clé> : la clé est le résultat du hash calculé au dessus.

Pour vérifier l'enregistrement DNS avec dig : dig _25._tcp.ns4.pra.rip TLSA @ns0.fdn.fr ou  dig _25._tcp.ns4.pra.rip TLSA

 

Vous pouvez utiliser cet outil en ligne pour générer votre / vos enregistrement TLSA :  Générer votre enregistrement TLSA (https://www.huque.com)

 

Partie 2 : Intégration dans postfix :

mettre dans main.cf :

# TLS client
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_tls_security_level = dane
smtp_dns_support_level = dnssec
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_protocols = !SSLv2, !SSLv3 , TLSv1.1, TLSv1.2
smtp_tls_ciphers = high
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, TLSv1.1, TLSv1.2
smtp_tls_mandatory_ciphers = high
smtp_tls_policy_maps = socketmap:inet:127.0.0.1:8461:postfix

tls_preempt_cipherlist = yes
tls_high_cipherlist = EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA25
6:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK
:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA

 

mettre dans master.cf :

dane       unix  -       -       n       -       -       smtp
     -o smtp_dns_support_level=dnssec
     -o smtp_tls_security_level=dane

 

Redémarrez votre postfix.

Vous pouvez utiliser cet outil en ligne pour verifier le bon fonctionnement de votre DANE : Vérification de DANE pour smtp (https://www.huque.com/) et / ou vérification de DANE avec choix du service (https://www.huque.com/)