DNS Sicherheit · 3 min read · Oct 28, 2025
Wie man BIND9 gegen DNS-Cache-Vergiftung auf Debian Etch patcht
Wie man BIND9 gegen DNS-Cache-Vergiftung auf Debian Etch patcht
Version 1.0
Autor: Falko Timme
Dieser Artikel erklärt, wie Sie einen BIND9-Namensserver auf einem Debian Etch-System so fixieren können, dass er nicht mehr anfällig für DNS-Cache-Vergiftung ist.
Dieses Dokument kommt ohne jegliche Gewährleistung! Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!
1 Überprüfen, ob BIND anfällig ist
Führen Sie den folgenden Befehl gegen Ihren Namensserver aus, um herauszufinden, ob er anfällig ist (ersetzen Sie ns1.example.com durch Ihre eigene Namensserver-Adresse):
dig +short @ns1.example.com porttest.dns-oarc.net TXT mh1:~# dig +short @ns1.example.com porttest.dns-oarc.net TXT
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
“1.2.3.4 ist SCHLECHT: 26 Anfragen in 4.4 Sekunden von 1 Ports mit std dev 0.00”
mh1:~#
SCHLECHT zeigt an, dass BIND anfällig ist. In diesem Fall müssen Sie BIND patchen.
Wenn Sie überhaupt keine Antwort erhalten, bedeutet dies, dass Ihr DNS-Server kein rekursiver Resolver ist, was bedeutet, dass er keine Anfragen für Domains beantwortet, für die er nicht autoritativ ist. In diesem Fall sind Sie nicht anfällig für Cache-Vergiftung, aber ich empfehle Ihnen dringend, BIND zu aktualisieren!
2 BIND patchen
Dies ist nicht so sehr ein Patch, sondern ein Update. Führen Sie einfach aus
apt-get install bind9 bind9-hostDies installiert die aktualisierten BIND-Pakete aus den Debian-Repositories.
Öffnen Sie anschließend /etc/bind/named.conf und ändern Sie den Optionsbereich. Wenn Sie keinen rekursiven Resolver benötigen (d.h. wenn Ihr Namensserver nur Anfragen für Domains beantworten soll, für die er verantwortlich ist), fügen Sie allow-recursion { none; }; hinzu. Auf diese Weise schalten Sie das Caching für andere Domains aus. Die zweite Zeile, die Sie hinzufügen sollten, ist dnssec-enable yes; - dies sorgt dafür, dass BIND Anfragen an zufälligen Ports beantwortet, die für Hacker schwerer zu erraten sind (denken Sie an die Antwort auf unseren dig-Befehl in Kapitel 1: […]26 Anfragen in 4.4 Sekunden von 1 Ports[…] - BIND hat nur auf einem Port geantwortet…).
Korrektur: Ich habe gerade die folgende E-Mail von Alan Clegg erhalten:
Guten Tag! Ich habe gerade Ihren Artikel gelesen unter: https://www.howtoforge.com/how-to-patch-bind-to-avoid-cache-poisoning-debian-etch und habe ein paar Kommentare. Zunächst einmal danke, dass Sie dies geschrieben haben. Wir brauchen so viele Menschen wie möglich, um dieses Problem zu beheben. Zweitens gibt es einen kleinen Fehler, der korrigiert werden sollte. Sie geben an: “Die zweite Zeile, die Sie hinzufügen sollten, ist dnssec-enable yes; - dies sorgt dafür, dass BIND Anfragen an zufälligen Ports beantwortet, die für Hacker schwerer zu erraten sind” Tatsächlich aktiviert diese Zeile den Server, um mit DNSSEC-Datensätzen zu antworten, wenn das “DO” (DNSSEC OK) Bit in der gestellten Frage gesetzt ist. Was Sie möchten, dass die Leute suchen, ist eine Anweisung wie: query-source […] port XX; Wo das XX eine feste Portnummer ist, über die die Anfragen von diesem System gesendet werden sollen. Dies macht alles rückgängig, was die neuen Versionen von BIND tun, um den UDP-Quellport zu randomisieren. Wenn Sie Fragen haben, können Sie mir gerne eine E-Mail senden. Alan Clegg
Internet Systems Consortium (ISC)
Schulung und Unterstützung
vi /etc/bind/named.conf| [...] options { pid-file "/var/run/bind/run/named.pid"; directory "/etc/bind"; auth-nxdomain no; allow-recursion { none; }; dnssec-enable yes; /* * Wenn es eine Firewall zwischen Ihnen und den Namensservern gibt, mit denen Sie sprechen möchten, * müssen Sie möglicherweise die query-source-Direktive unten auskommentieren. Frühere Versionen von BIND haben immer Fragen * über Port 53 gestellt, aber BIND 8.1 verwendet standardmäßig einen unprivilegierten * Port. */ // query-source address * port 53; }; [...] |
Starten Sie BIND anschließend neu:
/etc/init.d/bind9 restart(Wenn Sie ISPConfig verwenden, werden Ihre Änderungen von ISPConfig überschrieben. Um dies zu verhindern, nehmen wir die named.conf-Vorlagendatei /root/ispconfig/isp/conf/named.conf.master, ändern sie wie oben gezeigt und speichern die modifizierte Vorlage im Verzeichnis /root/ispconfig/isp/conf/customized_templates => /root/ispconfig/isp/conf/customized_templates/named.conf.master. Bitte ändern Sie auch /etc/bind/named.conf wie oben gezeigt.)
3 BIND erneut überprüfen
Jetzt führen wir die Abfrage aus Kapitel 1 erneut aus:
dig +short @ns1.example.com porttest.dns-oarc.net TXTWenn alles gut gelaufen ist, sollte jetzt GUT anstelle von SCHLECHT angezeigt werden, und es sollten mehr als nur ein Port verwendet werden:
mh1:~# dig +short @ns1.example.com porttest.dns-oarc.net TXT
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
“1.2.3.4 ist GUT: 26 Anfragen in 4.4 Sekunden von 26 Ports mit std dev 20195.32”
mh1:~#
Herzlichen Glückwunsch, Sie haben gerade BIND repariert!
Sie können auch den dig-Befehl gegen die Namensserver Ihres ISP ausführen, um herauszufinden, ob deren Namensserver noch anfällig sind. Wenn ja, sollten Sie Ihren ISP auffordern, deren Namensserver zu aktualisieren!
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.