Πώς να χρησιμοποιήσετε το tcpdump και 6 παραδείγματα

Πώς να χρησιμοποιήσετε το tcpdump και 6 παραδείγματα

Προσπαθείτε να καταγράψετε πακέτα δεδομένων για να αναλύσετε την επισκεψιμότητα στο δίκτυό σας; Maybeσως είστε διαχειριστής διακομιστή που έχει αντιμετωπίσει ένα πρόβλημα και θέλει να παρακολουθεί τα μεταδιδόμενα δεδομένα στο δίκτυο. Όποια και αν είναι η κατάσταση, το βοηθητικό πρόγραμμα tcpdump Linux είναι αυτό που χρειάζεστε.





Σε αυτό το άρθρο, θα συζητήσουμε λεπτομερώς την εντολή tcpdump, μαζί με ορισμένους οδηγούς για τον τρόπο εγκατάστασης και χρήσης του tcpdump στο σύστημα Linux σας.





Τι είναι η εντολή tcpdump;

Tcpdump είναι ένα ισχυρό εργαλείο παρακολούθησης δικτύου που επιτρέπει στον χρήστη να φιλτράρει αποτελεσματικά τα πακέτα και την κίνηση σε ένα δίκτυο. Μπορείτε να λάβετε λεπτομερείς πληροφορίες σχετικά με το TCP/IP και τα πακέτα που μεταδίδονται στο δίκτυό σας. Το Tcpdump είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών, που σημαίνει ότι μπορείτε να το εκτελέσετε σε διακομιστές Linux χωρίς οθόνη.





Οι διαχειριστές συστήματος μπορούν επίσης να ενσωματώσουν το βοηθητικό πρόγραμμα tcpdump με cron προκειμένου να αυτοματοποιήσετε διάφορες εργασίες όπως η καταγραφή. Δεδομένου ότι τα πολυάριθμα χαρακτηριστικά του το καθιστούν αρκετά ευέλικτο, το tcpdump λειτουργεί ως εργαλείο αντιμετώπισης προβλημάτων καθώς και ως εργαλείο ασφαλείας.

Πώς να εγκαταστήσετε το tcpdump στο Linux

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



Μπορείτε να ελέγξετε εάν το tcpdump είναι εγκατεστημένο στο σύστημά σας χρησιμοποιώντας το οι οποίες εντολή.

which tcpdump

Εάν η έξοδος εμφανίζει μια διαδρομή καταλόγου ( /usr/bin/tcpdump ), τότε το σύστημά σας έχει εγκατεστημένο το πακέτο. Ωστόσο, αν όχι, μπορείτε να το κάνετε εύκολα χρησιμοποιώντας τον προεπιλεγμένο διαχειριστή πακέτων στο σύστημά σας.





Για να εγκαταστήσετε το tcpdump σε διανομές που βασίζονται σε Debian, όπως το Ubuntu:

sudo apt-get install tcpdump

Η εγκατάσταση του tcpdump στο CentOS είναι επίσης εύκολη.





sudo yum install tcpdump

Στις διανομές με βάση το Arch:

sudo pacman -S tcpdump

Για εγκατάσταση στο Fedora:

sudo dnf install tcpdump

Σημειώστε ότι το πακέτο tcpdump απαιτεί libcap ως εξάρτηση, οπότε βεβαιωθείτε ότι το έχετε εγκαταστήσει και στο σύστημά σας.

Παραδείγματα Tcpdump για τη λήψη πακέτων δικτύου στο Linux

Τώρα που εγκαταστήσατε με επιτυχία το tcpdump στο μηχάνημά σας Linux, ήρθε η ώρα να παρακολουθήσετε ορισμένα πακέτα. Δεδομένου ότι το tcpdump απαιτεί δικαιώματα υπερχρήστη για την εκτέλεση των περισσότερων λειτουργιών, θα πρέπει να προσθέσετε sudo στις εντολές σας.

1. Λίστα όλων των διεπαφών δικτύου

Για να ελέγξετε ποιες διεπαφές δικτύου είναι διαθέσιμες για λήψη, χρησιμοποιήστε το -ΡΕ σημαία με την εντολή tcpdump.

tcpdump -D

Περνώντας το -λίστα-διεπαφές η σημαία ως όρισμα θα επιστρέψει την ίδια έξοδο.

tcpdump --list-interfaces

Η έξοδος θα είναι μια λίστα με όλες τις διεπαφές δικτύου που υπάρχουν στο σύστημά σας.

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

tcpdump --interface any

Το σύστημα θα εμφανίσει την ακόλουθη έξοδο.

δεν μπόρεσε να ολοκληρώσει το αίτημά σας λόγω σφάλματος προγράμματος

Σχετίζεται με: Τι είναι το μοντέλο διασύνδεσης ανοικτών συστημάτων;

2. Η μορφή εξόδου tcpdump

Ξεκινώντας από την τρίτη γραμμή, κάθε γραμμή της εξόδου υποδηλώνει ένα συγκεκριμένο πακέτο που καταγράφεται από το tcpdump. Δείτε πώς φαίνεται η έξοδος ενός πακέτου.

