Verwendung von tcpdump und 6 Beispiele

Verwendung von tcpdump und 6 Beispiele

Versuchen Sie, Datenpakete zu erfassen, um den Verkehr in Ihrem Netzwerk zu analysieren? Vielleicht sind Sie ein Serveradministrator, der auf ein Problem gestoßen ist und übertragene Daten im Netzwerk überwachen möchte. Was auch immer die Situation sein mag, das Linux-Dienstprogramm tcpdump ist das, was Sie brauchen.





In diesem Artikel werden wir den Befehl tcpdump im Detail besprechen, zusammen mit einigen Anleitungen zur Installation und Verwendung von tcpdump auf Ihrem Linux-System.





Was ist der tcpdump-Befehl?

Tcpdump ist ein leistungsstarkes Netzwerküberwachungstool, mit dem ein Benutzer Pakete und Datenverkehr in einem Netzwerk effizient filtern kann. Sie können detaillierte Informationen zu TCP/IP und den in Ihrem Netzwerk übertragenen Paketen abrufen. Tcpdump ist ein Befehlszeilen-Dienstprogramm, was bedeutet, dass Sie es auf Linux-Servern ohne Anzeige ausführen können.





Systemadministratoren können das Dienstprogramm tcpdump auch in cron um verschiedene Aufgaben wie die Protokollierung zu automatisieren. Da tcpdump durch seine zahlreichen Funktionen sehr vielseitig einsetzbar ist, funktioniert es sowohl als Fehlerbehebungs- als auch als Sicherheitstool.

So installieren Sie tcpdump unter Linux

Während tcpdump die meiste Zeit auf Ihrem System vorinstalliert ist, werden einige Linux-Distributionen nicht mit dem Paket ausgeliefert. Daher müssen Sie das Dienstprogramm möglicherweise manuell auf Ihrem System installieren.



Sie können überprüfen, ob tcpdump auf Ihrem System installiert ist, indem Sie das welcher Befehl.

which tcpdump

Wenn die Ausgabe einen Verzeichnispfad anzeigt ( /usr/bin/tcpdump ), dann ist das Paket auf Ihrem System installiert. Wenn nicht, können Sie dies jedoch einfach mit dem Standardpaketmanager Ihres Systems tun.





So installieren Sie tcpdump auf Debian-basierten Distributionen wie Ubuntu:

sudo apt-get install tcpdump

Die Installation von tcpdump auf CentOS ist ebenfalls einfach.





sudo yum install tcpdump

Bei Arch-basierten Distributionen:

sudo pacman -S tcpdump

Auf Fedora installieren:

sudo dnf install tcpdump

Beachten Sie, dass das tcpdump-Paket erfordert libcap als Abhängigkeit, also stellen Sie sicher, dass Sie es auch auf Ihrem System installieren.

Tcpdump-Beispiele zum Erfassen von Netzwerkpaketen unter Linux

Nachdem Sie tcpdump erfolgreich auf Ihrem Linux-Rechner installiert haben, ist es an der Zeit, einige Pakete zu überwachen. Da tcpdump Superuser-Berechtigungen benötigt, um die meisten Operationen auszuführen, müssen Sie hinzufügen sudo zu deinen Befehlen.

1. Alle Netzwerkschnittstellen auflisten

Um zu überprüfen, welche Netzwerkschnittstellen für die Aufnahme verfügbar sind, verwenden Sie die -D Flag mit dem Befehl tcpdump.

tcpdump -D

Bestehen der --list-schnittstellen Flag als Argument gibt die gleiche Ausgabe zurück.

tcpdump --list-interfaces

Die Ausgabe ist eine Liste aller Netzwerkschnittstellen, die auf Ihrem System vorhanden sind.

Nachdem Sie die Liste der Netzwerkschnittstellen erhalten haben, ist es an der Zeit, Ihr Netzwerk zu überwachen, indem Sie Pakete auf Ihrem System erfassen. Sie können zwar angeben, welche Schnittstelle Sie verwenden möchten, die irgendein argument-Befehle tcpdump, um Netzwerkpakete über eine beliebige aktive Schnittstelle zu erfassen.

tcpdump --interface any

Das System zeigt die folgende Ausgabe an.

andere videosuchmaschinen als youtube

Verwandt: Was ist das Open Systems Interconnection-Modell?

