DNS Setup · 6 min read · Nov 27, 2025
Impostazione Perfetta di DjbDNS su Ubuntu Server 8.04 (amd64) Hardy
Impostazione Perfetta di DjbDNS su Ubuntu Server 8.04 (amd64) Hardy
DjbDNS è una raccolta di strumenti per il Sistema dei Nomi di Dominio. Include software per tutte le operazioni fondamentali del DNS:
Cache DNS: Trovare indirizzi di host Internet. Quando un browser vuole contattare www.hotwired.com, prima chiede a una cache DNS, come la dnscache di djbdns, di trovare l’indirizzo IP di www.hotwired.com. I fornitori di servizi Internet eseguono dnscache per trovare indirizzi IP richiesti dai loro clienti. Se stai eseguendo un computer domestico o una workstation, puoi eseguire la tua dnscache per velocizzare la navigazione web.
Server DNS: Pubblicare indirizzi di host Internet. L’indirizzo IP di www.hotwired.com è pubblicato dai server DNS di HotWired. djbdns include un server DNS di uso generale, tinydns; gli amministratori di rete eseguono tinydns per pubblicare gli indirizzi IP dei loro computer. djbdns include anche server specializzati per pubblicare firewall DNS e RBL.
Client DNS: Comunicare con una cache DNS. djbdns include una libreria C client DNS e diversi strumenti client DNS da riga di comando. I programmatori usano questi strumenti per inviare richieste alle cache DNS.
DjbDNS include anche diversi strumenti di debug DNS, in particolare dnstrace, che gli amministratori usano per diagnosticare server remoti mal configurati.
Caratteristiche di sicurezza:
- dnscache viene eseguito come un uid non root dedicato all’interno di una chroot jail, quindi non può toccare il resto della macchina.
- tinydns viene eseguito come un altro uid non root dedicato all’interno della propria chroot jail.
- walldns viene eseguito come un altro uid non root dedicato all’interno della propria chroot jail.
- dnscache scarta le query DNS provenienti da un elenco specificato di indirizzi IP.
- dnscache e la libreria dns utilizzano un nuovo ID di query e una nuova porta UDP per ogni pacchetto di query. Scartano le risposte DNS da qualsiasi indirizzo IP diverso da quello a cui è stata appena inviata la corrispondente query.
- dnscache utilizza un generatore crittografico per selezionare numeri di porta e ID imprevedibili.
- dnscache è immune al poisoning della cache.
tinydns non memorizza mai informazioni nella cache. Non supporta la ricorsione.
Pre-Installazione
apt-get install build-essential
mkdir /tmp/downloads
cd $_
wget -c HYPERLINK "http://www.thedjbway.org/patches/djb_errno_patches.tgz" http://www.thedjbway.org/patches/djb_errno_patches.tgz
tar -zxvf djb_errno_patches.tgz
wget -c HYPERLINK "http://cr.yp.to/daemontools/daemontools-0.76.tar.gz" http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget -c HYPERLINK "http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz" http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget -c HYPERLINK "http://cr.yp.to/djbdns/djbdns-1.05.tar.gz" http://cr.yp.to/djbdns/djbdns-1.05.tar.gzInstalla Tutti I Pacchetti
a. Installa ucspi-tcp-src:
cd /tmp/downloads
tar -zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch -p1 < /tmp/downloads/ucspi-tcp-0.88.errno.patch
make
make setup checkb. daemontools
cd /tmp/downloads
tar -zxvf daemontools-0.76.tar.gz
cd admin/daemontools-0.76/
touch /etc/inittab
patch -p1 < /tmp/downloads/daemontools-0.76.errno.patch
package/installvi /etc/event.d/svscan# svscan - daemontools
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
respawn
exec /command/svscanbootQuesto installer crea solo collegamenti a tutti i comandi svscan in /command, quindi è meglio copiare questi:
cd /command
rm -rf *
cp /tmp/downloads/admin/daemontools/command/* /command/Ecco tutto… poi (potresti dover riavviare) …
initctl start svscanc. djbdns
cd /tmp/downloads
tar -zxvf djbdns-1.05.tar.gz
cd djbdns-1.05
echo gcc -O2 -include /usr/include/errno.h > conf-cc
make
make setup checkConfigura i Pacchetti
Crea utenti (se non sono stati creati automaticamente):
adduser --no-create-home --disabled-login --shell /bin/false dnscache
adduser --no-create-home --disabled-login --shell /bin/false dnslog
adduser --no-create-home --disabled-login --shell /bin/false tinydnsConfigura dnscache:
Nel nostro scenario, abbiamo bisogno che ciascun server master e slave sia sia “autoritario” che “caching”. Quindi è molto importante capire come raggiungere questi obiettivi con djbdns. A differenza di bind, djbdns utilizza un IP individuale per ciascun tipo di servizio DNS. Per impostazione predefinita, ogni sistema è pronto con 2 IP => un host-IP e l’altro è loopback-IP. Quindi, qualsiasi sistema sulla LAN dovrebbe utilizzare la cache DNS, quindi l’host-IP per la cache-dns. E eseguiremo l’autoritario su loopback-IP, e successivamente lo collegheremo alla cache-dns, quindi gli host LAN possono interrogare anche i record host autoritativi.
mkdir /var/lib/svscan
dnscache-conf dnscache dnslog /var/lib/svscan/dnscache
ln -sf /var/lib/svscan/dnscache /service Controlla che la directory “supervise” sia stata creata in /service/dnscache
Per controllare se è in esecuzione: aggiungi solo una singola voce come ‘nameserver
Ora devi consentire agli host LAN di interrogare da esso. Quindi crea semplicemente un file vuoto chiamato come la tua rete o sottorete:
touch /etc/dnscache/root/ip/Ecco fatto. Ora puoi interrogare da qualsiasi host di quella
A differenza di bind, puoi regolare la dimensione della cache del nameserver modificando il file /etc/dnscache/env/CACHESIZE. Inoltre, puoi aggiornare manualmente o svuotare la cache eseguendo il seguente comando:
svc -t /service/dnscacheTemporaneamente puoi fermare e avviare dnscache con i seguenti comandi:
svc -d /service/dnscache => per fermare il servizio dnscache
svc -u /service/dnscache => per avviare il servizio dnscacheConfigura tinydns:
tinydns-conf tinydns dnslog /var/lib/svscan/tinydns
ln -sf /var/lib/svscan/tinydns /service Controlla che la directory “supervise” sia stata creata in /service/tinydns.
Non contengono ancora alcuna voce di zona per domini, ma ci arriveremo tra poco. A differenza di bind, le informazioni sulla zona sono scritte in un singolo file (anche per più zone, comprese le zone inverse) e quel file è /var/lib/svscan/tinydns/root/data. Questo è un file scrivibile dall’uomo che viene successivamente convertito in formato binario utilizzando un comando tinydns e quel binario è chiamato formato cdb, quindi quel file binario è /var/lib/svscan/tinydns/root/data.cdb da cui tinydns risponde a tutte le query. La sintassi per i record di zona è molto breve e compatta rispetto a bind. Ecco alcuni esempi:
a. Per voce del server dei nomi:
.in.domain.com:10.20.0.10:ns1.in.domain.com
.in.domain.com:10.20.0.12:ns2.in.domain.comb. Per reverse-dns per il server dei nomi sopra:
.10.in-addr.arpa::ns1.in.domain.com
.10.in-addr.arpa::ns2.in.domain.comc. Per record MX:
@in.domain.com:165.212.65.113:mx.usa.net:10
@in.domain.com:10.20.0.12:mail.in.domain.com:20d. Record A:
=host0001.in.domain.com:10.10.0.101e. Record Alias per host:
+host01.in.domain.com:10.10.0.101
+mysql01.in.domain.com:10.10.0.101E infine converti /var/lib/svscan/tinydns/root/data in formato cdb con
tinydns-dataoppure
cd /var/lib/svscan/tinydns/root
makeAlla fine, per collegare queste informazioni di zona al server caching-dns, crea file chiamati come 10.in-addr.arpa, in.domain.com e domain.com ecc. nella directory /var/lib/svscan/dnscache/root/servers/, i cui contenuti dovrebbero essere 127.0.0.1 (l’IP di loopback). Ecco fatto. È tutto configurato.
Nota: ogni volta che apporti modifiche ai dati e crei un file data.cdb modificato, non dimenticare di aggiornare o svuotare la cache.
svc -t /services/*Configurazione del Server Slave Utilizzando Djbdbs
Basta seguire http://www.seebq.com/dns-replication-using-rsync e alcune modifiche su alcuni file di Master e Slave.
a. Modifiche al /var/lib/svscan/tinydns/root/Makefile del master: Modifica il file come
remote: data.cdb
rsync -az -e ssh data.cdb :/service/tinydns/root/data.cdb
ssh 'svc -t /service/dnscache'
data.cdb: data
/usr/local/bin/tinydns-data
svc -t /service/dnscache b. Modifiche al file /var/libsvscan/tinydns/root/data dello slave come
# Non modificare i dati su questo computer! data.cdb è copiato dal MASTER.
# La seguente riga protegge data.cdb fermando make.
9Quindi, se per errore qualcuno digita il comando make nella directory /etc/tinydns/root o il comando tinydns-data, questo semplicemente svuoterà la cache poiché non ci sarà alcun file di dati negli slave.
E sì, basta impostare un login auto-ssh tra master e slave in modo che le modifiche sopra automatizzino il processo. Le modifiche sopra spingeranno solo il file data.cdb sugli slave. Quindi nessuna possibilità di dati diversi tra i server dei nomi, significa coerenza in tutti.
Backup e Ripristino
Come minimo abbiamo solo bisogno di una copia del file /var/lib/svscan/tinydns/root/data o al massimo dell’intero /var/lib/svscan/dnscache e /var/lib/svscan/tinydns. Ecco tutto.
Per il ripristino, basta impostare dnscache o tinydns, ci vorrà poco tempo, e copiare i dati di backup. Infine, crea un collegamento simbolico a /service. Ecco tutto.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.