GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer le résolveur DNS local à l'aide de Dnsmasq sur Ubuntu 20.04

Dnsmasq signifie "abréviation de mascarade DNS" est un redirecteur DNS simple, léger et facile à utiliser utilisé pour un petit réseau. Il peut être configuré en tant que cache DNS et serveur DHCP et prend en charge les protocoles IPv4 et IPv6. Lorsqu'il reçoit des requêtes DNS, il y répond depuis son cache ou les transmet aux différents serveurs DNS.

Dnsmasq est composé de trois sous-systèmes :

  • Sous-système DNS : Il est utilisé pour mettre en cache différents types d'enregistrements, notamment A, AAAA, CNAME et PTR.
  • Sous-système DHCP : Il prend en charge DHCPv4, DHCPv6, BOOTP et PXE
  • Sous-système de publicité de routeur : Il fournit une configuration automatique de base pour les hôtes IPv6. Il peut être utilisé de manière autonome ou en conjonction avec DHCPv6.

Dans ce tutoriel, nous allons vous montrer comment configurer un serveur DNS local avec Dnsmasq sur le serveur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur le serveur.

Mise en route

Tout d'abord, il est recommandé de mettre à jour vos packages système vers la dernière version. Vous pouvez mettre à jour tous les packages en exécutant la commande suivante :

apt-get update -y

Après avoir mis à jour tous les packages, vous devrez désactiver le service résolu par Systemd dans votre système. Le service résolu par Systemd est utilisé pour la résolution de noms de réseau pour les applications locales.

Vous pouvez le désactiver en exécutant la commande suivante :

systemctl disable --now systemd-resolved

Une fois le service désactivé, vous devrez supprimer le fichier resolv.conf par défaut et en créer un nouveau avec les détails de votre serveur DNS personnalisé.

Vous pouvez supprimer le fichier resolv.conf par défaut avec la commande suivante :

rm -rf /etc/resolv.conf

Ensuite, ajoutez le serveur DNS de Google au fichier resolv.conf avec la commande suivante :

echo "nameserver 8.8.8.8" > /etc/resolv.conf

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Installer Dnsmasq

Par défaut, Dnsmasq est disponible dans le référentiel par défaut d'Ubuntu 20.04. Vous pouvez l'installer en exécutant simplement la commande suivante :

apt-get install dnsmasq dnsutils ldnsutils -y

Une fois l'installation terminée, les services Dnsmasq seront lancés automatiquement. Vous pouvez vérifier l'état du Dnsmasq avec la commande suivante :

systemctl status dnsmasq

Vous devriez obtenir le résultat suivant :

dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-11-02 11:02:01 UTC; 15s ago
   Main PID: 17726 (dnsmasq)
      Tasks: 1 (limit: 2282)
     Memory: 868.0K
     CGroup: /system.slice/dnsmasq.service
             ??17726 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e>

Nov 02 11:02:12 ubuntu2004 systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Nov 02 11:02:12 ubuntu2004 dnsmasq[17705]: dnsmasq: syntax check OK.
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: started, version 2.80 cachesize 150
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: DNS service limited to local subnets
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfi>
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: reading /etc/resolv.conf
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: using nameserver 8.8.8.8#53
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: read /etc/hosts - 7 addresses
Nov 02 11:02:12 ubuntu2004 systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Configurer Dnsmasq

Ensuite, vous devrez configurer Dnsmasq en tant que serveur DNS local. Vous pouvez le faire en éditant le fichier de configuration principal de Dnsmasq :

nano /etc/dnsmasq.conf

Modifiez les lignes suivantes :

port=53
domain-needed
bogus-priv
listen-address=127.0.0.1,your-server-ip
expand-hosts
domain=dns-example.com
cache-size=1000

Enregistrez et fermez le fichier lorsque vous avez terminé.

Ensuite, vous devrez ajouter l'adresse IP de votre serveur en tant que serveur de noms principal dans votre fichier resolv.conf. Vous pouvez l'ajouter avec la commande suivante :

nano /etc/resolv.conf

Ajoutez la ligne suivante au-dessus de la ligne "nameserver 8.8.8.8":

nameserver your-server-ip

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vérifiez le serveur pour toute erreur de configuration avec la commande suivante :

dnsmasq --test

Si tout va bien, vous devriez obtenir le résultat suivant :

dnsmasq: syntax check OK.

Enfin, redémarrez le service Dnsmasq pour appliquer les modifications :

systemctl restart dnsmasq

À ce stade, Dnsmasq est démarré et écoute sur le port 53. Vous pouvez le vérifier avec la commande suivante :

ss -alnp | grep -i :53

Vous devriez obtenir le résultat suivant :