2. Das tcpdump-Ausgabeformat

Ab der dritten Zeile bezeichnet jede Zeile der Ausgabe ein bestimmtes Paket, das von tcpdump erfasst wurde. So sieht die Ausgabe eines einzelnen Pakets aus.

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

Beachten Sie, dass nicht alle Pakete auf diese Weise erfasst werden, aber dies ist das allgemeine Format, dem die meisten folgen.

Die Ausgabe enthält die folgenden Informationen.

  1. Zeitstempel des empfangenen Pakets
  2. Schnittstellenname
  3. Paketfluss
  4. Name des Netzwerkprotokolls
  5. IP-Adresse und Portdetails
  6. TCP-Flags
  7. Die Sequenznummer der Daten im Paket
  8. Daten bestätigen
  9. Fenstergröße
  10. Paketlänge

Das erste Feld ( 17:00: 25.369138 ) zeigt den Zeitstempel an, wann Ihr System das Paket gesendet oder empfangen hat. Die aufgezeichnete Zeit wird aus der Ortszeit Ihres Systems extrahiert.

So verkleinern Sie die Größe von JPG

Das zweite und dritte Feld bezeichnen die verwendete Schnittstelle und den Paketfluss. Im Ausschnitt oben, wlp0s20f3 ist der Name der Funkschnittstelle und aus ist der Paketfluss.

Das vierte Feld enthält Informationen bezüglich des Netzwerkprotokollnamens. Im Allgemeinen finden Sie zwei Protokolle- IP und IP6 , wobei IP für IPV4 steht und IP6 für IPV6 steht.

Das nächste Feld enthält die IP-Adressen oder den Namen des Quell- und Zielsystems. Auf die IP-Adressen folgt die Portnummer.

Das sechste Feld in der Ausgabe besteht aus TCP-Flags. Es gibt verschiedene Flags, die in der Ausgabe von tcpdump verwendet werden.

FlaggennameWertBeschreibung
SICHTSVerbindung gestartet
ENDEFVerbindung fertig
DRÜCKENPDaten werden gepusht
RSTRVerbindung wird zurückgesetzt
ACH.Wissen

Die Ausgabe kann auch eine Kombination mehrerer TCP-Flags enthalten. Zum Beispiel, FLAGGE [f.] steht für ein FIN-ACK-Paket.

Weiter im Ausgabe-Snippet enthält das nächste Feld die Sequenznummer ( Fortsetzung 196:568 ) der Daten im Paket. Das erste Paket hat immer einen positiven ganzzahligen Wert, und die nachfolgenden Pakete verwenden die relative Sequenznummer, um den Datenfluss zu verbessern.

Das nächste Feld enthält die Quittungsnummer ( zurück 1 ) oder einfache Ack-Nummer. Das im Gerät des Absenders erfasste Paket hat 1 als Bestätigungsnummer. Auf der Empfängerseite ist die Ack-Nummer der Wert des nächsten Pakets.

Das neunte Feld in der Ausgabe nimmt die Fenstergröße ( gewinnen 309 ), das ist die Anzahl der Bytes, die im Empfangspuffer verfügbar sind. Es gibt mehrere andere Felder, die der Fenstergröße folgen, einschließlich der maximalen Segmentgröße (MSS).

Das letzte Feld ( Länge 33 ) enthält die Länge des gesamten von tcpdump erfassten Pakets.

3. Begrenzen Sie die Anzahl der erfassten Pakete

Wenn Sie den Befehl tcpdump zum ersten Mal ausführen, stellen Sie möglicherweise fest, dass das System weiterhin Netzwerkpakete erfasst, bis Sie ein Interrupt-Signal übergeben. Sie können dieses Standardverhalten überschreiben, indem Sie die Anzahl der Pakete, die Sie erfassen möchten, im Voraus mit dem -C Flagge.

tcpdump --interface any -c 10

Der oben genannte Befehl erfasst zehn Pakete von jeder aktiven Netzwerkschnittstelle.

4. Pakete basierend auf Feldern filtern

Wenn Sie ein Problem beheben, ist es nicht einfacher, einen großen Textblock auf Ihrem Terminal zu erhalten. Hier kommt die Filterfunktion von tcpdump ins Spiel. Sie können die Pakete nach verschiedenen Feldern filtern, einschließlich Host, Protokoll, Portnummer und mehr.

