Το Linux είναι εξοπλισμένο με μια πληθώρα βοηθητικών προγραμμάτων δικτύωσης για να διαλέξετε. Το tcpdump είναι ένα τέτοιο ισχυρό εργαλείο δικτύωσης που μπορεί να καταγράψει και να αναλύσει την κυκλοφορία του δικτύου σε περίπτωση που χρειαστεί να αντιμετωπίσετε σφάλματα δικτύου στο Linux.
Ας ασχοληθούμε με την εντολή tcpdump και ας εξερευνήσουμε πώς να τη χρησιμοποιήσετε για να καταγράψετε την κυκλοφορία του δικτύου.
Εγκατάσταση του tcpdump στο Linux
Το tcpdump συνήθως συνοδεύεται από προεγκατεστημένο όλες οι κύριες διανομές Linux και εναλλακτικές λύσεις που βασίζονται στην ασφάλεια. Επομένως, θα πρέπει να μπορείτε να το χρησιμοποιήσετε αμέσως πληκτρολογώντας tcpdump με sudo πρόθεμα.
Σε περίπτωση που δεν μπορείτε να εκτελέσετε την εντολή tcpdump και έχετε κολλήσει στο "tcpdump: η εντολή δεν βρέθηκε", ας μάθουμε πώς να εγκαταστήσετε το tcpdump στον υπολογιστή σας Linux.
Για να εγκαταστήσετε το tcpdump, ενεργοποιήστε το τερματικό και εκτελέστε την εντολή που αντιστοιχεί στη διανομή Linux που χρησιμοποιείτε αυτήν τη στιγμή:
Σε παράγωγα Debian/Ubuntu, εκτελέστε:
sudo apt-παίρνω εγκαταστήστε το tcpdump
Επί Συστήματα που βασίζονται σε τόξο, τρέξιμο:
sudo pacman -S tcpdump
Για να εγκαταστήσετε το βοηθητικό πρόγραμμα tcpdump σε Fedora, CentOS και RHEL, εκδώστε την ακόλουθη εντολή:
sudo dnf εγκαθιστώ tcpdump
Σημειώστε ότι εάν σας ζητηθεί να εγκαταστήσετε libcap, πληκτρολογήστε Ναί ή Υ καθώς είναι μια βασική εξάρτηση, χωρίς την οποία το tcpdump θα αρνηθεί να ξεκινήσει. Αυτό θα πρέπει να εγκαταστήσει το βοηθητικό πρόγραμμα tcpdump και να λύσει το σφάλμα "η εντολή δεν βρέθηκε".
Τώρα που το tcpdump έχει εγκατασταθεί στο σύστημά σας, ας εξερευνήσουμε τις διάφορες επιλογές και λειτουργίες που προσφέρει.
Καταγραφή κίνησης δικτύου με το tcpdump
Το tcpdump προσφέρει πολλές σημαίες για την τροποποίηση της εκτέλεσής του, αλλά μπορεί να εκτελεστεί και ως αυτόνομη εντολή. Ωστόσο, η εκτέλεση του tcpdump χωρίς σημαίες ή επιχειρήματα θα παραμελούσε πλήρως τις δυνατότητές του. Είναι πάντα καλύτερο να χρησιμοποιείτε μερικές σημαίες για να τροποποιήσετε την εκτέλεση και την έξοδο όπως απαιτείται.
Πληκτρολογήστε αυτήν την εντολή για να παρακολουθήσετε τις μεταδόσεις δικτύου με το tcpdump:
sudo tcpdump
Τώρα το tcpdump θα αρχίσει να καταγράφει αυτόματα πακέτα δικτύου μέχρι ένα σήμα διακοπής αποστέλλεται με Ctrl + Z για να διακόψετε τη διαδικασία χειροκίνητα. Για να περιορίσετε τον συνολικό αριθμό των πακέτων που έχουν συλληφθεί, χρησιμοποιήστε το -ντο επισημάνετε και πληκτρολογήστε το επιθυμητό όριο πακέτων δίπλα του:
sudo tcpdump -c 5
Εάν δεν μπορείτε να κατανοήσετε την έξοδο αυτή τη στιγμή, πρέπει να το κάνετε εξοικειωθείτε με τη μορφή εξόδου tcpdump πρώτα.
Ελέγξτε τις διαθέσιμες διεπαφές δικτύου με το tcpdump
Από προεπιλογή, το tcpdump καταγράφει κίνηση από οποιαδήποτε από τις διαθέσιμες διεπαφές δικτύου. Εάν χρησιμοποιείτε πολλές ενεργές διεπαφές δικτύου, ίσως θελήσετε να ορίσετε τη διεπαφή δικτύου από την οποία το tcpdump θα καταγράφει πακέτα. Για να ξεκινήσετε το tcpdump σε μια συγκεκριμένη διεπαφή, θα πρέπει πρώτα να μάθετε για το όνομα της διεπαφής.
Δείτε πώς μπορείτε να απαριθμήσετε όλες τις διαθέσιμες διεπαφές δικτύου με το tcpdump:
sudo tcpdump -D
Ή, μπορείτε να προσθέσετε το --λίστες-διεπαφές επισημάνετε την εντολή:
sudo tcpdump --λίστα-διεπαφές
Η έξοδος που επιστρέφεται περιέχει μια λίστα με όλες τις ενεργές διεπαφές δικτύου που μπορεί να ακούσει το tcpdump. Για να ρυθμίσετε το tcpdump ώστε να καταγράφει μεταδόσεις από μια συγκεκριμένη διεπαφή δικτύου, πληκτρολογήστε αυτήν την εντολή:
sudo tcpdump -i interface_id
Ή, μπορείτε να προσθέσετε το --διεπαφή επισημάνετε την εντολή:
sudo tcpdump --διεπαφήinterface_id
Τώρα που καταγράψαμε μερικά πακέτα, ας τα μελετήσουμε προσεκτικά και ας μάθουμε πώς μπορείτε να τροποποιήσετε την έξοδο ώστε να είναι πιο ευανάγνωστη.
Εξερεύνηση φίλτρων tcpdump
Το tcpdump είναι ικανό να καταγράψει μια συντριπτική ποσότητα επισκεψιμότητας σε μία μόνο εκτέλεση. Αυτή η υπερφόρτωση πληροφοριών μπορεί να σας βγάλει εκτός πορείας κατά τη διερεύνηση ή την αντιμετώπιση προβλημάτων με έναν συγκεκριμένο κεντρικό υπολογιστή ή πρωτόκολλο δικτύου.
Εδώ μπαίνουν στο παιχνίδι τα φίλτρα tcpdump. Μπορείτε να προσαρτήσετε την εντολή tcpdump με ορισμένες σημαίες για να φιλτράρετε την κίνηση του δικτύου και να καταγράψετε συγκεκριμένα πακέτα. Στη συνέχεια, μπορείτε να αποθηκεύσετε αυτά τα πακέτα και αργότερα να τα αναλύσετε για να μάθετε τη ρίζα τυχόν προβλημάτων που σχετίζονται με το δίκτυο. Ας μάθουμε πώς να χρησιμοποιούμε φίλτρα στο tcpdump.
Φιλτράρετε πακέτα με βάση το πρωτόκολλο δικτύου που χρησιμοποιείται
Για να φιλτράρετε πακέτα που μεταδίδονται μέσω ενός συγκεκριμένου πρωτοκόλλου, πληκτρολογήστε το όνομα του πρωτοκόλλου με την εντολή tcpdump και θα καταγράψει μόνο πακέτα που ταξιδεύουν μέσω του καθορισμένου πρωτοκόλλου δικτύου.
Για παράδειγμα, για να καταγράψετε πακέτα που βασίζονται σε ICMP, θα πρέπει απλώς να επισυνάψετε icmp στο τέλος της εντολής tcpdump. Η διαδικασία είναι η ίδια εάν θέλετε να καταγράψετε μόνο πακέτα UDP ή TCP.
sudo tcpdump -c 5 icmp
Αυτή η εντολή θα επιστρέψει την έξοδο μόνο εάν υπάρχει ανταλλαγή δεδομένων μέσω του πρωτοκόλλου ICMP.
Φιλτράρισμα πακέτων με βάση τον κεντρικό υπολογιστή
Μπορείτε να διαμορφώσετε το tcpdump για να καταγράφει πακέτα που σχετίζονται με έναν μεμονωμένο κεντρικό υπολογιστή με το πλήθος παράμετρος. Αυτό είναι ιδιαίτερα χρήσιμο όταν όλα τα συστήματα του δικτύου σας λειτουργούν εκτός από ένα. Αυτό το φίλτρο σάς επιτρέπει να πραγματοποιείτε στοχευμένη έρευνα και επιταχύνει τη συνολική ροή εργασιών αντιμετώπισης προβλημάτων, καθώς δεν αποσπάτε την προσοχή σας από περιττά δεδομένα.
Για να καταγράψετε πακέτα που σχετίζονται με έναν συγκεκριμένο κεντρικό υπολογιστή, ορίστε τη διεύθυνση δικτύου του κεντρικού υπολογιστή με το πλήθος παράμετρος:
sudotcpdump-ντο 5 πλήθος 192.168.2.1
Παρόμοια με το φίλτρο πρωτοκόλλου δικτύου, αυτή η εντολή θα επιστρέψει την έξοδο μόνο εάν οποιαδήποτε τρέχουσα μετάδοση σχετίζεται με τον καθορισμένο κεντρικό υπολογιστή.
Φιλτράρισμα πακέτων με βάση την ενεργή θύρα
Το tcpdump είναι εξοπλισμένο με μια παράμετρο που σας επιτρέπει να φιλτράρετε την κυκλοφορία του δικτύου και να καταγράφετε μόνο πακέτα που μεταδίδονται προς ή από μια συγκεκριμένη θύρα.
Για να καταγράψετε πακέτα που προέρχονται από μια συγκεκριμένη θύρα, προσαρτήστε το Λιμάνι επισημάνετε την εντολή tcpdump και ορίστε τον αριθμό θύρας δίπλα της. Για παράδειγμα, για να καταγράψετε οποιαδήποτε εισερχόμενη ή εξερχόμενη κίνηση HTTP, ορίστε τη θύρα 80:
sudo tcpdump -c 5 θύρα 80
Το tcpdump θα ακούσει στη θύρα 80, περιμένοντας μεταδόσεις HTTP. Μόλις εντοπίσει πακέτα HTTP στο δίκτυο, θα τα καταγράψει.
Συνδυάστε τα φίλτρα μαζί για προηγμένη ταξινόμηση
Οι προηγούμενες ενότητες συζητούσαν πώς μπορείτε να φιλτράρετε την κυκλοφορία με βάση τη θύρα, το πρωτόκολλο ή τον κεντρικό υπολογιστή, αλλά τι θα γινόταν αν θέλετε να καταγράψετε την κίνηση από μια θύρα ενός συγκεκριμένου κεντρικού υπολογιστή χρησιμοποιώντας ένα συγκεκριμένο δίκτυο πρωτόκολλο? Λοιπόν, είστε τυχεροί γιατί αυτό είναι δυνατό, αποδίδοντας τη δυνατότητα χρήσης λογικών τελεστών με την εντολή tcpdump.
Για να καταγράψετε πακέτα από έναν μεμονωμένο κεντρικό υπολογιστή χρησιμοποιώντας τη θύρα 443, χρησιμοποιήστε αυτήν την εντολή:
sudotcpdump-ντο 5 πλήθος 192.168.2.1καιΛιμάνι 443
Επιθεωρήστε τα περιεχόμενα των πακέτων που έχουν συλληφθεί
Από προεπιλογή, το tcpdump εμφανίζει τις κεφαλίδες ενός πακέτου στην έξοδο. Αν και είναι υπεραρκετό στις περισσότερες περιπτώσεις, μερικές φορές, μπορεί να θέλετε ή να χρειαστεί να κοιτάξετε βαθύτερα στα δεδομένα που έχουν καταγραφεί. Μπορείτε να περάσετε ορισμένες παραμέτρους με την εντολή tcpdump για να επιθεωρήσετε το περιεχόμενο του πακέτου που καταγράφηκε.
Δείτε πώς μπορείτε να δείτε το περιεχόμενο των πακέτων:
sudo tcpdump -c 5 -x
Αυτή η εντολή επιστρέφει την εξαγωνική έκδοση του περιεχομένου σε ένα πακέτο που έχει καταγραφεί. Εάν θέλετε να δείτε τη φόρμα ASCII των δεδομένων, μπορείτε να περάσετε το -ΕΝΑ παράμετρος με:
sudo tcpdump -Α
Αποθηκεύστε την έξοδο tcpdump σε ένα αρχείο
Όπως σχεδόν κάθε άλλο εργαλείο γραμμής εντολών Linux, μπορείτε να αποθηκεύσετε την έξοδο που παράγεται από το tcpdump σε ένα αρχείο που θα αναφέρεται αργότερα.
Αυτό μπορεί να γίνει προσθέτοντας το -w σημαία στην εντολή. Μετά την εκτέλεση, το tcpdump θα αποθηκεύσει τα δεδομένα που συλλέγονται σε ένα .pcap αρχείο που μπορεί αργότερα να αναλυθεί με το tcpdump ή άλλα εργαλεία παρακολούθησης δικτύου όπως το Wireshark.
Πληκτρολογήστε αυτήν την εντολή για να αποθηκεύσετε την έξοδο της εντολής tcpdump σε ένα αρχείο:
sudotcpdump-wπιάνω.pcap
Για να διαβάσετε α .pcap αρχείο, μπορείτε να χρησιμοποιήσετε το tcpdump με το -r παράμετρος:
sudotcpdump-rπιάνω.pcap
Το Linux διατίθεται με μια πληθώρα εργαλείων δικτύωσης που μπορούν να λύσουν κάθε πρόβλημα δικτύου, αρκεί να είναι από την πλευρά του λογισμικού. Το να γνωρίζετε πώς να χρησιμοποιείτε μερικά από τα καλύτερα εργαλεία δικτύωσης στο Linux θα σας φανεί σίγουρα χρήσιμο, είτε είστε sysadmin που διαχειρίζεστε δίκτυα για τα προς το ζην είτε απλώς ένας καθημερινός χρήστης Linux.
Δεδομένου ότι η πραγματική λίστα των διαθέσιμων εντολών δικτύωσης μπορεί να είναι πάρα πολύ κατανοητή, ακολουθεί μια λίστα με μερικά από τα πιο σημαντικά εργαλεία δικτύωσης Linux που πρέπει να γνωρίζετε.