DNS Server · 3 min read · Oct 02, 2025

Server DNS djbDNS pulito su CentOS - dnscache e tinydns - A To Z

Server DNS djbDNS pulito su CentOS - dnscache e tinydns - A To Z

Che cos’è djbDNS? E perché usiamo djbDNS? C’è un nuovo punto di vista per fornire il servizio dns - ciascuna delle funzionalità del server dns è un servizio separato, come autorità, cache, forward e così via. L’altra differenza sono gli strumenti daemon che riavviano rapidamente i servizi per prevenire i zombie.

Requisiti:

Installazione pulita di CentOS 5.4

Accedi come root.

# yum update
# yum install gcc
# mkdir pkg
# cd pkg

Il primo passo è installare gli strumenti daemon:

# cd ~/pkg
# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
# gunzip daemontools-0.76.tar
# tar -xpf daemontools-0.76.tar
# rm -f daemontools-0.76.tar
# cd admin/daemontools-0.76
# vi src/conf-cc

Aggiungi la seguente riga alla fine della riga gcc:

-include /usr/include/errno.h
# ./package/install

Un altro pacchetto che dobbiamo preparare affinché djbdns sia funzionale è ucspi:

# cd ~/pkg
# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
# gunzip ucspi-tcp-0.88.tar
# tar -xf ucspi-tcp-0.88.tar
# cd ucspi-tcp-0.88
# vi src/conf-cc

Aggiungi la seguente riga alla fine della riga gcc:

-include /usr/include/errno.h
# make
# make setup check

Il passo successivo è la pubblicazione del documento:

# cd ~/pkg
# wget http://cr.yp.to/djbdns/doc.tar.gz

Successivamente decomprimeremo i documenti sotto /doc:

# gunzip < doc.tar.gz | (cd /; tar -xf -)

Usa il seguente script per unire nei documenti di sistema:

#!/bin/sh
for i in packages commands cfunctions fileformats
do
  sort -f /dev/null `find /doc/merge -name $i.html` > /doc/$i.new
  mv /doc/$i.new /doc/$i.html
done

Salva lo script in un file: script.sh

# chmod +x script.sh
# ./script.sh
# cd ~/pkg
# wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
# gunzip djbdns-1.05.tar
# tar -xf djbdns-1.05.tar
# cd djbdns-1.05
# vi src/conf-cc

Aggiungi la seguente riga alla fine della riga gcc:

-include /usr/include/errno.h
# make
# make setup check

Tutta la compilazione è completata.

Il passo successivo è la configurazione del server dns.

DNSCACHE

Crea due account utente di sistema:

# useradd -d /var/dnscache -s /bin/false dnscache
# useradd -d /var/dnscache -s /bin/false dnslog

Configura la cache:

# dnscache-conf dnscache dnslog /var/dnscache/dnscache 

Esempio: dnscache-conf dnscache dnslog /var/dnscache/dnscache 192.168.20.1

Consenti al resto della tua rete di interrogare dnscache:

# touch /var/dnscache/dnscache/root/ip/

Esempio: touch /var/dnscache/dnscache/root/ip/192.168

Aggiungi dnscache all’elenco dei servizi da monitorare con svscan:

# ln -sf /var/dnscache/dnscache /service/

Se ti piace ms-windows… puoi riavviare per essere sicuro che tutto sia a posto.

C’è un punto qui che non sei ancora in grado di interrogare dal tuo server cache, perché i tuoi client ora possono essere risolti in modalità inversa.

Come accennato in precedenza, è una delle caratteristiche di sicurezza della cache dns controllare inversamente i client. Quindi nel passo successivo lavoreremo su tinydns per agire per noi.

DNSTINY

Ancora una volta, abbiamo bisogno di due account utente di sistema:

# useradd -d /var/dnscache -s /bin/false tinydns
# useradd -d /var/dnscache -s /bin/false tinylog
# tinydns-conf tinydns tinylog /var/dnscache/tinydns 127.0.0.1

Ora è il momento di aggiungere nodi nel database dns:

# cd /var/dnscache/tinydns/root
# ./add-ns internal 192.168.20.1
# ./add-ns 20.168.192.in-addr.arpa 192.168.20.1
# ./add-mx internal 192.168.20.2
# ./add-host ns.internal 192.168.20.1
# ./add-host mail.internal 192.168.20.2
# ./add-alias unagi.internal 192.168.20.2
# make

Questi nodi andranno nel file del database /var/dnscache/tinydns/root/data che puoi modificare manualmente.

L’ultimo passo è l’avvio del servizio dns:

# ln -sf /var/dnscache/tinydns /service
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.