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/)