Geben Sie Folgendes ein, um nur TCP-Pakete zu erfassen:

tcpdump --interface any -c 5 tcp

Ebenso, wenn Sie die Ausgabe anhand der Portnummer filtern möchten:

tcpdump --interface any -c 5 port 50

Der oben erwähnte Befehl ruft nur Pakete ab, die über den angegebenen Port gesendet wurden.

So rufen Sie die Paketdetails für einen bestimmten Host ab:

tcpdump --interface any -c 5 host 112.123.13.145

Wenn Sie Pakete filtern möchten, die von einem bestimmten Host gesendet oder empfangen werden, verwenden Sie die src oder etc Argument mit dem Befehl.

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

Sie können auch die logischen Operatoren verwenden und und oder um zwei oder mehr Ausdrücke zu kombinieren. Um beispielsweise Pakete zu erhalten, die zur Quell-IP gehören 112.123.13.145 und nutze den Hafen 80 :

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

Komplexe Ausdrücke können mit . gruppiert werden Klammern wie folgt:

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

5. Sehen Sie sich den Inhalt des Pakets an

Du kannst den ... benutzen -ZU und -x Flags mit dem Befehl tcpdump, um den Inhalt des Netzwerkpakets zu analysieren. Die -ZU Flagge steht für ASCII Format und -x bezeichnet hexadezimal Format.

So zeigen Sie den Inhalt des nächsten vom System erfassten Netzwerkpakets an:

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

Verwandte: Was ist Paketverlust und wie kann man seine Ursache beheben?

6. Capture-Daten in einer Datei speichern

Wenn Sie die Capture-Daten zu Referenzzwecken speichern möchten, hilft Ihnen tcpdump weiter. Pass einfach auf -in Flag mit dem Standardbefehl, um die Ausgabe in eine Datei zu schreiben, anstatt sie auf dem Bildschirm anzuzeigen.

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

Die .pcap Dateiendung steht für Paketerfassung Daten. Sie können den oben genannten Befehl auch im ausführlichen Modus ausgeben, indem Sie die -v Flagge.

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

Lesen .pcap Datei mit tcpdump verwenden, verwenden Sie die -R Flag gefolgt vom Dateipfad. Die -R steht für Lesen .

wie man bootfähigen usb von iso erstellt
tcpdump -r data.pcap

Sie können auch Netzwerkpakete aus den in der Datei gespeicherten Paketdaten filtern.

tcpdump -r data.pcap port 80

Überwachen des Netzwerkverkehrs unter Linux

Wenn Sie mit der Administration eines Linux-Servers beauftragt wurden, ist der Befehl tcpdump ein großartiges Werkzeug, das Sie in Ihr Arsenal aufnehmen können. Sie können netzwerkbezogene Probleme einfach beheben, indem Sie in Ihrem Netzwerk übertragene Pakete in Echtzeit erfassen.

Zuvor muss Ihr Gerät jedoch mit dem Internet verbunden sein. Für Linux-Anfänger kann es sogar eine Herausforderung sein, sich über die Befehlszeile mit dem WLAN zu verbinden. Aber wenn Sie die richtigen Werkzeuge verwenden, ist es ein Kinderspiel.

Teilen Teilen Tweet Email So stellen Sie eine WLAN-Verbindung über das Linux-Terminal mit Nmcli . her

Möchten Sie über die Linux-Befehlszeile eine Verbindung zu einem Wi-Fi-Netzwerk herstellen? Hier ist, was Sie über den Befehl nmcli wissen müssen.

Weiter lesen
Verwandte Themen
  • Linux
  • Sicherheit
  • Netzwerk-Forensik
Über den Autor Deepesh Sharma(79 Artikel veröffentlicht)

Deepesh ist Junior Editor für Linux bei MUO. Er schreibt Informationshandbücher zu Linux mit dem Ziel, allen Neulingen eine glückselige Erfahrung zu bieten. Bei Filmen bin ich mir nicht sicher, aber wenn Sie über Technologie sprechen möchten, ist er Ihr Mann. In seiner Freizeit findet man ihn beim Lesen von Büchern, beim Hören verschiedener Musikgenres oder beim Gitarrespielen.

Mehr von Deepesh Sharma

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren