GNU/Linux >> Tutoriels Linux >  >> Debian

Comment configurer le serveur DNS sur Debian 10 / Debian 9

Le système de noms de domaine (en bref, DNS) est un service Internet utilisé pour résoudre le nom de domaine en adresse IP et vice versa.

BIND (Berkeley Internet Name Domain) fournit la fonctionnalité de conversion du nom en IP.

Cet article vous aidera à configurer le serveur DNS sur Debian 10 / Debian 9.

Environnement

Nom de domaine :itzgeek.local
ns1.itzgeek.local 192.168.0.10 Serveur DNS maître

Prérequis

Mettre à jour l'index du référentiel.

sudo apt-get update

Assurez-vous que le serveur DNS a une adresse IP statique.

LIRE :Comment configurer une adresse IP statique dans Debian

Installer le serveur DNS

Le nom de paquet du serveur DNS dans Debian est bind9 et est disponible dans le référentiel de base. Vous pouvez utiliser la commande apt pour installer le package bind9.

sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils

Configurer le serveur DNS

Le /etc/bind/ est le répertoire de configuration de bind9, contient les fichiers de configuration et les fichiers de recherche de zone. Le fichier de configuration global est /etc/bind/named.conf.

Créer des zones

Commençons par créer une zone de transfert pour votre domaine.

Vous ne devez pas utiliser le fichier de configuration global pour la zone DNS locale, vous pouvez plutôt utiliser le fichier /etc/bind/named.conf.local.

sudo nano /etc/bind/named.conf.local

Zone avant

Voici l'entrée de zone de transfert pour le domaine itzgeek.local dans le fichier named.conf.local.

zone "itzgeek.local" IN { //Domain name

     type master; //Primary DNS

     file "/etc/bind/forward.itzgeek.local.db"; //Forward lookup file

     allow-update { none; }; // Since this is the primary DNS, it should be none.

};

Zone inversée

Ce qui suit concerne la zone inverse dans le fichier named.conf.local.

zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order

     type master; // Primary DNS

     file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file

     allow-update { none; }; //Since this is the primary DNS, it should be none.

};

Créer un fichier de recherche de zone

Une fois les zones créées, vous pouvez poursuivre et créer des fichiers de données de zone pour la zone avant et la zone arrière.

Zone avant

Copiez les exemples d'entrées dans le fichier de zone appelé forward.itzgeek.local.db pour la zone de transfert sous le répertoire /etc/bind.

Types d'enregistrement dans le fichier de zone,

SOA – Début de l'autorité
NS – Serveur de noms
A – Enregistrement A
MX – Mail for Exchange
CN – Canonical Nom

Les noms de domaine doivent se terminer par un point (.).

sudo cp /etc/bind/db.local /etc/bind/forward.itzgeek.local.db

Modifier la zone.

sudo nano /etc/bind/forward.itzgeek.local.db

Mettez à jour le contenu comme indiqué ci-dessous.

Chaque fois que vous modifiez des enregistrements dans le fichier de recherche, assurez-vous de mettre à jour le numéro de série avec un nombre aléatoire, supérieur à l'actuel.
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns1.itzgeek.local. root.itzgeek.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
; Commentout below three lines
;@      IN      NS      localhost.
;@      IN      A       127.0.0.1
;@      IN      AAAA    ::1

;Name Server Information

@       IN      NS      ns1.itzgeek.local.

;IP address of Name Server

ns1     IN      A       192.168.0.10

;Mail Exchanger

itzgeek.local.   IN     MX   10   mail.itzgeek.local.

;A – Record HostName To Ip Address

www     IN       A      192.168.0.100
mail    IN       A      192.168.0.150

;CNAME record

ftp     IN      CNAME   www.itgeek.local.

Zone inversée

Copiez les exemples d'entrées dans le fichier de zone appelé reverse.itzgeek.local.db pour la zone inverse sous le répertoire /etc/bind et créez des pointeurs inverses pour les enregistrements de zone avant ci-dessus.

PTR – Pointeur
SOA – Début de l'autorité

sudo cp /etc/bind/db.127 /etc/bind/reverse.itzgeek.local.db

Modifiez le fichier de zone inversée.

sudo nano /etc/bind/reverse.itzgeek.local.db

Mettez à jour le contenu comme indiqué ci-dessous.

Chaque fois que vous modifiez des enregistrements dans le fichier de recherche, assurez-vous de mettre à jour le numéro de série avec un nombre aléatoire, supérieur à l'actuel.
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     itzgeek.local. root.itzgeek.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
; Commentout below two lines

;@      IN      NS      localhost.
;1.0.0  IN      PTR     localhost.

;Name Server Information

@       IN      NS     ns1.itzgeek.local.

;Reverse lookup for Name Server

10      IN      PTR    ns1.itzgeek.local.

;PTR Record IP address to HostName

100     IN      PTR    www.itzgeek.local.
150     IN      PTR    mail.itzgeek.local.

