DANE / TLSA Updates automatisiert?

  • Hallo,


    nach der tollen Anleitung zum Erstellen / Einpflegen entsprechender DNS-Keys würde ich gerne wissen, ob / wann es ggf. eine Möglichkeit gibt die betreffenden DNS-Records auch automatisch zu aktualisieren?


    Grüße,
    Andreas

  • Hi Andreas,


    deine Überschrift und dein Inhalt gehen meiner Ansicht nach auseinander. Ich lese folgende 2 Punkte heraus:

    • Automatische Aktualisierung der TSLA-Records
    • Automatische Aktualisierung der DNSKEY/DS bei der nächst höheren Hierarchie-Ebene

    Zum ersten Punkt:
    Das kommt natürlich ganz darauf an, woher du deine Zertifikate bekommst. Falls du sie z.B. via letsencrypt zertifizierst, kannst du natürlich selbst Glue-Code schreiben, der aus entsprechendem Zertifikat einen TLSA-Record generiert und ihn an deine DNS-Server weitergibt. Das ist aber sehr spezifisch, wie dein le- und dns-setup aussieht.


    Zum zweiten Punkt:
    Nach meinem Kenntnisstand gibt es bis jetzt keine bereits angewandte Möglichkeit, die zukünftigen Keys (KSK und/oder ZSK) automatisiert bei der nächsten Instanz zu hinterlegen. Der rfc7344 beschreibt bereits eine mögliche Lösung über spezielle Record-Types (CDS & CDNSKEY) - bind z.B. unterstützt diese auch, aber werden noch von keiner Registry abgeholt, geschweige denn automatisiert.


    Ich persönlich arbeite gerade an Problem 1. Hier habe ich bis jetzt auch noch kein freies Stück Software gesehen, und fange gerade mit einem Konzept vollständig in python an.


    Viele Grüße


    Christian

  • Ich habe da tatsächlich zwei Dinge vermischt, wobei ich mich mit der ganzen Thematik am Wochenende erstmalig genauer beschäftigt hatte.


    Zumindest primär ging es mir um den ersten Teil der Frage. Konkret also, wie ich die zu meinen Letsencrypt-Zertifikaten gehörenden TLSA-Records in den NetCup DNS automatisch aktualisieren könnte. Analog zu dem Haken zum Aktivieren von DNSSEC hatte ich gehofft z.B. eine CLI für den automatisierten Upload zu finden. Soweit ich das bislang sehe würde das aber nur mit einem selbst gehosteten DNS-Paar funktionieren.


    Die Aktualisierung der nächsthöheren Ebene hatte ich bislang gar nicht auf dem Schirm, sondern war einfach davon ausgegangen, dass der TLSA-Record wie auch die anderen Einträge automatisch propagiert werden.


    Grüße,
    Andreas

  • Die TLSA-Records müssen gar nicht zur nächsten Hierarchieebene propagieren. Das bezog sich auf den Austausch des KSK und ggf. ZSKs. Wenn du die DNS-Server von netcup nutzt, hast du sehr sehr wahrscheinlich eh nur den Haken im CCP gesetzt, und um darum kümmert sich dann netcup.


    Mit der Frage, ob die netcup-DNS-Server eine eigene API haben, habe ich mich noch beschäftigt. Vielleicht liest jemand den Thread zufällig, aber bis jetzt ist mir noch nichts in der Richtung bekannt.
    Ich betreibe mittlerweile meine eigenen DNS-Server mit Backup durch Freunde :)
    Zurück zu netcup: Meinem Kenntnisstand nach gibt es zur Zeit noch keine API oder andere Möglichkeit um die DNS-Einträge auf den Netcup-DNS-Server automatisiert zu aktualisieren. Vielleicht kommt etwas mit dem Echtzeitregistrierung mit (forum.netcup.de/netcup-intern/produkte/p80253-beta-domains-jetzt-live-im-ccp-bestellbar)

  • Danke für den Pointer auf mein Blog ;)
    Ergänzend sei noch mein DANE-Tutorial hier genannt: https://hitco.at/blog/sicherer…ste-anbieter-dnssec-dane/


    Schlüsselpaar alle 60-90 Tage wechseln ist meines Erachtens etwas übervorsichtig und muss nicht sein (siehe meinen Blog-Beitrag der bereits zuvor zitiert wurde).


    Falls Du das Schlüsselpaar wechseln willst, dann musst Du - bevor Du es verwendest - jedenfalls rechtzeitig den TLSA-Record für DANE aktualisieren (also ergänzen, alten drinnen belassen und neuen zusätzlich hinzufügen). So rechtzeitig, dass alle Resolver sicher schon den neuen Record erhalten haben (abhängig von Deiner DNS Zonen-Konfiguration). Erst dann darfst Du das Zertifikat produktiv verwenden.


    Eine Automatisierung wäre denke ich nicht wirklich schwer, ich würde schematisch so vorgehen:


    Code
    export CERT=/etc/letsencrypt/live/it-security.eu.org/cert.pem
    export UpdateFile=/tmp/dns-update.txt
    echo zone it-security.eu.org>$UpdateFile
    openssl x509 -in $CERT -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -hex | cut -f2 -d" " | xargs echo "update add _443._tcp.test.it-security.eu.org. 1200 TLSA 3 1 1" >>$UpdateFile
    echo send>>$UpdateFile


    Das erzeugt ein File /tmp/dns-update.txt mit folgendem Inhalt:

    Code
    zone it-security.eu.org
    update add _443._tcp.test.it-security.eu.org. 1200 TLSA 3 1 1 a46dd6b2cb43b1f32445d1778410a55d1298c712942483aef03c1a6c6f0c16b5
    send


    Dieses kann mittels nsupdate dann an den Nameserver übergeben werden:

    Code
    nsupdate -v -d $UpdateFile


    Was hier noch fehlt ist, einen TSIG-Key festzulegen und diesen mittels "key" noch im Update-File zu hinterlegen, sonst wird der Nameserver (je nach Konfiguration) das Update nicht zulassen.


    Nachtrag: So würde ich bei meinen Nameservern vorgehen. Ob das mit den NetCup Nameservern auch so möglich ist, ist mir nicht bekannt. Kann man bei diesen einen TSIG-Key für automatisierte Updates hinterlegen? Wenn ja, dann würde das denke ich so funktionieren, wenn nein müsste NetCup einen Mechanismus bzw. eine API etc... bereitstellen.