Android

Dig εντολή στο linux (DNS Lookup)

Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks

Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks

Πίνακας περιεχομένων:

Anonim

Το Dig (Domain Information Groper) είναι ένα ισχυρό εργαλείο γραμμής εντολών για την αναζήτηση διακομιστών ονομάτων DNS.

Με την εντολή dig , μπορείτε να ζητήσετε πληροφορίες σχετικά με διάφορες εγγραφές DNS, συμπεριλαμβανομένων διευθύνσεων κεντρικού υπολογιστή, ανταλλαγής αλληλογραφίας και διακομιστών ονομάτων. Είναι το πιο συνηθισμένο εργαλείο μεταξύ των διαχειριστών συστημάτων για την αντιμετώπιση προβλημάτων DNS λόγω της ευελιξίας και της ευκολίας χρήσης.

Σε αυτό το σεμινάριο, θα σας δείξουμε πώς να χρησιμοποιήσετε το βοηθητικό πρόγραμμα dig μέσω πρακτικών παραδειγμάτων και λεπτομερείς εξηγήσεις των πιο κοινών επιλογών dig .

Εγκατάσταση dig

Για να ελέγξετε εάν η εντολή dig είναι διαθέσιμη στον τύπο του συστήματός σας:

dig -v

Η έξοδος θα πρέπει να φαίνεται κάπως έτσι:

DiG 9.11.3-1ubuntu1.1-Ubuntu

Εάν η λειτουργία dig δεν υπάρχει στο σύστημά σας, η παραπάνω εντολή θα εκτυπώσει "dig: η εντολή δεν βρέθηκε". Μπορείτε εύκολα να εγκαταστήσετε το εργαλείο dig χρησιμοποιώντας το διαχειριστή πακέτων της διανομής σας.

Εγκαταστήστε dig στο Ubuntu και στο Debian

sudo apt update && sudo apt install dnsutils

Εγκαταστήστε το dig σε CentOS και Fedora

sudo yum install bind-utils

Εγκαταστήστε dig στο Arch Linux

sudo pacman -S bind-tools

Κατανοώντας την έξοδο Dig

Στην απλούστερη μορφή του, όταν χρησιμοποιείται για την ερώτηση ενός μόνο κεντρικού υπολογιστή (domain) χωρίς πρόσθετα επιχειρήματα, η εντολή dig είναι αρκετά λεπτομερής.

Στο παρακάτω παράδειγμα, θα εκτελέσουμε ένα ερώτημα για την ανάκτηση πληροφοριών σχετικά με τον τομέα linux.org .

dig linux.org

Η έξοδος θα πρέπει να φαίνεται κάπως έτσι:

Ας πάμε σε ενότητα ανά τμήμα και εξηγούμε την έξοδο της εντολής dig :

  1. Η πρώτη γραμμή της εξόδου εκτυπώνει την εγκατεστημένη έκδοση dig και το ερώτημα που κλήθηκε. Η δεύτερη γραμμή εμφανίζει τις συνολικές επιλογές (από προεπιλογή, μόνο cmd).

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

    Η πρώτη ενότητα περιλαμβάνει τεχνικές λεπτομέρειες σχετικά με την απάντηση που έλαβε από την αρχή στην οποία υποβάλλεται η αίτηση (διακομιστής DNS). Στην κεφαλίδα εμφανίζεται ο κωδικός πρόσβασης (η ενέργεια που εκτελείται από το σκάψιμο) και η κατάσταση της ενέργειας. Σε αυτό το παράδειγμα, η κατάσταση είναι NOERROR , πράγμα που σημαίνει ότι η αιτούμενη αρχή εξυπηρέτησε το ερώτημα χωρίς κανένα πρόβλημα.

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

    Αυτή η ενότητα μπορεί να αφαιρεθεί χρησιμοποιώντας την επιλογή +nocomments , η οποία επίσης απενεργοποιεί τις κεφαλίδες άλλων τομέων.

    Το pseudo τμήμα "OPT" εμφανίζεται από προεπιλογή μόνο στις νεότερες εκδόσεις του βοηθητικού προγράμματος dig. Μπορείτε για τους μηχανισμούς επέκτασης για DNS (EDNS) εδώ.

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

    Στην ενότητα "ΕΡΩΤΗΣΕΙΣ", το dig απεικονίζει το ερώτημά μας (ερώτηση). Από προεπιλογή, το dig απαιτεί την εγγραφή Α.

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

    Μπορείτε να απενεργοποιήσετε αυτήν την ενότητα χρησιμοποιώντας την επιλογή +noquestion .

    Η ενότητα "ΑΠΑΝΤΗΣΗ" μας δίνει μια απάντηση στην ερώτησή μας. Όπως έχουμε ήδη αναφέρει, από προεπιλογή dig το αρχείο Α. Εδώ, ο τομέας linux.org υποδεικνύει τη διεύθυνση 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

    Συνήθως, δεν θέλετε να απενεργοποιήσετε την απάντηση, αλλά μπορείτε να καταργήσετε αυτήν την ενότητα από την έξοδο χρησιμοποιώντας την επιλογή +noanswer .

    Η ενότητα "AUTHORITY" μας εξηγεί ποιοι διακομιστές είναι οι εξουσιοδοτημένοι για την απάντηση σε ερωτήματα DNS σχετικά με τον τομέα αναζήτησης.

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

    Μπορείτε να απενεργοποιήσετε αυτήν την ενότητα της εξόδου χρησιμοποιώντας την επιλογή +noauthority .

    Η ενότητα "ΠΡΟΣΘΕΤΟ" μας παρέχει πληροφορίες σχετικά με τις διευθύνσεις IP των αξιόπιστων διακομιστών DNS που εμφανίζονται στην ενότητα αρχών.

    ;; 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

    Η επιλογή +noadditional απενεργοποιεί την πρόσθετη ενότητα μιας απάντησης.

    Η τελευταία ενότητα της εξόδου dig περιλαμβάνει στατιστικά στοιχεία σχετικά με το ερώτημα.

    ;; 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

    Μπορείτε να απενεργοποιήσετε αυτό το μέρος με την επιλογή +nostats .

Εκτύπωση μόνο της απάντησης

Στις περισσότερες περιπτώσεις, θα θέλατε να πάρετε μόνο μια γρήγορη απάντηση στο ερώτημα dig σας.

1. Πάρτε μια σύντομη απάντηση

Για να λάβετε σύντομη απάντηση στο ερώτημά σας, χρησιμοποιήστε την επιλογή +short :

dig linux.org +short

104.18.59.123 104.18.58.123

Η έξοδος θα περιλαμβάνει μόνο τις διευθύνσεις IP της εγγραφής Α.

2. Πάρτε μια λεπτομερή απάντηση

Για πιο λεπτομερή απάντηση, απενεργοποιήστε όλα τα αποτελέσματα χρησιμοποιώντας τις επιλογές +noall και στη συνέχεια ενεργοποιήστε μόνο την ενότητα απαντήσεων με την επιλογή +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

Διακομιστή συγκεκριμένου ονόματος ερωτήματος

Από προεπιλογή, εάν δεν έχει οριστεί διακομιστής ονομάτων, η dig χρησιμοποιεί τους διακομιστές που περιλαμβάνονται στο αρχείο /etc/resolv.conf .

Για να καθορίσετε έναν διακομιστή ονομάτων κατά τον οποίο θα εκτελεστεί το ερώτημα, χρησιμοποιήστε το σύμβολο @ (at) που ακολουθείται από τη διεύθυνση IP του διακομιστή ονομάτων ή το όνομα του κεντρικού υπολογιστή.

Για παράδειγμα, για να linux.org διακομιστή ονομάτων Google (8.8.8.8) για πληροφορίες σχετικά με τον τομέα linux.org , θα χρησιμοποιούσατε:

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

Αναζητήστε έναν τύπο εγγραφής

Το Dig σας επιτρέπει να εκτελέσετε οποιοδήποτε έγκυρο ερώτημα DNS προσθέτοντας τον τύπο εγγραφής στο τέλος του ερωτήματος. Στην ακόλουθη ενότητα θα σας δείξουμε παραδείγματα για τον τρόπο αναζήτησης των πιο συνηθισμένων εγγραφών, όπως το Α (η διεύθυνση IP), το CNAME (κανονικό όνομα), το TXT (εγγραφή κειμένου), ο MX (ανταλλακτής αλληλογραφίας) και το NS όνομα διακομιστές).

1. Αναζητώντας ένα αρχείο

Για να λάβετε μια λίστα με όλες τις διευθύνσεις για ένα όνομα τομέα, χρησιμοποιήστε την επιλογή a :

dig +nocmd google.com a +noall +answer

google.com. 128 IN A 216.58.206.206

Όπως γνωρίζετε ήδη, εάν δεν έχει καθοριστεί τύπος εγγραφής DNS, dig θα ζητήσει την εγγραφή Α. Μπορείτε επίσης να αναζητήσετε την εγγραφή Α χωρίς να καθορίσετε την επιλογή.

2. Ερώτηση για εγγραφές CNAME

Για να βρείτε το όνομα τομέα cname χρησιμοποιήστε την επιλογή cname :

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

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

3. Ερώτημα των εγγραφών TXT

Χρησιμοποιήστε την επιλογή txt για να ανακτήσετε όλες τις εγγραφές TXT για ένα συγκεκριμένο τομέα:

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. Ερώτημα των εγγραφών MX

Για να λάβετε μια λίστα με όλους τους διακομιστές αλληλογραφίας για έναν συγκεκριμένο τομέα, χρησιμοποιήστε την επιλογή 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. Ερώτηση αρχείων NS

Για να βρείτε τους έγκυρους διακομιστές ονομάτων για τον συγκεκριμένο τομέα, χρησιμοποιήστε την επιλογή 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. Ερώτημα όλων των εγγραφών

Χρησιμοποιήστε την any επιλογή για να πάρετε μια λίστα με όλες τις εγγραφές DNS για ένα συγκεκριμένο τομέα:

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

Αντίστροφη αναζήτηση DNS

Για να ερωτήσετε το όνομα κεντρικού υπολογιστή που συσχετίζεται με μια συγκεκριμένη διεύθυνση IP, χρησιμοποιήστε την επιλογή -x .

Για παράδειγμα, για να εκτελέσετε αντίστροφη αναζήτηση στο 208.118.235.148 θα χρησιμοποιούσατε:

dig -x 208.118.235.148 +noall +answer

Όπως μπορείτε να δείτε από την έξοδο κάτω από τη διεύθυνση IP 208.118.235.148 σχετίζεται με το όνομα του κεντρικού υπολογιστή 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.

Μαζικά ερωτήματα

Στο ακόλουθο παράδειγμα, διερευνάμε τους τομείς που αναφέρονται στο αρχείο domains.txt .

domains.txt

lxer.com linuxtoday.com tuxmachines.org

dig -f domains.txt +short

108.166.170.171 70.42.23.121 204.68.122.43

Το αρχείο.digrc

Η συμπεριφορά της εντολής dig μπορεί να ελεγχθεί με τη ρύθμιση των επιλογών ανά χρήστη στο αρχείο ${HOME}/.digrc .

Εάν το αρχείο .digrc υπάρχει στον οικείο κατάλογο του χρήστη, οι επιλογές που καθορίζονται σε αυτόν εφαρμόζονται πριν από τα επιχειρήματα της γραμμής εντολών.

Για παράδειγμα, αν θέλετε να εμφανίσετε μόνο την ενότητα απάντησης, ανοίξτε τον επεξεργαστή κειμένου και δημιουργήστε το ακόλουθο αρχείο ~/.digrc :

~ /.digrc

+nocmd +noall +answer

συμπέρασμα

dig είναι ένα εργαλείο γραμμής εντολών για την αναζήτηση πληροφοριών DNS και την αντιμετώπιση προβλημάτων που σχετίζονται με το DNS.

dig του τερματικού