Vérifier la syntaxe de configuration de BIND

Utilisez la commande named-checkconf pour vérifier la syntaxe des fichiers named.conf* pour toute erreur.

sudo named-checkconf

La commande reviendra au shell s'il n'y a pas d'erreurs.

En outre, vous pouvez utiliser named-checkzone pour vérifier les erreurs de syntaxe dans les fichiers de zone.

Zone avant

sudo named-checkzone itzgeek.local /etc/bind/forward.itzgeek.local.db

Sortie :

zone itzgeek.local/IN: loaded serial 2
OK

Zone inversée

sudo named-checkzone 0.168.192.in-addr.arpa /etc/bind/reverse.itzgeek.local.db

Sortie :

zone 0.168.192.in-addr.arpa/IN: loaded serial 2
OK

Redémarrez le service de liaison.

sudo systemctl restart bind9

Vérifiez l'état du service bind9.

sudo systemctl status bind9

Vérifier le DNS

Accédez à n'importe quelle machine cliente et ajoutez notre nouvelle adresse IP de serveur DNS dans le fichier /etc/resolv.conf.

sudo nano /etc/resolv.conf

Faites une entrée comme ci-dessous.

nameserver 192.168.0.10

OU

Lisez le tutoriel ci-dessous pour définir l'adresse IP du serveur DNS sous Linux.

LIRE : Comment définir l'adresse IP DNS dans CentOS / Fedora

LIRE : Comment définir l'adresse IP DNS dans Ubuntu / Debian - ifupdown

LIRE : Comment définir l'adresse IP DNS dans Ubuntu 18.04 - Netplan

Vous pouvez utiliser la commande nslookup ou dig pour vérifier le serveur DNS.

Utilisez la commande dig pour vérifier la recherche directe.

dig www.itzgeek.local

Si vous obtenez la commande introuvable, installez bind-utils sur les dérivés de Red Hat ou dnsutils sur le paquet dérivé de Debian.

Sortie :

; <<>> DiG 9.11.5-P4-5.1-Debian <<>> www.itzgeek.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41979
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: c51856f159ddf40dadc13b835e1024a996e2a306d7888afe (good)
;; QUESTION SECTION:
;www.itzgeek.local.             IN      A

;; ANSWER SECTION:
www.itzgeek.local.      604800  IN      A       192.168.0.100

;; AUTHORITY SECTION:
itzgeek.local.          604800  IN      NS      ns1.itzgeek.local.

;; ADDITIONAL SECTION:
ns1.itzgeek.local.      604800  IN      A       192.168.0.10

;; Query time: 1 msec
;; SERVER: 192.168.0.10#53(192.168.0.10)
;; WHEN: Sat Jan 04 05:37:45 UTC 2020
;; MSG SIZE  rcvd: 124

La réponse du serveur DNS pour la recherche directe www.itzgeek.local est 192.168.0.100.

Confirmez la recherche inversée avec la commande dig.

dig -x 192.168.0.100

Sortie :

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> -x 192.168.0.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33889
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 9806a5ee8f6645c178aa65b25e102530e49ae9a15456fbe1 (good)
;; QUESTION SECTION:
;100.0.168.192.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
100.0.168.192.in-addr.arpa. 604800 IN   PTR     www.itzgeek.local.

;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 604800  IN      NS      ns1.itzgeek.local.

;; ADDITIONAL SECTION:
ns1.itzgeek.local.      604800  IN      A       192.168.0.10

;; Query time: 0 msec
;; SERVER: 192.168.0.10#53(192.168.0.10)
;; WHEN: Sat Jan 04 05:40:00 UTC 2020
;; MSG SIZE  rcvd: 148

La réponse du serveur DNS pour la recherche inversée 192.168.0.100 est www.itzgeek.local.

Ce résultat confirme que les recherches de zone directes et inversées fonctionnent correctement.

Conclusion

C'est tout. Vous avez installé avec succès le serveur DNS sur Debian 10 / Debian 9. Dans notre prochain article, nous configurerons le serveur DNS esclave sur Debian 10 / Debian 9.


Debian
  1. Comment configurer le serveur FTP sur Debian 9 Stretch Linux

  2. Comment configurer le partage du serveur Samba sur Debian 9 Stretch Linux

  3. Comment installer et configurer OpenVPN Server sur Debian 10

  4. Comment déployer un serveur DNS dynamique avec Docker sur Debian 10

  5. Comment installer et configurer un serveur DNS simple (BIND) sur Debian 9

Comment configurer le serveur DNS sur Ubuntu 18.04 / Ubuntu 16.04

Comment configurer le serveur et le client NTP sur Debian 10

Comment installer et configurer le serveur Web Apache sur Debian 11

Comment configurer LAMP avec Debian 11

Comment configurer le serveur Samba avec Debian 11

Comment configurer DNS dans Windows Server 2012