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:
- Pakete installieren
- DNSViz Quellcode herunter laden
- Übersetzen
- Installieren
- 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.