{"id":477,"date":"2023-06-16T11:46:07","date_gmt":"2023-06-16T09:46:07","guid":{"rendered":"https:\/\/jbsoft.nl\/site\/?p=477"},"modified":"2023-06-16T11:46:07","modified_gmt":"2023-06-16T09:46:07","slug":"allow-dane-authentication-to-your-mail-server-or-website","status":"publish","type":"post","link":"https:\/\/jbsoft.nl\/site\/nl\/allow-dane-authentication-to-your-mail-server-or-website\/","title":{"rendered":"Sta DANE-authenticatie toe voor uw mailserver of website"},"content":{"rendered":"<p>DANE <a rel=\"noreferrer noopener\" href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7671\" target=\"_blank\">https:\/\/datatracker.ietf.org\/doc\/html\/rfc7671<\/a> staat voor DNS-Based Authentication of Named Entities. Met dit protocol kunnen clients het gebruikte externe certificaat controleren via TLSA DNS-records. DANE vereist DNSSEC <a rel=\"noreferrer noopener\" href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc9364\" target=\"_blank\">https:\/\/datatracker.ietf.org\/doc\/html\/rfc9364<\/a>.<\/p>\n\n\n\n<p>Dit bericht gaat niet over de implementatie aan de clientzijde, maar over de backend. Ik zal uitleggen hoe TLSA-records gemaakt kunnen worden die de openbare sleutel van het gebruikte certificaat en het gebruikte certificaat gebruiken. In principe gebruik ik alleen <code>opensl<\/code> om de TLSA-records te maken. Het artikel is gebaseerd op <a rel=\"noreferrer noopener\" href=\"https:\/\/www.mailhardener.com\/kb\/how-to-create-a-dane-tlsa-record-with-openssl\" target=\"_blank\">https:\/\/www.mailhardener.com\/kb\/how-to-create-a-dane-tlsa-record-with-openssl<\/a>. Het meest gebruikelijke gebruik is dat mailservers zorgen voor gecodeerde e-mailoverdracht tussen MTA&#039;s, dus dat is wat ik in dit voorbeeld zal gebruiken. De mailserver die een e-mail wil afleveren bij uw beveiligde mailserver, moet nog steeds de door u gepubliceerde TLSA-records respecteren. De aanpassing voor DANE is de laatste jaren toegenomen. zelfs bedrijven als Microsoft beginnen DANE te adopteren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Het certificaat en de ketting verkrijgen van uw mailserver<\/h2>\n\n\n\n<p>Met <code>opensl<\/code> u kunt het PEM-gecodeerde certificaat en de ketting eenvoudig opnieuw genereren vanaf een mailserver.<\/p>\n\n\n\n<p><code>echo STOP | openssl s_client -connect mail.example.com:25 -starttls smtp -showcerts<\/code><\/p>\n\n\n\n<p>Dit opent een verbinding via poort 25 met <code>STARTTLS<\/code> en drukt de certificaten af en be\u00ebindigt vervolgens de gemaakte verbinding. Om de uitvoer in een bestand op te slaan, leidt u de uitvoer gewoon om.<\/p>\n\n\n\n<p>De certificaatketen in de uitvoer bevat waarschijnlijk meerdere certificaten die beginnen met het servercertificaat.<\/p>\n\n\n\n<p>Laten we het eerste certificaat in de keten opslaan als <code>server.crt<\/code>, en de tweede als <code>intermediair.crt<\/code>.<\/p>\n\n\n\n<p>Voor een mailserver zijn we ge\u00efnteresseerd in het servercertificaat (het eerste certificaat in de keten) en het issuercertificaat. We gebruiken het schema 3 1 1 (DANE EE) voor het servercertificaat en 2 1 1(DANE TA) voor het uitgevende certificaat. De in DNS gepubliceerde TLSA-waarde is een SHA256-hash van de openbare sleutel. De openbare sleutel verandert alleen als de persoonlijke sleutel die is gebruikt om de CSR van het certificaat te maken, is gewijzigd.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Maak SHA256-hash van de openbare sleutel<\/h2>\n\n\n\n<p>Uit de certificaatbestanden die we hebben verkregen, kunnen we nu de SHA256-hash berekenen.<\/p>\n\n\n\n<p><code>openssl x509 -in server.crt -pubkey -noout | openssl rsa -pubin -outform der | sha256sum<\/code><\/p>\n\n\n\n<p>genereert de public key hash voor het servercertificaat. Uitvoer kan iets soortgelijks zijn, zoals:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RSA-sleutel schrijven 4648564dc7c901037f631391d765643e8f8f86622849f59dfc9564838e1e8a76 -<\/code><\/pre>\n\n\n\n<p>We hebben hier alleen de lange string nodig. We kunnen dit herhalen voor het tussencertificaat.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Maak en publiceer TLSA DNS-records<\/h2>\n\n\n\n<p>DANE-authenticatie controleert gepubliceerde TLSA-records. Voor onze mailserver willen we de openbare sleutel SHA256-hash voor server en tussencertificaat voor poort 25 publiceren (u kunt ook records voor fort 465 of 587 publiceren als u dat wilt). Dus laten we zeggen dat we de openbare sleutel van de server voor onze mailserver (mail.example.com) willen publiceren, we publiceren het volgende record:<\/p>\n\n\n\n<p>Naam: <code>_25._tcp.mail.example.com<\/code>.  <br>Type: <code>TLSA<\/code><br>TTL: <code>1 dag<\/code><br>Waarde: <code>3 1 1 4648564dc7c901037f631391d765643e8f8f86622849f59dfc9564838e1e8a76<\/code><\/p>\n\n\n\n<p>Het is een goede gewoonte om ook een <code>2 1 1<\/code> TLSA-record voor het intermediate certificaat. Zorg ervoor dat u een nieuw TLSA-record publiceert wanneer uw certificaat verandert (en de priv\u00e9sleutel ook is gewijzigd). <code>voor<\/code> installatie van het nieuwe certificaat. U kunt meerdere instanties voor <code>3 1 1 xxx<\/code> and <code>2 1 1 xxx<\/code> verslagen. Nadat het nieuwe certificaat is ge\u00efnstalleerd, kunnen de verouderde records worden verwijderd.<\/p>","protected":false},"excerpt":{"rendered":"<p>DANE https:\/\/datatracker.ietf.org\/doc\/html\/rfc7671 staat voor DNS-Based Authentication of Named Entities. Met dit protocol kunnen clients het gebruikte externe certificaat controleren via TLSA DNS-records. DANE vereist DNSSEC https:\/\/datatracker.ietf.org\/doc\/html\/rfc9364. Dit bericht gaat niet over de implementatie aan de clientzijde, maar over de backend. Ik zal uitleggen hoe je TLSA-records kunt maken die de openbare sleutel van de \u2026 <a href=\"https:\/\/jbsoft.nl\/site\/nl\/allow-dane-authentication-to-your-mail-server-or-website\/\" class=\"more-link\">Lees verder <span class=\"screen-reader-text\">\u201cSta DANE-authenticatie toe aan uw mailserver of website\u201d<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-477","post","type-post","status-publish","format-standard","hentry","category-security"],"_links":{"self":[{"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/posts\/477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/comments?post=477"}],"version-history":[{"count":1,"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/posts\/477\/revisions"}],"predecessor-version":[{"id":478,"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/posts\/477\/revisions\/478"}],"wp:attachment":[{"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/media?parent=477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/categories?post=477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/tags?post=477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}