
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.