DNSViz installieren

DNSViz ist als Webdienst verfügbar,  um eine Domäne auf Ihre korrekte und vollständige DNSSEC-Absicherung zu überprüfen. Zum einen ist es aber lästig, und schwer automatisierbar, eine Webseite zu benutzen, um seine eigenen autoritativen Nameserver letzten Endes auf Ihre DNSSEC-Absicherung zu überprüfen. Man könnte zudem hier eventuell Sicherheitsbedenken haben, aber die DNS-Daten und auch damit die öffentlich DNSKEYs müssen sowieso öffentlich verfügbar sein.

Man kann allerdings dnsviz auch lokal als Kommandozeilentool installieren. Die notwendigen Schritte hierzu sind:

  1. Pakete installieren
  2. DNSViz Quellcode herunter laden
  3. Übersetzen
  4. Installieren
  5. Test

 

Pakete installieren

DNSViz ist auf die folgenden Pakete angewiesen:

  • python-dev
  • python-dnspython
  • python-pygraphviz
  • M2Crypto

die man am besten mit dem Paketmanager installiert. Bei Debian z.B. durch

apt-get install python-dev python-dnspython python-pygraphviz M2Crypto


DNSViz Quellcode von Git herunter laden


DNSViz wird auf github veröffentlicht. Die neueste Version kann man sich durch Auschecken, d.h. "klonen", des Repositories herunter laden:

git clone https://github.com/dnsviz/dnsviz.git

Übersetzen

Zum Übersetzen des Codes wechselt man in das Verzeichnis, in das man den Quellcode ausgecheckt hat, entpackt und untarred ihn mit

cd <PATH>
tar xzf dnsviz

 

Es wird ein Verzeichnis dnsviz mit dem ausgecheckten Quellcodes angelegt. Dann wechselt man in dieses Verzeichnis und kann den Quellcode übersetzen:

cd dnsviz
python setup.py build

 

Installation

Schließlich muss dnsviz noch installiert werden,

python setup.py install

wenn nicht mit der Option --prefix ein anderes Zielverzeichnis angegeben wurde, installiert es sich nach /usr/local/bin/dnsviz. In diesem Fall muss der ausführende Benutzer natürlich Schreibrechte für dieses Systemverzeichnis haben, oder die Installation als root ausgeführt werden.

 

Test

DNSViz kann dann getestet werden. dnsviz ohne weitere Parameter zeigt eine Übersicht der möglichen Befehle.

 

Usage: dnsviz <command> [args]
Commands:
    probe          - issue diagnostic DNS queries
    grok           - assess diagnostic DNS queries
    graph          - graph the assessment of diagnostic DNS queries
    print          - process diagnostic DNS queries to textual output
    query          - assess a DNS query
    help [<command>]
                   - show usage for a command

 

DNSSEC-Diagnostik mit DNSViz

 

dnsviz probe ZONE

führt dann eine DNSSEC-Diagnostik für die angegebene Zone durch, und gibt das Ergebnis im JSON-Format aus, das mit > ZONE.json in eine Datei umgeleitet werden kann.

Auf diesem JSON kann man dann weitere Diagnostik betreiben. Z.B. kann dies als Text ausgegeben werden

dnsviz print < ZONE.json

oder dies kann auch schon mittels Piping in einem Schritt mit probe erfolgen

dnsviz probe ZONE | dnsviz print

. [.]
  [.]  DNSKEY: 8/19036/257 [.], 8/61045/256 [.]
  [.]    RRSIG: ./8/19036 (2017-03-12 - 2017-04-02) [.]
de [.] [.]
  [.]  DS: 8/39227/2 [.]
  [.]    RRSIG: ./8/61045 (2017-03-20 - 2017-04-02) [.]
  [.]  DNSKEY: 8/26986/256 [.], 8/47586/256 [.], 8/39227/257 [.]
  [.]    RRSIG: de/8/39227 (2017-03-16 - 2017-04-06) [.]
lrz.de [.] [.]
  [.]  DS: 8/42814/2 [.]
  [.]    RRSIG: de/8/26986 (2017-03-21 - 2017-03-28) [.]
  [.]  DNSKEY: 8/42814/257 [.], 8/61593/256 [.]
  [.]    RRSIG: lrz.de/8/42814 (2017-01-23 - 2017-04-17) [.]
  [.]    RRSIG: lrz.de/8/61593 (2017-01-23 - 2017-04-17) [.]
  [.]  A: 129.187.255.234
  [.]    RRSIG: lrz.de/8/61593 (2017-02-06 - 2017-05-01) [.]
  [.]  NS: dns2.lrz.bayern., dns1.lrz.de., dns3.lrz.eu.
  [.]    RRSIG: lrz.de/8/61593 (2017-01-22 - 2017-04-16) [.]
  [.]  CNAME: NODATA
  [.]    SOA: dns1.lrz.de. hostmaster.lrz.de. 2017032027 21600 1800 3600000 86400
  [.]      RRSIG: lrz.de/8/61593 (2017-03-21 - 2017-06-13) [.]

....

 

Die textuelle Ausgabe könnte die Grundlage für ein ausgefeilteres DNSSEC-Monitoring bilden (siehe unsere Wiki-Seite als Einführung), ist aber ansonsten eher unübersichtlich.

Graphische Ausgabe

DNSViz erlaubt auch aus dem mit dnsviz probe erstelltem JSON entweder eine HTML-Seite zu generieren

dnsviz graph -Thtml < ZONE.json > ZONE.html

oder

dnsviz probe ZONE | dnsviz graph -Thtml > ZONE.html

 

und außerdem die Ausgabe in eine Bildformat, z.B. PNG

dnsviz graph -Tpng < ZONE.json > ZONE.png

oder

dnsviz probe ZONE | dnsviz graph -Tpng > ZONE.png


Eine ausführliche "Hands-on" Anleitung zu dem Möglichkeiten der DNSSEC-Analyse mit DNSViz mit Übungen, die auf einem VM-Image durchgeführt werden können, findet sich bei NCC RIPE Tutorials.