So verwenden Sie den Befehl TCPDump unter Linux

So verwenden Sie den Befehl TCPDump unter Linux

Der tcpdump Der Befehl kann verwendet werden, um den Netzwerkverkehr auf einem Linux -System zu erfassen. Es ist ein vielseitiges Befehlszeilen -Dienstprogramm, auf das Netzwerkadministratoren häufig bei der Fehlerbehebung angewiesen sind.

Was Sie finden, ist, dass die Menge des auf einer Schnittstelle erfassten Netzwerkverkehrs leicht überwältigend sein kann. tcmpdump erleichtert unseren Job ein wenig, indem wir uns erlauben, nur den Verkehr zu isolieren, an dem wir interessiert sind. Zu diesem Zeitpunkt müssen Sie natürlich mit den verschiedenen Flaggen und Einstellungen vertraut sein, die dem Befehl eingehen.

In diesem Leitfaden sehen Sie, wie man benutzt tcpdump durch Beispiele und Erklärungen. Folgen Sie Ihrem eigenen System, wenn Sie lernen möchten, den Netzwerkverkehr zu erfassen und die zu beherrschen tcpdump Befehl.

In diesem Tutorial lernen Sie:

  • So installieren Sie TCPDump auf wichtigen Linux -Distributionen
  • TCPDump -Befehlsbeispiele
  • So filtern Sie TCPDump -Verkehr mit Port, Protokoll, Quelle und Ziel
  • So schreiben Sie TCPDump -Erfassungen zur Datei
  • So interpretieren Sie die Ausgabe des Befehls von TCPDump
Verwenden von TCPDump -Befehl, um den Netzwerkverkehr unter Linux zu erfassen Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Jede Linux -Distribution
Software tcpdump
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Installieren Sie TCPDump auf wichtigen Linux -Distribos

Es besteht eine gute Chance, dass Ihre Linux -Distribution bereits hat tcpdump standardmäßig installiert, insbesondere wenn Sie eine Distribution ausführen, die auf Server ausgerichtet ist. Nur für den Fall, dass es noch nicht installiert ist, können Sie den entsprechenden Befehl unten verwenden, um ihn über den Paketmanager Ihres Systems zu installieren.

So installieren Sie TCPDump auf Ubuntu, Debian und Linux Mint:

$ sudo APT Installieren Sie TCPDump 

So installieren Sie TCPDump auf CentOS, Fedora, Almalinux und Red Hat:

$ sudo dnf Installieren Sie TCPDump 

So installieren Sie TCPDump unter Arch Linux und Manjaro:

$ sudo pacman -s tcpdump 

TCPDump -Befehlsbeispiele

NOTIZ
Alle deine tcpdump Befehle müssen mit dem Root -Benutzerkonto ausgeführt werden oder mit sudo. Das Dienstprogramm erfordert die Berechtigung von Administratoren, um auszuführen.

Die einfachste Form des Befehls ist die Verwendung des Dienstprogramms ohne zusätzliche Optionen wie folgt:

# TCPDUMP 

Wenn Sie nicht angeben, von welcher Netzwerkschnittstelle Sie den Datenverkehr erfassen möchten, wie im obigen Befehl, dann tcpdump Wählt eine Schnittstelle für Sie.

Es wird weiterhin den erfassten Verkehr zu Ihrem Terminal "ablegen", bis Sie den Befehl unterbrechen. Der einfachste Weg, dies zu tun, ist mit Strg + c.

Wenn Sie mehr als eine Netzwerkschnittstelle haben, geben Sie am besten an, auf welcher Schnittstelle Sie den Datenverkehr erfassen möchten, seitdem tcpdump Wählen Sie möglicherweise nicht die gewünschte, die Sie standardmäßig möchten. Verwenden Sie das -D Option zum Drucken einer Liste von Netzwerkschnittstellen, die tcpdump Kann benutzen.

# tcpdump -d 1.ENP0S3 [Up, Laufen] 2.LO [Up, Laufen, Loopback] 3.Jeder (Pseudo-Gerät, der an allen Schnittstellen erfasst) [Up, Running] 4.Bluetooth-Monitor (Bluetooth Linux Monitor) [Keine] 5.NFLOG (Linux Netfilter Log (NFLOG) Schnittstelle) [Keine] 6.NFQUEUE (Linux Netfilter Queue (NFQueue) Grenzfläche [keine] 

