Serveur DNS · 3 min read · Oct 02, 2025

Serveur DNS djbDNS propre sur CentOS - dnscache et tinydns - De A à Z

Serveur DNS djbDNS propre sur CentOS - dnscache et tinydns - De A à Z

Qu’est-ce que djbDNS ? Et pourquoi utilisons-nous djbDNS ? Il existe un nouveau point de vue pour servir le service DNS - chacune des fonctionnalités du serveur DNS est un service séparé, comme l’autorité, le cache, le transfert, etc. L’autre différence est les outils de démon qui redémarrent rapidement les services pour éviter les zombies.

Exigences :

Installation propre de CentOS 5.4

Connectez-vous en tant que root.

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

La première étape consiste à installer les outils de démon :

# 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

Ajoutez la ligne suivante à la fin de la ligne gcc :

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

Un autre paquet que nous devons préparer pour que djbdns soit fonctionnel est 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

Ajoutez la ligne suivante à la fin de la ligne gcc :

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

L’étape suivante est la publication du document :

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

Ensuite, nous allons décompresser les docs sous /doc :

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

Utilisez le script suivant pour fusionner dans les docs système :

#!/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

Enregistrez le script dans un fichier : 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

Ajoutez la ligne suivante à la fin de la ligne gcc :

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

Tout le processus de compilation est terminé.

L’étape suivante est la configuration du serveur DNS.

DNSCACHE

Créez deux comptes d’utilisateur système :

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

Configurez le cache :

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

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

Autorisez le reste de votre réseau à interroger dnscache :

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

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

Ajoutez dnscache à la liste des services à surveiller par svscan :

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

Si vous aimez ms-windows… vous pouvez redémarrer pour vous assurer que tout est en place.

Il y a un point ici que vous n’êtes toujours pas en mesure d’interroger depuis votre serveur de cache, car vos clients peuvent maintenant être résolus en mode inverse.

Comme mentionné précédemment, c’est l’une des fonctionnalités de sécurité du cache DNS de vérifier les clients en mode inverse. Donc, dans l’étape suivante, nous allons travailler sur tinydns pour agir pour nous.

DNSTINY

Encore une fois, nous avons besoin de deux comptes d’utilisateur système :

# 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

Il est maintenant temps d’ajouter des nœuds dans la base de données 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

Ces nœuds iront dans le fichier de base de données /var/dnscache/tinydns/root/data que vous pouvez éditer manuellement.

La dernière étape est le démarrage du service DNS :

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

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.