Installer et configurer le serveur DNS dans Ubuntu 16.04 LTS
Ce didacticiel complet décrit comment installer et configurer le serveur DNS dans l'édition serveur Ubuntu 16.04 LTS 64 bits. Comme vous le savez peut-être déjà, DNS est la forme abrégée du systèmede nomde domaine, qui est utilisé pour résoudre les noms d'hôtes en adresses IP et vice versa. Pour les besoins de ce guide, j'utiliserai trois systèmes, un pour le serveur DNS primaire, un autre pour le DNS secondaire et le troisième pour le client DNS. Tous les systèmes fonctionnent avec les systèmes d'exploitation Ubuntu 16.04. Voici l'adresse IP et le nom d'hôte de chaque système.
Serveur DNS principal :
- Système d'exploitation : Serveur Ubuntu 16.04 LTS 64 bits
- Nom d'hôte : pri.ostechnix.lan
- Adresse IP : 192.168.1.200/24
Serveur DNS secondaire :
- Système d'exploitation : Serveur Ubuntu 16.04 LTS 64 bits
- Nom d'hôte : sec.ostechnix.lan
- Adresse IP : 192.168.1.201/24
Client DNS :
- Système d'exploitation : Serveur Ubuntu 16.04 LTS 64 bits
- Nom d'hôte : client.ostechnix.lan
- Adresse IP : 192.168.1.202/24
Commençons.
Installer et configurer le serveur DNS dans Ubuntu 16.04
Je diviserai ce guide en trois parties par souci de simplicité et de facilité de compréhension.
- Installer et configurer le serveur de noms avec mise en cache uniquement,
- Installer et configurer le serveur DNS principal ou le serveur DNS maître
- Installer et configurer un serveur DNS secondaire ou un serveur DNS esclave
Faisons-le étape par étape.
Partie 1 : Installer et configurer le serveur de noms avec mise en cache uniquement,
Assurez-vous que votre serveur Ubuntu est à jour.
sudo apt-get updatesudo apt-get upgradesudo apt-get dist-upgradeInstaller BIND9
Après avoir mis à jour le système, exécutez la commande suivante pour installer les packages BIND9 utilisés pour configurer le serveur DNS.
sudo apt-get install bind9 bind9utils bind9-docInstaller BIND9
Configuration du serveur de noms de mise en cache
Le serveur de noms de mise en cache enregistre les résultats de la requête DNS localement pendant une période de temps particulière. Il réduit le trafic du serveur DNS en enregistrant les requêtes localement, améliorant ainsi les performances et l'efficacité du serveur DNS.
Pour configurer le serveur de noms Caching, modifiez le fichier /etc/bind/named.conf.options :
sudo nano /etc/bind/named.conf.optionsDécommentez les lignes suivantes. Et puis, ajoutez les adresses IP de votre FAI ou du serveur DNS public de Google.
forwarders {
8.8.8.8;
};Enregistrez et fermez le fichier.
Et puis redémarrez le service bind9 pour prendre en compte les modifications.
sudo systemctl restart bind9Nous avons installé avec succès le serveur de noms de mise en cache.
Test du serveur de noms de mise en cache
Vérifions maintenant si cela fonctionne ou non en utilisant la commande :
dig -x 127.0.0.1Si vous voyez quelque chose comme ci-dessous, félicitations ! La mise en cache du serveur de noms fonctionne !
; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22769
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.0.0.127.in-addr.arpa. IN PTR
;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 604800 IN PTR localhost.
;; AUTHORITY SECTION:
127.in-addr.arpa. 604800 IN NS localhost.
;; ADDITIONAL SECTION:
localhost. 604800 IN A 127.0.0.1
localhost. 604800 IN AAAA ::1
;; Query time: 0 msec
;; SERVER: 192.168.1.200#53(192.168.1.200)
;; WHEN: Tue Aug 23 15:53:59 IST 2016
;; MSG SIZE rcvd: 132Partie 2 : Installer et configurer le serveur DNS principal
Assurez-vous que votre serveur Ubuntu est à jour à l'aide des commandes suivantes :
sudo apt-get updatesudo apt-get upgradesudo apt-get dist-upgradeInstaller BIND9
Exécutez la commande suivante pour installer les packages BIND9.
sudo apt-get install bind9 bind9utils bind9-docConfiguration du serveur DNS principal
Tous les fichiers de configuration seront disponibles dans le répertoire /etc/bind/.
Modifions le fichier de configuration bind9
Modifiez '/etc/bind/named.conf' à l'aide de l'éditeur de votre choix :
sudo nano /etc/bind/named.confCe fichier doit contenir les lignes suivantes. Si les lignes ne sont pas là, ajoutez-les simplement.
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
Enregistrez les modifications et quittez le fichier.
Nous devons définir les fichiers de zones avant et arrière.
Pour ce faire, éditez le fichier named.conf.local :
sudo nano /etc/bind/named.conf.localDéfinissez les fichiers avant et arrière comme indiqué ci-dessous.
zone "ostechnix.lan" {
type master;
file "/etc/bind/for.ostechnix.lan";
allow-transfer { 192.168.1.201; };
also-notify { 192.168.1.201; };
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/rev.ostechnix.lan";
allow-transfer { 192.168.1.201; };
also-notify { 192.168.1.201; };
};Ici, for.ostechnix.lan est le fichier de zone de transfert. rev.ostechnix.lan correspond aux fichiers de zone inversée. Et 192.168.1.202 est l'adresse IP du serveur DNS secondaire. Nous faisons cela parce que le DNS secondaire commencera à récupérer les requêtes si le serveur principal est en panne.
Enregistrez et fermez le fichier.
Créons maintenant les fichiers de zones que nous avons définis à l'étape précédente.
Créons d’abord un fichier de zone de transfert comme indiqué ci-dessous.
sudo nano /etc/bind/for.ostechnix.lanAjoutez les lignes suivantes :
$TTL 86400
@ IN SOA pri.ostechnix.lan. root.ostechnix.lan. (
2011071001 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS pri.ostechnix.lan.
@ IN NS sec.ostechnix.lan.
@ IN A 192.168.1.200
@ IN A 192.168.1.201
@ IN A 192.168.1.202
pri IN A 192.168.1.200
sec IN A 192.168.1.201
client IN A 192.168.1.202
De même, vous pouvez ajouter les autres enregistrements clients tels que définis dans le fichier ci-dessus.
Enregistrez et fermez le fichier. Créez ensuite une zone inversée.
sudo nano /etc/bind/rev.ostechnix.lanAjoutez les lignes suivantes :
$TTL 86400
@ IN SOA pri.ostechnix.lan. root.ostechnix.lan. (
2011071002 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS pri.ostechnix.lan.
@ IN NS sec.ostechnix.lan.
@ IN PTR ostechnix.lan.
pri IN A 192.168.1.200
sec IN A 192.168.1.201
client IN A 192.168.1.202
200 IN PTR pri.ostechnix.lan.
201 IN PTR sec.ostechnix.lan.
202 IN PTR client.ostechnix.lan.Enregistrez et fermez le fichier.
Définissez les autorisations et la propriété appropriées sur le répertoire bind9.
sudo chmod -R 755 /etc/bindsudo chown -R bind:bind /etc/bindEnsuite, nous devons vérifier les fichiers de configuration DNS et les fichiers de zone.
Vérifiez les fichiers de configuration DNS avec les commandes :
sudo named-checkconf /etc/bind/named.confsudo named-checkconf /etc/bind/named.conf.localSi les commandes ci-dessus ne renvoient rien, cela signifie que la configuration DNS est valide.
Ensuite, vérifiez les fichiers de zone à l'aide des commandes :
sudo named-checkzone ostechnix.lan /etc/bind/for.ostechnix.lanExemple de résultat :
zone ostechnix.lan/IN: loaded serial 2011071001
OKVérifiez le fichier de zone inversée :
sudo named-checkzone ostechnix.lan /etc/bind/rev.ostechnix.lanExemple de résultat :
zone ostechnix.lan/IN: loaded serial 2011071002
OKSi vous obtenez les résultats indiqués ci-dessus, alors tout va bien.
Il est maintenant temps de vérifier si le serveur DNS principal fonctionne ou non.
Modifiez le fichier /etc/network/interfaces :
sudo vi /etc/network/interfacesAjoutez l'adresse IP du serveur DNS. Dans notre cas, l'adresse IP du serveur DNS est la même adresse IP que cette machine elle-même.
dns-nameservers 192.168.1.200Enregistrez et fermez le fichier.
Enfin, redémarrez le service Bind9.
sudo systemctl restart bind9Test du serveur DNS principal
Vérifiez le serveur DNS à l'aide des commandes dig ou nslookup.
dig pri.ostechnix.lanExemple de résultat :
; <<>> DiG 9.10.3-P4-Ubuntu <<>> pri.ostechnix.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51989
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;pri.ostechnix.lan. IN A
;; ANSWER SECTION:
pri.ostechnix.lan. 86400 IN A 192.168.1.200
;; AUTHORITY SECTION:
ostechnix.lan. 86400 IN NS sec.ostechnix.lan.
ostechnix.lan. 86400 IN NS pri.ostechnix.lan.
;; ADDITIONAL SECTION:
sec.ostechnix.lan. 86400 IN A 192.168.1.201
;; Query time: 0 msec
;; SERVER: 192.168.1.200#53(192.168.1.200)
;; WHEN: Tue Aug 23 16:56:13 IST 2016
;; MSG SIZE rcvd: 110Ou utilisez la commande nslookup comme indiqué ci-dessous :
nslookup ostechnix.lanExemple de résultat :
Server: 192.168.1.200
Address: 192.168.1.200#53
Name: ostechnix.lan
Address: 192.168.1.200
Name: ostechnix.lan
Address: 192.168.1.201
Name: ostechnix.lan
Address: 192.168.1.202Si vous obtenez des résultats comme ci-dessus, alors le serveur DNS principal est opérationnel et fonctionne parfaitement !
Partie 2 : Installer et configurer le serveur DNS secondaire
Vous avez besoin d'un système distinct pour configurer ce serveur. Nous avons besoin d'un serveur DNS secondaire, car en cas de problème avec le DNS primaire, le serveur DNS secondaire résoudra toujours les requêtes.
Tout d’abord, mettez à jour le serveur à l’aide des commandes :
sudo apt-get updatesudo apt-get upgradesudo apt-get dist-upgradeInstaller BIND9
Installez les packages bind9 requis :
sudo apt-get install bind9 bind9utils bind9-docConfigurer le serveur DNS secondaire
Modifiez le fichier de configuration bind9 :
sudo nano /etc/bind/named.confAjoutez les lignes suivantes si elles n'y sont pas.
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
Enregistrez et fermez le fichier.
Ensuite, nous devons définir les fichiers de zone.
Pour ce faire, modifiez le fichier named.conf.local :
sudo nano /etc/bind/named.conf.localAjoutez ou modifiez les lignes suivantes. Remplacez les fichiers d'adresse IP et de zone par vos propres valeurs.
zone "ostechnix.lan" {
type slave;
file "/var/cache/bind/for.ostechnix.lan";
masters { 192.168.5.200; };
};
zone "1.168.192.in-addr.arpa" {
type slave;
file "/var/cache/bind/rev.ostechnix.lan";
masters { 192.168.5.200; };
};Ici, 192.168.1.200 est l'adresse IP du serveur DNS principal.
Veuillez noter que le chemin des fichiers de zone doit être le répertoire /var/cache/bind/. En effet, AppArmor n'autorise que l'accès en écriture par défaut.
Ensuite, définissez l'autorisation et la propriété appropriées sur le répertoire de liaison.
sudo chmod -R 755 /etc/bind
sudo chown -R bind:bind /etc/bindEnsuite, modifiez le fichier de configuration réseau et ajoutez l'adresse IP des serveurs DNS principal et secondaire.
sudo nano /etc/network/interfaces[...]
dns-nameservers 192.168.1.200
dns-nameservers 192.168.1.201Enregistrez et fermez le fichier.
Enfin, redémarrez votre système pour prendre en compte toutes les modifications.
Test du serveur DNS secondaire
Comme je l'ai déjà mentionné, nous utilisons les commandes "dig" ou "nslookup" pour tester le serveur DNS.
Vérifions le serveur DNS secondaire avec la commande :
dig sec.ostechnix.lanExemple de résultat :
; <<>> DiG 9.10.3-P4-Ubuntu <<>> sec.ostechnix.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49308
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;sec.ostechnix.lan. IN A
;; ANSWER SECTION:
sec.ostechnix.lan. 86400 IN A 192.168.1.201
;; AUTHORITY SECTION:
ostechnix.lan. 86400 IN NS sec.ostechnix.lan.
ostechnix.lan. 86400 IN NS pri.ostechnix.lan.
;; ADDITIONAL SECTION:
pri.ostechnix.lan. 86400 IN A 192.168.1.200
;; Query time: 2 msec
;; SERVER: 192.168.1.200#53(192.168.1.200)
;; WHEN: Tue Aug 23 18:19:47 IST 2016
;; MSG SIZE rcvd: 110De même, vous pouvez vérifier le serveur DNS principal avec la commande :
dig pri.ostechnix.lanOu utilisez simplement la commande nslookup comme indiqué ci-dessous.
nslookup ostechnix.lanRemarque : Veuillez noter que les fichiers de zone seront transférés uniquement lorsque le numéro de série sur le serveur DNS principal est supérieur au numéro de série du serveur DNS secondaire.
Configuration du client DNS
Modifiez le fichier de configuration réseau dans le système client :
sudo nano /etc/network/interfacesAjoutez les adresses IP du serveur de noms.
[...]
nameserver 192.168.1.200
nameserver 192.168.1.201
Enregistrez et fermez le fichier. Ensuite, redémarrez votre système pour appliquer les modifications.
Testez les serveurs DNS à l'aide de l'une des commandes suivantes :
dig pri.ostechnix.landig sec.ostechnix.lan
dig client.ostechnix.lan
nslookup ostechnix.local
À ce stade, vous disposerez de serveurs DNS primaires et secondaires fonctionnels.
C'est tout pour le moment. Si vous trouvez ce guide utile, partagez-le sur vos réseaux sociaux et soutenez OSTechNix.
Acclamations!













