Comment vérifier et configurer les serveurs DNS sur Linux : des bases aux mesures de sécurité

Vérifier et configurer précisément les serveurs DNS sur un système Linux est extrêmement important pour maintenir la stabilité et l’efficacité de votre réseau. Cet article fournit un guide complet pour les débutants et les utilisateurs avancés sur la manière de vérifier et de configurer les serveurs DNS sur Linux. En commençant par les concepts de base, il couvre l’utilisation d’outils en ligne de commande spécifiques, l’édition de fichiers de configuration, le dépannage et englobe de manière approfondie les connaissances pratiques. En conséquence, votre système Linux deviendra plus efficace pour accéder aux ressources sur Internet.

Sommaire

Qu’est-ce que DNS : une explication du concept de base

Le système de noms de domaine (DNS) est un système qui convertit les noms de domaine Internet en adresses IP et vice versa. Il joue un rôle crucial dans la réalisation de recherches sur Internet et l’accès aux sites web en traduisant des noms de domaine mémorables (par exemple, www.example.com) en adresses IP numériques (par exemple, 192.0.2.1) que les ordinateurs peuvent comprendre. Ce processus, connu sous le nom de « résolution de noms », facilite la récupération d’informations sur Internet.

DNS a une structure hiérarchique avec les « Serveurs DNS Racines » en haut, gérant la dernière partie des noms de domaine (par exemple, .com, .org). Ceux-ci sont suivis par les « Serveurs de Domaine de Premier Niveau (TLD) », puis par les « Serveurs DNS Autoritaires », et enfin, les « Serveurs DNS Locaux » répondent aux requêtes des utilisateurs dans cette configuration structurée.

Lorsqu’un utilisateur entre un nom de domaine dans un navigateur web, le serveur DNS local recherche l’adresse IP correspondante. Si le serveur DNS local n’a pas l’information, la requête est transmise aux serveurs DNS de niveau supérieur jusqu’à ce que l’information nécessaire soit récupérée. Ce processus se termine généralement en millisecondes, permettant à l’utilisateur d’accéder à la page web.

Le système DNS est indispensable à l’infrastructure d’Internet, et son fonctionnement efficace a un impact significatif sur la performance et l’accessibilité du web. Par conséquent, configurer et gérer correctement les serveurs DNS sur les systèmes Linux est une compétence cruciale pour les administrateurs système.

Comment vérifier les serveurs DNS : Utilisation d’outils en ligne de commande

Il existe plusieurs façons de vérifier les paramètres du serveur DNS sur les systèmes Linux, mais la méthode la plus directe et courante est l’utilisation d’outils en ligne de commande. Ici, nous présentons deux outils largement utilisés : la commande cat et la commande nmcli.

Vérification de /etc/resolv.conf avec la commande `cat`

La méthode la plus basique consiste à afficher le fichier /etc/resolv.conf. Ce fichier contient les adresses des serveurs DNS utilisés par le système pour la résolution DNS. Vous pouvez vérifier son contenu en exécutant la commande suivante :

cat /etc/resolv.conf

Le résultat pourrait ressembler à ceci :

# Généré par NetworkManager
search example.com
nameserver 192.168.1.1
nameserver 8.8.8.8

Dans cet exemple, les lignes avec nameserver indiquent les adresses IP des serveurs DNS, avec 192.168.1.1 et l’adresse DNS publique de Google 8.8.8.8 étant définies.

Vérification des serveurs DNS avec la commande `nmcli`

Sur les systèmes utilisant NetworkManager, vous pouvez utiliser la commande nmcli pour vérifier les paramètres DNS de la connexion réseau actuelle. La commande suivante récupère les informations sur le serveur DNS :

nmcli device show | grep IP4.DNS

Cette commande extrait et affiche les paramètres du serveur DNS (IPv4) à partir des informations sur le périphérique réseau actuel. Le résultat peut ressembler à ceci :

IP4.DNS[1]:                             192.168.1.1
IP4.DNS[2]:                             8.8.8.8

Ces méthodes vous permettent de vérifier facilement les informations sur le serveur DNS définies sur votre système Linux, ce qui peut être utile pour diagnostiquer des problèmes de connexion réseau ou envisager des changements vers un serveur DNS spécifique.

Comment configurer les serveurs DNS : Édition de /etc/resolv.conf

Une des méthodes de base pour configurer les serveurs DNS sur un système Linux consiste à éditer directement le fichier /etc/resolv.conf. Ce fichier maintient une liste des serveurs DNS que le système consulte pour la résolution DNS. Ici, nous expliquons comment éditer ce fichier en toute sécurité.

Édition du fichier /etc/resolv.conf

  1. Tout d’abord, sauvegardez les paramètres actuels. Il est important de pouvoir restaurer le fichier original en cas de problème. Utilisez la commande suivante pour créer une sauvegarde :
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
  1. Ensuite, utilisez un éditeur de texte pour éditer le fichier /etc/resolv.conf. Ici, nous utilisons l’éditeur nano, mais vous pouvez utiliser votre éditeur préféré comme vi ou emacs :
sudo nano /etc/resolv.conf
  1. Une fois le fichier ouvert, ajoutez ou éditez les lignes commençant par nameserver pour spécifier les adresses des serveurs DNS. Par exemple, pour utiliser les adresses DNS publiques de Google, vous écririez :
nameserver 8.8.8.8
nameserver 8.8.4.4
  1. Après avoir effectué les modifications, enregistrez le fichier et quittez l’éditeur. Si vous utilisez nano, appuyez sur Ctrl + O pour enregistrer et Ctrl + X pour quitter.

Activation des nouveaux paramètres

Après avoir édité le fichier /etc/resolv.conf, vous devez généralement redémarrer le service réseau pour appliquer les changements. Cela peut être fait avec la commande suivante :

sudo systemctl restart network.service

Ou, si vous utilisez NetworkManager, vous pouvez redémarrer la connexion réseau avec cette commande :

sudo systemctl restart NetworkManager

Cela applique les nouveaux paramètres DNS à votre système. Pour vous assurer que les paramètres fonctionnent correctement, il est recommandé de tester en accédant à des sites web ou en utilisant des commandes comme ping pour résoudre des noms de domaine.

La configuration manuelle des serveurs DNS est efficace pour ajuster les stratégies de résolution DNS selon les exigences du système ou du réseau. Cependant, cette méthode peut ne pas être adaptée pour des solutions à long terme, car le fichier /etc/resolv.conf pourrait être automatiquement réécrit par d’autres processus. Par conséquent, envisagez d’utiliser des outils comme resolvconf, systemd-resolved ou NetworkManager pour gérer les paramètres DNS.

Vérification et modification des paramètres DNS avec des outils en ligne de commande

Linux offre plusieurs méthodes pour vérifier et modifier les paramètres DNS à l’aide de la ligne de commande, sans s’appuyer sur des outils graphiques. Ces méthodes sont particulièrement utiles pour les environnements de serveur ou la gestion de systèmes à distance. Ici, nous expliquons des méthodes utilisant les commandes systemd-resolve et nmcli.

Vérification des paramètres DNS avec la commande `systemd-resolve`

Sur les systèmes utilisant systemd, la commande systemd-resolve peut être utilisée pour vérifier les paramètres DNS actuels. Cette commande est liée au service systemd-resolved et fournit la configuration et les statistiques de résolution de noms.

Pour vérifier les paramètres DNS, exécutez la commande suivante :

systemd-resolve --status

Cette commande fournit une sortie détaillée incluant les serveurs DNS utilisés, les domaines de recherche et d’autres informations liées au réseau. La sortie est divisée par interface réseau, chaque section affichant les paramètres pour cette interface.

Modification des paramètres DNS avec la commande `nmcli`

Sur les systèmes utilisant NetworkManager, la commande nmcli peut être utilisée pour modifier les paramètres DNS. nmcli est un outil en ligne de commande pour configurer et gérer les connexions réseau.

Par exemple, pour définir les serveurs DNS pour une connexion spécifique, utilisez la commande suivante :

nmcli connection modify <nom de la connexion> ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify <nom de la connexion> ipv4.ignore-auto-dns yes
nmcli connection up <nom de la connexion>

Dans cette commande, les serveurs DNS de Google (8.8.8.8 et 8.8.4.4) sont définis pour la connexion nommée <nom de la connexion>. L’option ipv4.ignore-auto-dns yes est utilisée pour ignorer les paramètres DNS obtenus automatiquement et utiliser les DNS spécifiés manuellement. Enfin, la commande nmcli connection up est utilisée pour redémarrer la connexion et appliquer les nouveaux paramètres.

Ces outils en ligne de commande permettent une vérification et une modification flexibles des paramètres DNS sur les systèmes Linux. Ils sont particulièrement utiles pour l’administration de systèmes à distance et l’automatisation via des scripts.

Paramètres DNS avec systemd-resolved

systemd-resolved est un résolveur DNS moderne intégré au gestionnaire de système et de services systemd. Il offre diverses fonctionnalités telles que la mise en cache DNS, la validation DNSSEC et le routage des enregistrements, rationalisant le processus de résolution DNS. Ici, nous expliquons comment gérer les paramètres DNS en utilisant systemd-resolved.

Aperçu de systemd-resolved

systemd-resolved gère les demandes de résolution DNS provenant des applications locales, en mettant en cache les réponses des serveurs DNS externes pour améliorer la vitesse et la fiabilité de la résolution de noms. Il gère également le fichier /etc/resolv.conf, fournissant une stratégie de résolution DNS à l’échelle du système.

Activation et configuration de systemd-resolved

La plupart des distributions Linux modernes ont systemd-resolved activé par défaut. Cependant, s’il n’est pas activé, vous pouvez démarrer et activer le service avec la commande suivante :

sudo systemctl enable --now systemd-resolved.service

Une fois activé, vous pouvez éditer le fichier /etc/systemd/resolved.conf pour définir des adresses de serveurs DNS personnalisées. Il est recommandé de sauvegarder le fichier avant de l’éditer.

sudo nano /etc/systemd/resolved.conf

Par exemple, pour utiliser les serveurs DNS publics de Google, vous définiriez ce qui suit :

[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1 9.9.9.9

L’option DNS spécifie les adresses IP des serveurs DNS principaux à utiliser, séparées par des espaces. FallbackDNS liste les serveurs DNS à utiliser si les serveurs principaux ne sont pas disponibles.

Après avoir modifié les paramètres, redémarrez le service systemd-resolved pour appliquer les changements :

sudo systemctl restart systemd-resolved

La relation entre systemd-resolved et /etc/resolv.conf

Sur les systèmes utilisant systemd-resolved, il est recommandé de lier le fichier /etc/resolv.conf à /run/systemd/resolve/stub-resolv.conf. Cela permet d’utiliser la mise en cache DNS locale et les fonctionnalités de transfert fournies par systemd-resolved. Pour configurer le lien symbolique, utilisez la commande suivante :

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Cela permet à systemd-resolved de gérer le processus de résolution DNS du système, fournissant une connexion Internet plus rapide et plus sécurisée.

Gestion du DNS avec Network Manager

Dans les systèmes Linux, Network Manager (NetworkManager) est l’outil le plus couramment utilisé pour la configuration et la gestion du réseau. Il facilite la gestion de diverses interfaces réseau, y compris les réseaux sans fil, les réseaux câblés, la large bande mobile et les connexions VPN. Les paramètres DNS peuvent également être gérés via cet outil. Ici, nous discutons de la manière de configurer le DNS en utilisant Network Manager.

Modification des paramètres DNS avec Network Manager

Avec Network Manager, vous pouvez modifier les paramètres DNS en utilisant soit l’interface graphique utilisateur (GUI) soit l’interface en ligne de commande (CLI). Pour la CLI, la commande nmcli est très utile.

Pour modifier les paramètres DNS pour une connexion réseau spécifique, identifiez d’abord le nom de la connexion. Vous pouvez lister toutes les connexions réseau disponibles avec la commande suivante :

nmcli connection show

Ensuite, utilisez le nom de la connexion pour définir les serveurs DNS. La commande suivante définit les adresses des serveurs DNS pour la connexion nommée « nom de la connexion » :

nmcli connection modify "nom de la connexion" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify "nom de la connexion" ipv4.ignore-auto-dns yes
nmcli connection up "nom de la connexion"

Cette commande définit les serveurs DNS de Google (8.8.8.8 et 8.8.4.4) pour une connexion spécifique, en ignorant les paramètres DNS obtenus automatiquement. Enfin, la connexion est redémarrée à l’aide de nmcli connection up pour appliquer les paramètres.

Modification des paramètres DNS globaux

Vous pouvez également utiliser Network Manager pour modifier les paramètres DNS de tout le système. Pour ce faire, éditez le fichier /etc/NetworkManager/NetworkManager.conf et ajoutez l’option dns sous la section [main] :

[main]
dns=dnsmasq

Ce paramètre permet à Network Manager d’utiliser dnsmasq pour traiter les requêtes DNS. dnsmasq est un cache DNS et un serveur DHCP léger qui fournit une résolution de requêtes DNS locales et une mise en cache, améliorant la vitesse de résolution DNS.

Après avoir modifié les paramètres, vous devez redémarrer Network Manager :

sudo systemctl restart NetworkManager

Gérer le DNS via Network Manager améliore considérablement la flexibilité et la commodité de la configuration réseau. Cela permet aux utilisateurs de personnaliser facilement les paramètres DNS, optimisant ainsi la performance et la sécurité du réseau.

Dépannage : Problèmes courants et leurs solutions

Les problèmes liés au DNS peuvent se manifester sous différentes formes, telles que des problèmes de connexion Internet, des difficultés à accéder aux sites web et des retards. Ici, nous discutons des problèmes courants liés au DNS que vous pourriez rencontrer sur Linux et des approches pour les résoudre.

Résolution DNS lente

Si la résolution DNS est lente, le serveur DNS que vous utilisez pourrait être la cause du retard. Changer pour un autre serveur DNS pourrait résoudre le problème. Par exemple, Google Public DNS (8.8.8.8 et 8.8.4.4) et Cloudflare DNS (1.1.1.1) sont des options rapides et fiables.

Échec de la résolution DNS

Si la résolution DNS échoue, vérifiez d’abord si votre système pointe vers les bons serveurs DNS. Vous pouvez vérifier cela à l’aide du fichier /etc/resolv.conf ou de la commande systemd-resolve --status. Si les bons serveurs DNS sont définis et que le problème persiste, vider le cache DNS peut aider. Si vous utilisez systemd-resolved, vous pouvez vider le cache avec la commande suivante :

sudo systemd-resolve --flush-caches

Incapacité à accéder à certains sites web

Si vous avez des difficultés à accéder à certains sites web, il pourrait y avoir des problèmes avec les enregistrements DNS de ces sites, ou votre cache DNS local pourrait contenir des informations obsolètes. Vider le cache DNS pourrait résoudre le problème. Vérifiez également si le fichier /etc/hosts n’a pas d’entrées ajoutées manuellement pour ces sites web.

Serveur DNS ne répondant pas

Si le serveur DNS que vous utilisez ne répond pas, vérifiez d’abord si le serveur DNS est en panne ou s’il y a des problèmes avec votre connexion réseau. Vous pouvez tester si vous pouvez atteindre le serveur DNS à l’aide de la commande ping. Si le serveur DNS ne répond pas, envisagez de passer à un autre serveur DNS.

En essayant ces étapes de dépannage générales, vous devriez être en mesure de résoudre de nombreux problèmes liés au DNS. Cependant, si le problème persiste, une enquête plus approfondie sur les paramètres ou la configuration du réseau peut être nécessaire. Dans certains cas, contacter votre fournisseur de services Internet (ISP) ou l’administrateur réseau pourrait être la démarche appropriée.

Considérations de sécurité : Points à garder à l’esprit lors de la configuration du DNS

Lors de la configuration des paramètres DNS, il est important de prendre en compte les implications en matière de sécurité. Des paramètres DNS inappropriés peuvent augmenter la vulnérabilité aux cyberattaques. Ici, nous introduisons quelques considérations de sécurité clés à garder à l’esprit lors de la configuration du DNS.

Fiabilité et sécurité des serveurs DNS

Le serveur DNS que vous choisissez doit être fiable et disposer de mesures de sécurité. Si vous utilisez un service DNS public, vérifiez les fonctionnalités de sécurité fournies par le prestataire de services, telles que le support de DNSSEC et le blocage des sites malveillants.

Atténuation du poisonnement du cache DNS

Le poisonnement du cache DNS est une attaque où un attaquant injecte de fausses informations DNS dans le cache, dirigeant les utilisateurs vers des sites malveillants, tels que des sites de phishing. Utiliser des serveurs DNS qui supportent DNSSEC (Extensions de sécurité DNS) peut protéger contre de telles attaques.

Sécurisation de la configuration du serveur DNS local

Si vous gérez votre propre serveur DNS, maintenez les mises à jour logicielles à jour, désactivez les services inutiles et assurez-vous d’une configuration sécurisée. De plus, configurer correctement le pare-feu est crucial pour prévenir l’accès non autorisé de l’extérieur.

Protection de la vie privée

Les requêtes DNS peuvent révéler l’historique de l’utilisation d’Internet des utilisateurs. Pour protéger la vie privée, envisagez d’utiliser des serveurs DNS qui prennent en charge des requêtes DNS cryptées, telles que DNS sur HTTPS (DoH) ou DNS sur TLS (DoT).

Conclusion

Comprendre comment vérifier et configurer les serveurs DNS sur Linux et les gérer de manière appropriée est crucial pour maintenir l’efficacité et la sécurité du réseau. Cet article a couvert les bases du DNS, comment vérifier et configurer les serveurs DNS, la gestion du DNS avec systemd-resolved et Network Manager, le dépannage et les considérations de sécurité. Appliquer ces connaissances permettra une configuration DNS plus efficace et sécurisée sur les systèmes Linux.

Sommaire