BIND9 DNS · 3 min read · Oct 28, 2025
Come Patchare BIND9 Contro il Poisoning della Cache DNS Su Debian Etch
Come Patchare BIND9 Contro il Poisoning della Cache DNS Su Debian Etch
Versione 1.0
Autore: Falko Timme
Questo articolo spiega come puoi sistemare un nameserver BIND9 su un sistema Debian Etch in modo che non sia più vulnerabile al poisoning della cache DNS.
Questo documento viene fornito senza alcuna garanzia di alcun tipo! Non rilascio alcuna garanzia che questo funzionerà per te!
1 Controllare Se BIND È Vulnerabile
Esegui il seguente comando contro il tuo nameserver per scoprire se è vulnerabile (sostituisci ns1.example.com con il tuo indirizzo nameserver):
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 è POOR: 26 query in 4.4 secondi da 1 porte con dev std 0.00”
mh1:~#
POOR indica che BIND è vulnerabile. In questo caso devi patchare BIND.
Se non ricevi alcuna risposta, questo significa che il tuo server DNS non è un risolutore ricorsivo, il che significa che non risponde a query per domini di cui non è autorevole. In questo caso non sei vulnerabile al poisoning della cache, ma ti consiglio vivamente di aggiornare BIND!
2 Patchare BIND
Questo non è tanto un patch, quanto un aggiornamento. Esegui semplicemente
apt-get install bind9 bind9-hostQuesto installerà i pacchetti BIND aggiornati dai repository Debian.
Dopo, apri /etc/bind/named.conf e modifica la sezione delle opzioni. Se non hai bisogno di un risolutore ricorsivo (cioè, se il tuo nameserver dovrebbe rispondere solo a query per domini di cui è responsabile), aggiungi allow-recursion { none; };. In questo modo disattivi la cache per altri domini. La seconda riga che dovresti aggiungere è dnssec-enable yes; - questo fa sì che BIND risponda a query su porte casuali che sono più difficili da indovinare per gli hacker (ricorda la risposta al nostro comando dig nel capitolo 1: […]26 query in 4.4 secondi da 1 porte[…] - BIND stava rispondendo su una sola porta…).
Correzione: Ho appena ricevuto la seguente email da Alan Clegg:
Buona giornata! Ho appena letto il tuo articolo su: https://www.howtoforge.com/how-to-patch-bind-to-avoid-cache-poisoning-debian-etch e ho un paio di commenti. Innanzitutto, grazie per averlo scritto. Abbiamo bisogno che il maggior numero possibile di persone risolva questo problema. In secondo luogo, c’è un piccolo errore che dovrebbe essere corretto. Dici: “La seconda riga che dovresti aggiungere è dnssec-enable yes; - questo fa sì che BIND risponda a query su porte casuali che sono più difficili da indovinare per gli hacker” In realtà, questa riga abilita il server a rispondere con record DNSSEC quando il bit “DO” (DNSSEC OK) è impostato nella domanda che viene posta. Quello che vuoi che le persone cerchino è una dichiarazione come: query-source […] port XX; Dove XX è un numero di porta fisso su cui le query da questo sistema devono essere inviate. Questo annulla tutto ciò che le nuove versioni di BIND fanno per randomizzare la porta sorgente UDP. Se hai domande, non esitare a inviare un’email. Alan Clegg
Internet Systems Consortium (ISC)
Formazione e Supporto
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; /* * Se c'è un firewall tra te e i nameserver con cui vuoi * comunicare, potresti dover decommentare la direttiva query-source * qui sotto. Le versioni precedenti di BIND hanno sempre posto * domande usando la porta 53, ma BIND 8.1 usa una porta non privilegiata * per impostazione predefinita. */ // query-source address * port 53; }; [...] |
Riavvia BIND successivamente:
/etc/init.d/bind9 restart(Se stai usando ISPConfig, le tue modifiche verranno sovrascritte da ISPConfig. Per prevenire ciò, prendiamo il file di template named.conf /root/ispconfig/isp/conf/named.conf.master, lo modifichiamo come mostrato sopra e salviamo il template modificato nella directory /root/ispconfig/isp/conf/customized_templates => /root/ispconfig/isp/conf/customized_templates/named.conf.master. Ti prego di modificare anche /etc/bind/named.conf come mostrato sopra in aggiunta a questo.)
3 Controllare Di Nuovo BIND
Ora eseguiamo di nuovo la query dal capitolo 1:
dig +short @ns1.example.com porttest.dns-oarc.net TXTSe tutto è andato bene, ora dovrebbe mostrare GOOD invece di POOR, e dovrebbe utilizzare più di una sola porta:
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 è GOOD: 26 query in 4.4 secondi da 26 porte con dev std 20195.32”
mh1:~#
Congratulazioni, hai appena sistemato BIND!
Puoi anche eseguire il comando dig contro i nameserver del tuo ISP per scoprire se i loro nameserver sono ancora vulnerabili. Se lo sono, dovresti sollecitare il tuo ISP ad aggiornare i loro nameserver!
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.