Wie kann ich alle meine DNS-Anfragen protokollieren?

18

Wie kann ich Protokolle für jede DNS-Abfrage erstellen, die mein Computer zusammen mit den Antworten erstellt, die er erhält?


quelle

Antworten:

13

Sie können tcpdumpalle UDP- und TCP-Aktivitäten von Port 53 protokollieren.

Aaron D. Marasco
quelle
6
Irgendwelche Details wie?
E-Sushi
Dies ist die beste Antwort, da wir nicht sicher sein können, ob das OP (oder andere Leser) Zugriff auf den DNS-Server haben - nur auf ihren lokalen Rechner. Um @ e-sushis Frage zu beantworten, verwenden Sie das Dienstprogramm tcpdump (lesen Sie die Manpage oder einen guten Primer mit Beispielen ). Am besten speichern Sie die Daten in einer Datei und speichern sie zur Überprüfung und Analyse in wireshark .
James Shewey
1
github.com/gamelinux/passivedns scheint genau das zu tun, siehe./doc/How-it-works.txt
mxmlnkn
5
tcpdump udp port 53
Brannon
1
Möglicherweise wird die ausgehende Netzwerkschnittstelle nicht standardmäßig ausgewählt, daher benötigen Sie etwas mehr: tcpdump --list-interfaces, tcpdump udp port 53 --interface (pickone). -vv
Beachten Sie
9

Am einfachsten ist es, Bind lokal zu installieren. Die meisten Distributionen der Standardinstallation von Bind sind nicht autorisierend und können nur zwischengespeichert werden.

Fügen Sie einfach einen logging {}Konfigurationsblock hinzu (wie in der Bind 9-Konfigurationsreferenz beschrieben ) und stellen Sie dann Ihr System auf die Verwendung 127.0.0.1oder ::1als DNS-Resolver ein.

Bahamat
quelle
2
Angesichts der Größe des Binds und seiner matten Sicherheitsaufzeichnung würden viele Leute wohl zögern, so etwas nur zum Zwecke der Protokollierung zu installieren.
JW013
nicht binden hat das Problem, dass die Nameserver in /etc/resolv.conf nicht verwendet werden, aber Nameserver explizit in der Bindekonfiguration aufgeführt werden müssen?
Bananguin
Nr. /etc/resolv.confIst die Systemauflösungsliste. In der Standardkonfiguration von Bind werden die autorisierenden Nameserver nachgeschlagen und gefragt. Sie können alle Anforderungen an einen bestimmten Server weiterleiten (oder festlegen, wie z. B. Ihren ISP, OpenDNS oder Google Public DNS), dies ist jedoch in der Konfiguration nicht erforderlich. Ich mache das die ganze Zeit. Ich kann nicht einmal zählen, wie oft ich nur Nameserver zwischengespeichert habe.
Bahamat
6

dnsmasq ist als DNS-Aggregator / Caching-Daemon viel einfacher zu konfigurieren als BIND, und zu diesem Zweck ist die Leistung möglicherweise besser. Wenn Sie die Protokollierung auf "Debuggen" schalten, werden alle Fragen und Antworten in den syslogfür Debuggenachrichten konfigurierten Elementen angezeigt.

Dnsmasq macht es auch einfach, missbräuchliche Werbekunden und Dirty-Bag-Datenschutz zu beseitigen, indem "analytische" Creeps durch Aliasing ganzer Domains auf 127.0.0.1 übertragen werden

Bruce Ediger
quelle
1

Wenn ich mich richtig erinnere, kann Snort den Datenverkehr basierend auf benutzerdefinierten Regeln selektiv überwachen. Snort erstellt jedoch keine Protokolle für DNS-Anforderungen, wenn Ihr Computer, dh sein Resolver, die Frage aus dem Cache beantworten kann.

Bananguin
quelle
1

AFühren Sie Folgendes aus, um alle DNS-Anforderungen anzuzeigen und zu speichern :

script -q -c "sudo tcpdump -l port 53 2>/dev/null | grep --line-buffered ' A? ' | cut -d' ' -f8" | tee dns.log

Beispielausgabe:

google.com.
wikipedia.org.

Vanni
quelle