Wir haben einige verschiedene Schnittstellen, die wir verwenden können. Alternativ haben wir das beliebig Option verfügbar, mit der wir den Datenverkehr auf allen Netzwerkschnittstellen gleichzeitig erfassen können. Wenn wir den Netzwerkverkehr auf dem erfassen möchten ENP0S3 Schnittstelle verwenden wir die folgende Befehlssyntax.

# TCPDUMP -i ENP0S3 

Du kannst den ... benutzen -v Option, die Ausführlichkeit des Ausgangs zu erhöhen, oder -VV Und -VVV Um es noch weiter zu erhöhen.

# TCPDUMP -i ENP0S3 -VV 

Wenn Sie nicht wollen tcpdump Um Daten endlos an Ihrem Terminal auszugeben, können Sie die verwenden -C Option, um anzugeben, wie viele Pakete das Dienstprogramm erfassen soll. tcpdump Beendet die Ausführung des Befehls, nachdem der Schwellenwert erreicht wurde, anstatt darauf zu warten, dass Sie unterbrechen. Mit dem folgenden Befehl können wir nur die ersten 15 Pakete erfassen.

# TCPDUMP -C 15 

Wenn Sie nicht wollen tcpdump Um die DNS -Auflösung in den Netzwerkadressen in der Ausgabe durchzuführen, können Sie die verwenden -N Option in Ihrem Befehl. Dadurch werden alle Netzwerkadressen als IP -Adressen angezeigt, anstatt sie auf Domainnamen zu beheben.

# tcpdump -n 

Wenn Sie die Netzwerkverkehrsausgabe lieber in Datei speichern möchten, anstatt sie auf Ihrem Bildschirm aufzulisten, können Sie die immer umleiten tcpdump Ausgabe mit den üblichen > Und >> Betreiber.

# TCPDump> Verkehr.txt 

Eine andere Möglichkeit besteht darin, die Netzwerkaufnahme in Datei zu schreiben. Diese Dateien haben normalerweise die .PCAP Dateierweiterung und kann nicht von einem gewöhnlichen Texteditor gelesen werden.

# TCPDUMP -N -W -Verkehr.PCAP 

Verwenden Sie die Datei für die spätere Analyse, um die Datei zu öffnen -R Option und der Name Ihrer Datei.

# TCPDUMP -R -Verkehr.PCAP 

Interpretieren Sie die Ausgabe von TCPDump -Befehl

Jedes Paket das tcpdump Captures ist als einzelne Zeile geschrieben. Eine dieser Zeilen sieht ungefähr so ​​aus:

14:21:46.134249 IP 10.0.2.15.54000> 104.16.168.35.443: Flaggen [.], ACK 2915, Gewinn 63000, Länge 0 

Hier erfahren Sie, wie Sie diese Datenzeile interpretieren:

  • 14:21:46.134249 - Zeitstempel des Erfassen des Pakets.
  • IP 10.0.2.15.54000 - IP- und Portnummer des Quellhosts.
  • 104.16.168.35.443 - IP- und Portnummer des Zielhosts.
  • Flaggen [.] - TCP -Flags (Syn, ACK, PSH usw.). [.] bedeutet ack.
  • ACK 2915 - Die Bestätigungsnummer.
  • Gewinnen Sie 63000 - Die Fensternummer (Bytes im Empfangspuffer).
  • Länge 0 - Die Länge der Nutzlastdaten.

Filter TCPDump -Verkehr

Eine der besten Merkmale von tcpdump ist, dass wir genau den Verkehr herausfiltern können, den wir sehen möchten. Ohne den Verkehr per Adapter (wie oben gezeigt), Portnummer und Paketprotokoll herauszufiltern.

Trotz des Namens tcpdump, Wir können das Tool verwenden, um alle Arten von Verkehr herauszufiltern, nicht nur TCP. Verwenden Sie beispielsweise die folgende Syntax, um den Datenverkehr herauszufiltern, der UDP verwendet.