17:00:25.369138 wlp0s20f3 Out IP localsystem.40310 > kul01s10-in-f46.1e100.net.https: Flags [P.], seq 196:568, ack 1, win 309, options [nop,nop,TS val 117964079 ecr 816509256], length 33

Λάβετε υπόψη ότι δεν καταγράφονται όλα τα πακέτα με αυτόν τον τρόπο, αλλά αυτή είναι η γενική μορφή που ακολουθούν τα περισσότερα από αυτά.

Η έξοδος περιέχει τις ακόλουθες πληροφορίες.

  1. Χρονική σήμανση του παραληφθέντος πακέτου
  2. Όνομα διεπαφής
  3. Ροή πακέτων
  4. Όνομα του πρωτοκόλλου δικτύου
  5. Διεύθυνση IP και λεπτομέρειες θύρας
  6. Σημαίες TCP
  7. Ο αριθμός ακολουθίας των δεδομένων στο πακέτο
  8. Ack δεδομένα
  9. Μέγεθος παραθύρου
  10. Μήκος πακέτου

Το πρώτο πεδίο ( 17: 00: 25.369138 ) εμφανίζει τη χρονική σήμανση όταν το σύστημά σας έστειλε ή έλαβε το πακέτο. Ο χρόνος που καταγράφεται εξάγεται από την τοπική ώρα του συστήματός σας.

ποια είναι τα τρόπαια για το snapchat

Το δεύτερο και το τρίτο πεδίο δηλώνουν τη διεπαφή που χρησιμοποιείται και τη ροή του πακέτου. Στο παραπάνω απόσπασμα, wlp0s20f3 είναι το όνομα της ασύρματης διεπαφής και Εξω είναι η ροή πακέτων.

Το τέταρτο πεδίο περιλαμβάνει πληροφορίες που σχετίζονται με το όνομα του πρωτοκόλλου δικτύου. Γενικά, θα βρείτε δύο πρωτόκολλα- IP και IP6 , όπου IP υποδηλώνει IPV4 και IP6 είναι για IPV6.

Το επόμενο πεδίο περιέχει τις διευθύνσεις IP ή το όνομα της πηγής και του συστήματος προορισμού. Οι διευθύνσεις IP ακολουθούνται από τον αριθμό θύρας.

Το έκτο πεδίο στην έξοδο αποτελείται από σημαίες TCP. Υπάρχουν διάφορες σημαίες που χρησιμοποιούνται στην έξοδο tcpdump.

Όνομα σημαίαςαξίαΠεριγραφή
ΘΕΑΜΑμικρόΗ σύνδεση ξεκίνησε
ΤΕΛΟΣφάΗ σύνδεση ολοκληρώθηκε
ΣΠΡΩΞΤΕΠΤα δεδομένα πιέζονται
RSTRΗ σύνδεση επαναφέρεται
ΑΛΙΜΟΝΟΤοΑναγνώριση

Η έξοδος μπορεί επίσης να περιέχει συνδυασμό αρκετών σημαιών TCP. Για παράδειγμα, ΣΗΜΑΙΑ [στ.] σημαίνει πακέτο FIN-ACK.

Προχωρώντας περαιτέρω στο απόσπασμα εξόδου, το επόμενο πεδίο περιέχει τον αριθμό ακολουθίας ( επ. 196: 568 ) των δεδομένων στο πακέτο. Το πρώτο πακέτο έχει πάντα μια θετική ακέραια τιμή και τα επόμενα πακέτα χρησιμοποιούν τον σχετικό αριθμό ακολουθίας για να βελτιώσουν τη ροή δεδομένων.

Το επόμενο πεδίο περιέχει τον αριθμό επιβεβαίωσης ( ακ 1 ), ή απλός αριθμός Ack. Το πακέτο που καταγράφεται στο μηχάνημα του αποστολέα έχει 1 ως αριθμό επιβεβαίωσης. Στο τέλος του δέκτη, ο αριθμός Ack είναι η τιμή του επόμενου πακέτου.

Το ένατο πεδίο στην έξοδο φιλοξενεί το μέγεθος του παραθύρου ( νίκη 309 ), που είναι ο αριθμός των byte που διατίθενται στο buffer λήψης. Υπάρχουν πολλά άλλα πεδία που ακολουθούν το μέγεθος του παραθύρου, συμπεριλαμβανομένου του Μέγιστου μεγέθους τμήματος (MSS).

Το τελευταίο πεδίο ( μήκος 33 ) περιέχει το μήκος του συνολικού πακέτου που καταγράφεται από το tcpdump.

3. Περιορίστε τον αριθμό των συλλεγμένων πακέτων

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

tcpdump --interface any -c 10

Η προαναφερθείσα εντολή θα συλλάβει δέκα πακέτα από οποιαδήποτε ενεργή διεπαφή δικτύου.

4. Φιλτράρετε πακέτα με βάση τα πεδία

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

Για να καταγράψετε μόνο πακέτα TCP, πληκτρολογήστε:

tcpdump --interface any -c 5 tcp

