Le système de noms de domaine (DNS) est la racine d'Internet qui traduit le nom de domaine en adresse IP et vice versa. Le package BIND9 (Berkeley Internet Name Domain) fournit la fonctionnalité de conversion du nom en IP.
Cet article vous guidera pour configurer le serveur DNS sur Ubuntu 18.04 / Ubuntu 16.04.
Environnement
Nom de domaine :itzgeek.local | ||
---|---|---|
ns1.itzgeek.local | 192.168.0.10 | Serveur DNS maître |
Configurer le serveur DNS sur Ubuntu 18.04 / Ubuntu 16.04
Prérequis
Mettre à jour l'index du référentiel.
sudo apt update
Assurez-vous que le serveur DNS a une adresse IP statique.
LIRE : Comment configurer une adresse IP statique dans Ubuntu 18.04 / Ubuntu 16.04 en utilisant ifupdown
Si vous utilisez Netplan – un nouvel outil réseau pour configurer le réseau dans Ubuntu 18.04, alors.
LIRE :Comment configurer une adresse IP statique dans Ubuntu 18.04 à l'aide de Netplan
Installer le serveur DNS
Le nom du package pour le serveur DNS sur Ubuntu est bind9 et est disponible dans le référentiel de base. Utilisez la commande apt pour installer le package bind9.
sudo apt install -y bind9 bind9utils bind9-doc dnsutils
Configurer le serveur DNS
Le répertoire /etc/bind/ est le répertoire de configuration principal du serveur DNS, et il contient les fichiers de configuration et les fichiers de recherche de zone.
Le fichier de configuration global est /etc/bind/named.conf. Vous ne devez pas utiliser ce fichier pour votre zone DNS locale, vous pouvez plutôt utiliser le fichier /etc/bind/named.conf.local.
Créer des zones
Commençons par créer une zone de transfert pour votre domaine.
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
Les entrées suivantes concernent 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 que vous avez créé des zones, vous pouvez continuer et créer des fichiers de données de zone qui contiennent des enregistrements DNS pour la zone directe et la zone inverse.
Fichier de recherche de zone de transfert
Copiez les exemples d'entrées dans le fichier de zone appelé forward.itzgeek.local.db pour la zone de transfert sous /etc/bind répertoire.
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 affiché 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.$TTL 604800 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ;@ 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.
Fichier de recherche de 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 affiché ci-dessous.
Chaque fois que vous modifiez des enregistrements DNS dans le fichier de recherche, assurez-vous de mettre à jour le numéro de série sur un nombre aléatoire, supérieur au numéro actuel.$TTL 604800 @ IN SOA itzgeek.local. root.itzgeek.local. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ;@ 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 et les 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 3 OK
Zone inverse
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 3 OK
Redémarrez le service de liaison.
sudo systemctl restart bind9
Activez-le au démarrage du système.
sudo systemctl enable bind9
Vérifiez l'état du service bind9.
sudo systemctl status bind9
Mise à jour des enregistrements DNS
Chaque fois que vous modifiez un enregistrement DNS, n'oubliez pas de modifier le numéro de série dans le fichier de zone et de recharger la zone.
Changez itzgeek.local &0.168.192.in-addr.arpa avec vos noms de zone.
### Forward Zone ### sudo rndc reload itzgeek.local ### Reverse Zone ### sudo rndc reload 0.168.192.in-addr.arpa
Vérifier le serveur 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
Utilisez la commande dig pour vérifier la zone avant.
dig www.itzgeek.local
Si vous obtenez une commande introuvable, installez le package bind-utils.
Sortie :
; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18022 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; 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: 0 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Mon Dec 30 12:42:18 EST 2019 ;; MSG SIZE rcvd: 96
Réponse du serveur DNS pour la recherche directe :192.168.0.100 comme adresse IP pour www.itzgeek.local .
Confirmez la recherche inversée avec la commande dig.
dig -x 192.168.0.100
Sortie :
; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37122 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; 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: 127.0.1.1#53(127.0.1.1) ;; WHEN: Mon Dec 30 12:43:20 EST 2019 ;; MSG SIZE rcvd: 120
La réponse du serveur DNS pour la recherche inversée :www.itzgeek.local comme nom pour 192.168.0.100.
Ce résultat confirme que les deux recherches de zone fonctionnent correctement.
Conclusion
C'est tout. Vous avez maintenant configuré avec succès le serveur DNS sur Ubuntu 18.04 / Ubuntu 16.04 en tant que serveur maître. Dans notre prochain article, nous configurerons un serveur DNS esclave sur Ubuntu 18.04 / Ubuntu 16.04.