# TCPDUMP -n UDP 

Oder das folgende Beispiel, das ICMP herausfiltert:

# TCPDump -n ICMP 

Sie können auch die entsprechende Protokollnummer verwenden, um ein bestimmtes Protokoll herauszufiltern. Beispielsweise ist ICMP Protokollnummer 1, sodass die folgende Syntax das gleiche wie das vorherige Beispiel tut.

# TCPDump -n Proto 1 

Um eine vollständige Liste von Netzwerkprotokollen und deren entsprechenden Zahlen anzuzeigen, lesen Sie die Liste der IP -Protokollnummern auf Wikipedia.

Um den Datenverkehr mit einem bestimmten Ziel- oder Quell -IP -Adresse zu filtern, können wir die verwenden Gastgeber Qualifer mit dem -N Möglichkeit. Zum Beispiel zum Filterverkehr im Zusammenhang mit dem Host unter der IP -Adresse 10.10.150.20:

# TCPDump -n Host 10.10.150.20 

Alternativ verwenden Sie die Netz Qualifer, wenn Sie den Verkehr zu oder von einem ganzen Netzwerk herausfiltern möchten. Zum Beispiel filtert der folgende Befehl den Verkehr im Zusammenhang mit dem 192.168.1.0/24 Netzwerk.

# TCPDUMP -N NET 192.168.1 

Verwenden Sie das Hafen Und darstellen Qualifizierer, um Pakete im Zusammenhang mit einem bestimmten Port- oder Port -Bereich herauszufiltern. Beispielsweise filtert der folgende Befehl unseren Datenverkehr mit Port 80 (HTTP).

# TCPDump -n Port 80 

Oder um den Verkehr aus den Ports 20-30 zu filtern, würde der folgende Befehl verwendet.

# TCPDUMP -N PORTRANGE 20-30 

Ergänzen Sie die dst, src, SRC und DST, Und SRC oder DST Qualifizierer, wenn Sie basierend auf der Quelle und/oder der Zieladresse oder dem Port der Pakete filtern möchten. Beispielsweise filtert der folgende Befehl Pakete mit einer Quell -IP -Adresse von 10.10.150.20.

# TCPDUMP -N SRC HOST 10.10.150.20 

Oder in diesem Beispiel filtern wir Pakete heraus, die für den SSH -Port bestimmt sind (Port 22).

# TCPDump -n DST Port 22 

Filter kombinieren

Wir können diese verschiedenen oben abgedeckten Filter mit der Verwendung des Und (&&), oder (||), Und nicht (!) Betreiber in unserer tcpdump Befehl.

Zum Beispiel wird der folgende Befehl den Verkehr erfassen, für den Sie bestimmt sind 10.10.150.20 auf Port 80 (HTTP).

# TCPDUMP -n DST HOST 10.10.150.20 und TCP Port 80 

Oder schaffen Sie noch mehr detailliertere Filter, indem Sie Regeln in Klammern weiter kombinieren. Zum Beispiel wird dieser Befehl das gleiche wie der vorherige, aber auch erfassen Port 443 (HTTPS).

# TCPDUMP -N 'DST HOST 10.10.150.20 und (TCP Port 80 oder TCP Port 443) '' 

Gedanken schließen

In diesem Leitfaden haben wir gesehen, wie man das benutzt tcpdump Befehlszeilen -Dienstprogramm zum Erfassen des Netzwerkverkehrs auf einem Linux -System. Wie wir in diesem Tutorial gesehen haben, kann der Befehl ziemlich komplex werden und sehr detaillierte Eingaben akzeptieren, was es uns ermöglicht, den genauen Datenverkehr herauszufiltern, den wir sehen möchten.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Linux -Befehle: Top 20 wichtigste Befehle, die Sie benötigen, um…
  • Grundlegende Linux -Befehle
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Installieren Sie Arch Linux in VMware Workstation
  • Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
  • Dinge zu installieren auf Ubuntu 22.04
  • Wie man einen Screenshot auf Kali Linux macht
  • Wie man einen Screenshot auf Manjaro macht