udp     UNCONN   0        0                                             0.0.0.0:53                                                0.0.0.0:*                      users:(("dnsmasq",pid=41051,fd=4))                                             
udp     UNCONN   0        0                                                [::]:53                                                   [::]:*                      users:(("dnsmasq",pid=41051,fd=6))                                             
tcp     LISTEN   0        32                                            0.0.0.0:53                                                0.0.0.0:*                      users:(("dnsmasq",pid=41051,fd=5))                                             
tcp     LISTEN   0        32                                               [::]:53                                                   [::]:*                      users:(("dnsmasq",pid=41051,fd=7))                                             

Ajouter des enregistrements DNS au serveur Dnsmasq

Ensuite, vous devrez modifier votre fichier /etc/hosts et ajouter l'entrée du serveur DNS local.

nano /etc/hosts

Ajoutez la ligne suivante :

your-server-ip host1.dns-example.com

Enregistrez et fermez le fichier lorsque vous avez terminé.

Vérifier la résolution du serveur Dnsmasq

À ce stade, Dnsmasq est installé et configuré. Non, il est temps de vérifier la résolution DNS.

Vous pouvez utiliser la commande dig pour vérifier la résolution DNS comme indiqué ci-dessous :

dig host1.dns-example.com +short

Si tout va bien, vous devriez voir l'adresse IP de votre serveur dans la sortie suivante :

your-server-ip

Vous pouvez également vérifier la résolution DNS externe avec la commande suivante :

dig howtoforge.com +short

Vous devriez obtenir le résultat suivant :

172.67.68.93
104.26.3.165
104.26.2.165

Configurer le client distant pour utiliser le serveur DNS Dnsmasq

Ensuite, vous devrez configurer un client distant pour utiliser votre serveur DNS Dnsmasq comme serveur DNS par défaut.

Tout d'abord, installez les outils DNS avec la commande suivante :

apt-get install dnsutils ldnsutils -y

Une fois installé, vous devrez modifier le fichier /etc/resolv.conf et votre entrée de serveur DNS Dnsmasq.

nano /etc/resolv.conf

Ajoutez la ligne suivante au début du fichier :

nameserver your-server-ip

Enregistrez et fermez le fichier lorsque vous avez terminé.

Ensuite, vérifiez la résolution DNS locale avec la commande suivante :

dig host1.dns-example.com

Vous devriez voir le résultat suivant :

; DiG 9.9.5-3ubuntu0.4-Ubuntu host1.dns-example.com
;; global options: +cmd
;; Got answer:
;; HEADER opcode: QUERY, status: NOERROR, id: 26401
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;host1.dns-example.com.		IN	A

;; ANSWER SECTION:
host1.dns-example.com.	0	IN	A	45.58.32.165

;; Query time: 301 msec
;; SERVER: 45.58.32.165#53(45.58.32.165)
;; WHEN: Mon Nov 02 16:49:37 IST 2020
;; MSG SIZE  rcvd: 66

Ensuite, vous devrez vérifier votre serveur DNS pour la mise en cache. Vous pouvez le vérifier à l'aide de l'utilitaire de forage.

Tout d'abord, exécutez la commande suivante :

drill google.com | grep "Query time"

Vous devriez voir le résultat suivant :

;; Query time: 290 msec

Ensuite, exécutez à nouveau la commande pour vérifier si la mise en cache fonctionne ou non :

drill google.com | grep "Query time"

Vous devriez voir que le temps de requête diminue maintenant à 4 msec :

;; Query time: 4 msec

Conclusion

Toutes nos félicitations! vous avez installé et configuré avec succès Dnsmasq en tant que serveur DNS local et Ubuntu 20.04. J'espère que vous pourrez désormais l'implémenter facilement dans votre réseau local pour la résolution de noms.


Ubuntu
  1. 4 étapes pour configurer le référentiel local dans Ubuntu à l'aide d'APT-mirror

  2. Comment configurer HAProxy dans Ubuntu 16.04

  3. Comment configurer le pare-feu UFW sur Ubuntu 18.04

  4. Comment configurer un résolveur DNS non lié sur Ubuntu 20.04

  5. Comment configurer le résolveur DNS dans Fedora à l'aide du gestionnaire de réseau ?

Comment configurer le serveur de journalisation central à l'aide de Rsyslog sur Ubuntu 20.04

Comment configurer le serveur DNS sur Ubuntu 18.04 / Ubuntu 16.04

Comment configurer OpenVPN sur Ubuntu Server

Comment configurer un VPN sur Ubuntu

Configurer un résolveur DNS local sur Ubuntu 18.04, 16.04 avec BIND9

Configurer le résolveur DNS local sur Ubuntu 20.04 avec BIND9