Ομοίως, εάν θέλετε να φιλτράρετε την έξοδο χρησιμοποιώντας τον αριθμό θύρας:

tcpdump --interface any -c 5 port 50

Η παραπάνω εντολή θα ανακτήσει μόνο πακέτα που μεταδίδονται μέσω της καθορισμένης θύρας.

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

tcpdump --interface any -c 5 host 112.123.13.145

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

tcpdump --interface any -c 5 src 112.123.13.145
tcpdump --interface any -c 5 dst 112.123.13.145

Μπορείτε επίσης να χρησιμοποιήσετε τους λογικούς τελεστές και και ή να συνδυάσουν δύο ή περισσότερες εκφράσεις μαζί. Για παράδειγμα, για να λάβετε πακέτα που ανήκουν στην IP προέλευσης 112.123.13.145 και χρησιμοποιήστε τη θύρα 80 :

tcpdump --interface any -c 10 src 112.123.13.145 and port 80

Οι σύνθετες εκφράσεις μπορούν να ομαδοποιηθούν μαζί χρησιμοποιώντας παρενθέσεις ως εξής:

tcpdump --interface any -c 10 '(src 112.123.13.145 or src 234.231.23.234) and (port 45 or port 80)'

5. Δείτε το Περιεχόμενο του Πακέτου

Μπορείτε να χρησιμοποιήσετε το -ΠΡΟΣ ΤΟ και επισημαίνει με την εντολή tcpdump για την ανάλυση του περιεχομένου του πακέτου δικτύου. ο -ΠΡΟΣ ΤΟ σημαία σημαίνει ASCII μορφή και δηλώνει δεκαεξαδικό μορφή.

Για να δείτε το περιεχόμενο του επόμενου πακέτου δικτύου που καταγράφεται από το σύστημα:

tcpdump --interface any -c 1 -A
tcpdump --interface any -c 1 -x

Σχετικά: Τι είναι η απώλεια πακέτων και πώς να διορθώσετε την αιτία της;

6. Αποθήκευση δεδομένων καταγραφής σε ένα αρχείο

Εάν θέλετε να αποθηκεύσετε τα δεδομένα καταγραφής για σκοπούς αναφοράς, το tcpdump είναι εκεί για να σας βοηθήσει. Απλά περάστε το -σε σημαία με την προεπιλεγμένη εντολή για να γράψετε την έξοδο σε ένα αρχείο αντί να το εμφανίσετε στην οθόνη.

tcpdump --interface any -c 10 -w data.pcap

ο .pcap η επέκταση αρχείου σημαίνει σύλληψη πακέτων δεδομένα. Μπορείτε επίσης να εκδώσετε την προαναφερθείσα εντολή σε λεπτομερή λειτουργία χρησιμοποιώντας το -v σημαία.

tcpdump --interface any -c 10 -w data.pcap -v

Για να διαβάσετε α .pcap αρχείο χρησιμοποιώντας tcpdump, χρησιμοποιήστε το -r σημαία ακολουθούμενη από τη διαδρομή αρχείου. ο -r σημαίνει Ανάγνωση Το

πώς να αποφύγετε την υπερθέρμανση των φορητών υπολογιστών
tcpdump -r data.pcap

Μπορείτε επίσης να φιλτράρετε πακέτα δικτύου από τα δεδομένα πακέτων που είναι αποθηκευμένα στο αρχείο.

tcpdump -r data.pcap port 80

Παρακολούθηση της κυκλοφορίας του δικτύου στο Linux

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

Αλλά πριν από όλα αυτά, η συσκευή σας πρέπει να είναι συνδεδεμένη στο διαδίκτυο. Για αρχάριους Linux, ακόμη και η σύνδεση με το Wi-Fi μέσω της γραμμής εντολών μπορεί να είναι λίγο δύσκολη. Αλλά αν χρησιμοποιείτε τα σωστά εργαλεία, είναι ένα στιγμιότυπο.

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Πώς να συνδεθείτε σε Wi-Fi μέσω του τερματικού Linux με Nmcli

Θέλετε να συνδεθείτε σε δίκτυο Wi-Fi μέσω της γραμμής εντολών Linux; Δείτε τι πρέπει να γνωρίζετε για την εντολή nmcli.

Διαβάστε Επόμενο
Σχετικά θέματα
  • Linux
  • Ασφάλεια
  • Ιατροδικαστικά Δικτύου
Σχετικά με τον Συγγραφέα Deepesh Sharma(79 άρθρα δημοσιεύθηκαν)

Ο Deepesh είναι ο Junior Editor για Linux στο MUO. Γράφει ενημερωτικούς οδηγούς στο Linux, με στόχο να προσφέρει μια ευχάριστη εμπειρία σε όλους τους νεοεισερχόμενους. Δεν είμαι σίγουρος για τις ταινίες, αλλά αν θέλετε να μιλήσετε για την τεχνολογία, είναι ο τύπος σας. Στον ελεύθερο χρόνο του, μπορείτε να τον βρείτε να διαβάζει βιβλία, να ακούει διαφορετικά είδη μουσικής ή να παίζει κιθάρα.

Περισσότερα από Deepesh Sharma

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή