Android

Commande Dig dans Linux (recherche DNS)

Intro Machine Linux - Episode 11 - DNS Création d'une zone maître simple

Intro Machine Linux - Episode 11 - DNS Création d'une zone maître simple

Table des matières:

Anonim

Dig (Domain Information Groper) est un puissant outil de ligne de commande pour interroger les serveurs de noms DNS.

Avec la commande dig , vous pouvez interroger des informations sur divers enregistrements DNS, y compris les adresses d'hôte, les échanges de messagerie et les serveurs de noms. Il s'agit de l'outil le plus couramment utilisé par les administrateurs système pour résoudre les problèmes DNS en raison de sa flexibilité et de sa facilité d'utilisation.

Dans ce tutoriel, nous allons vous montrer comment utiliser l'utilitaire de dig travers des exemples pratiques et des explications détaillées des options de dig les plus courantes.

Installation de dig

Pour vérifier si la commande dig est disponible sur votre système, tapez:

dig -v

La sortie devrait ressembler à ceci:

DiG 9.11.3-1ubuntu1.1-Ubuntu

Si dig n'est pas présent sur votre système, la commande ci-dessus affichera «creuser: commande introuvable». Vous pouvez facilement installer l'outil de dig à l'aide du gestionnaire de paquets de votre distribution.

Installer dig sur Ubuntu et Debian

sudo apt update && sudo apt install dnsutils

Installer dig sur CentOS et Fedora

sudo yum install bind-utils

Installer dig sur Arch Linux

sudo pacman -S bind-tools

Comprendre la sortie Dig

Dans sa forme la plus simple, lorsqu'elle est utilisée pour interroger un seul hôte (domaine) sans aucun argument supplémentaire, la commande dig est assez verbeuse.

Dans l'exemple suivant, nous allons effectuer une requête pour récupérer des informations sur le domaine linux.org .

dig linux.org

La sortie devrait ressembler à ceci:

Allons section par section et expliquons la sortie de la commande dig :

  1. La première ligne de la sortie imprime la version dig installée et la requête qui a été invoquée. La deuxième ligne affiche les options globales (par défaut, uniquement cmd).

    ; <<>> DiG 9.13.3 <<>> linux.org;; global options: +cmd

    La première section comprend des détails techniques sur la réponse reçue de l'autorité requise (serveur DNS). L'en-tête montre l'opcode (l'action effectuée par dig) et le statut de l'action. Dans cet exemple, le statut est NOERROR , ce qui signifie que l'autorité requise a servi la requête sans aucun problème.

    ;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5

    Cette section peut être supprimée à l'aide de l'option +nocomments , qui désactive également les en-têtes d'autres sections.

    La pseudo-section «OPT» est affichée par défaut uniquement dans les versions les plus récentes de l'utilitaire dig. Vous pouvez en savoir plus sur les mécanismes d'extension pour DNS (EDNS) ici.

    ;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096

    Dans la section «QUESTION», dig montre notre requête (question). Par défaut, dig demande l'enregistrement A.

    ;; QUESTION SECTION:;linux.org. IN A

    Vous pouvez désactiver cette section à l'aide de l'option +noquestion .

    La rubrique «RÉPONSE» nous apporte une réponse à notre question. Comme nous l'avons déjà mentionné, par défaut, dig demandera l'enregistrement A. Ici, le domaine linux.org pointe vers l'adresse IP 104.18.59.123 .

    ;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123

    En règle générale, vous ne souhaitez pas désactiver la réponse, mais vous pouvez supprimer cette section de la sortie à l'aide de l'option +noanswer .

    La section «AUTORITÉ» nous indique quel (s) serveur (s) sont l'autorité pour répondre aux requêtes DNS sur le domaine interrogé.

    ;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.

    Vous pouvez désactiver cette section de la sortie à l'aide de l'option +noauthority .

    La section «SUPPLÉMENTAIRE» nous donne des informations sur les adresses IP des serveurs DNS faisant autorité indiqués dans la section des autorités.

    ;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 84354 IN A 173.245.58.185 lia.ns.cloudflare.com. 170762 IN AAAA 2400:cb00:2049:1::adf5:3ab9 mark.ns.cloudflare.com. 170734 IN A 173.245.59.130 mark.ns.cloudflare.com. 170734 IN AAAA 2400:cb00:2049:1::adf5:3b82

    L'option +noadditional désactive la section supplémentaire d'une réponse.

    La dernière section de la sortie de fouille comprend des statistiques sur la requête.

    ;; Query time: 58 msec;; SERVER: 192.168.1.1#53(192.168.1.1);; WHEN: Fri Oct 12 11:46:46 CEST 2018;; MSG SIZE rcvd: 212

    Vous pouvez désactiver cette partie avec l'option +nostats .

Impression de la réponse uniquement

Dans la plupart des cas, vous ne souhaitez obtenir qu'une réponse rapide à votre requête de fouille.

1. Obtenez une réponse courte

Pour obtenir une réponse courte à votre requête, utilisez l'option +short :

dig linux.org +short

104.18.59.123 104.18.58.123

La sortie inclura uniquement les adresses IP de l'enregistrement A.

2. Obtenez une réponse détaillée

Pour une réponse plus détaillée, désactivez tous les résultats à l'aide des options +noall , puis activez uniquement la section des réponses avec l'option +answer .

dig linux.org +noall +answer

; <<>> DiG 9.13.3 <<>> linux.org +noall +answer;; global options: +cmd linux.org. 67 IN A 104.18.58.123 linux.org. 67 IN A 104.18.59.123

Serveur de noms spécifique aux requêtes

Par défaut, si aucun serveur de noms n'est spécifié, dig utilise les serveurs répertoriés dans le fichier /etc/resolv.conf .

Pour spécifier un serveur de noms par rapport auquel la requête sera exécutée, utilisez le symbole @ (at) suivi de l'adresse IP ou du nom d'hôte du serveur de noms.

Par exemple, pour interroger le serveur de noms Google (8.8.8.8) pour obtenir des informations sur le domaine linux.org vous utiliseriez:

dig linux.org @8.8.8.8

; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;linux.org. IN A;; ANSWER SECTION: linux.org. 299 IN A 104.18.58.123 linux.org. 299 IN A 104.18.59.123;; Query time: 54 msec;; SERVER: 8.8.8.8#53(8.8.8.8);; WHEN: Fri Oct 12 14:28:01 CEST 2018;; MSG SIZE rcvd: 70

Interroger un type d'enregistrement

Dig vous permet d'effectuer n'importe quelle requête DNS valide en ajoutant le type d'enregistrement à la fin de la requête. Dans la section suivante, nous vous montrerons des exemples de recherche des enregistrements les plus courants, tels que A (l'adresse IP), CNAME (nom canonique), TXT (enregistrement texte), MX (échangeur de messagerie) et NS (serveurs de noms).

1. Interrogation des enregistrements A

Pour obtenir une liste de toutes les adresses d'un nom de domaine, utilisez l'option a:

dig +nocmd google.com a +noall +answer

google.com. 128 IN A 216.58.206.206

Comme vous le savez déjà, si aucun type d'enregistrement DNS n'est spécifié, dig demandera l'enregistrement A. Vous pouvez également interroger l'enregistrement A sans spécifier l'option a.

2. Interrogation des enregistrements CNAME

Pour trouver le nom de domaine d'alias, utilisez l'option cname :

dig +nocmd mail.google.com cname +noall +answer

mail.google.com. 553482 IN CNAME googlemail.l.google.com.

3. Interrogation des enregistrements TXT

Utilisez l'option txt pour récupérer tous les enregistrements TXT pour un domaine spécifique:

dig +nocmd google.com txt +noall +answer

google.com. 300 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"

4. Interrogation des enregistrements MX

Pour obtenir une liste de tous les serveurs de messagerie pour un domaine spécifique, utilisez l'option mx :

dig +nocmd google.com mx +noall +answer

google.com. 494 IN MX 30 alt2.aspmx.l.google.com. google.com. 494 IN MX 10 aspmx.l.google.com. google.com. 494 IN MX 40 alt3.aspmx.l.google.com. google.com. 494 IN MX 50 alt4.aspmx.l.google.com. google.com. 494 IN MX 20 alt1.aspmx.l.google.com.

5. Interrogation des enregistrements NS

Pour trouver les serveurs de noms faisant autorité pour notre domaine spécifique, utilisez l'option ns :

dig +nocmd google.com ns +noall +answer

google.com. 84527 IN NS ns1.google.com. google.com. 84527 IN NS ns2.google.com. google.com. 84527 IN NS ns4.google.com. google.com. 84527 IN NS ns3.google.com.

6. Interroger tous les enregistrements

Utilisez l'option any pour obtenir une liste de tous les enregistrements DNS pour un domaine spécifique:

dig +nocmd google.com any +noall +answer

google.com. 299 IN A 216.58.212.14 google.com. 299 IN AAAA 2a00:1450:4017:804::200e google.com. 21599 IN NS ns2.google.com. google.com. 21599 IN NS ns1.google.com. google.com. 599 IN MX 30 alt2.aspmx.l.google.com. google.com. 21599 IN NS ns4.google.com. google.com. 599 IN MX 50 alt4.aspmx.l.google.com. google.com. 599 IN MX 20 alt1.aspmx.l.google.com. google.com. 299 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e" google.com. 21599 IN CAA 0 issue "pki.goog" google.com. 599 IN MX 40 alt3.aspmx.l.google.com. google.com. 3599 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 21599 IN NS ns3.google.com. google.com. 599 IN MX 10 aspmx.l.google.com. google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60

Recherche DNS inversée

Pour interroger le nom d'hôte associé à une adresse IP spécifique, utilisez l'option -x .

Par exemple, pour effectuer une recherche inversée sur 208.118.235.148 vous utiliseriez:

dig -x 208.118.235.148 +noall +answer

Comme vous pouvez le voir sur la sortie ci-dessous, l'adresse IP 208.118.235.148 est associée au nom d'hôte wildebeest.gnu.org .

; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer;; global options: +cmd 148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.

Requêtes en masse

Dans l'exemple suivant, nous interrogeons les domaines répertoriés dans le fichier domains.txt .

domaines.txt

lxer.com linuxtoday.com tuxmachines.org

dig -f domains.txt +short

108.166.170.171 70.42.23.121 204.68.122.43

Le fichier.digrc

Le comportement de la commande dig peut être contrôlé en configurant des options par utilisateur dans le fichier ${HOME}/.digrc .

Si le fichier .digrc est présent dans le répertoire personnel de l'utilisateur, les options qui y sont spécifiées sont appliquées avant les arguments de la ligne de commande.

Par exemple, si vous souhaitez afficher uniquement la section des réponses, ouvrez votre éditeur de texte et créez le fichier ~/.digrc :

~ /.digrc

+nocmd +noall +answer

Conclusion

dig est un outil en ligne de commande pour interroger les informations DNS et résoudre les problèmes liés à DNS.

borne de creusement