Der Befehl tcpdump

tcpdump-featured

In diesem Beitrag lernen Sie den Befehl tcpdump kennen. tcpdump ist eine freie Software, welche unter UNIX- bzw. Linux-Betriebssystemen zur Überwachung und Auswertung von Netzwerkverkehr eingesetzt werden kann. Neben TCP-Paketen können auch UDP- und ICMP-Pakete erfasst werden. Für die administrativen Aufgaben im Umfeld von UNIX/Linux ist dieser Befehl sehr hilfreich.

Obwohl es sich bei tcpdump um ein reines Kommandozeilenwerkzeug handelt, ist es mithilfe weiterer Software, wie etwa Wireshark, auch möglich die Ausgaben von tcpdump grafisch zu analysieren.

Installation

Der Befehl tcpdump ist in einem gleichnamigen Paket enthalten und nicht auf allen Betriebssystemen vorinstalliert. Die Installation mit dem Paketmanager apt erfolgt folgendermaßen:

apt-get install tcpdump

Weitere Informationen zur Paket- und Quellenverwaltung mit dem Paketmanager apt finden Sie in unserem zugehörigen Beitrag.

Allgemeine Syntax

tcpdump muss mit Root-Rechten ausgeführt werden, um das Mitschneiden von Paketen zu ermöglichen. Der Befehl wird dann mit der folgenden Syntax aufgerufen:

tcpdump [Optionen] [Filter]

Wird der Befehl ohne jegliche Optionen und Filter ausgeführt, so werden standardmäßig alle Pakete mitgeschnitten, geparst und formatiert im Terminal ausgegeben. tcpdump fährt, sofern es nicht mit der Option -c ausgeführt wurde, mit der Erfassung von Paketen fort, bis es durch ein SIGINT-Signal (Interrupt-Signal) unterbrochen wird - etwa durch Eingabe der Tastenkombination [STRG + C].

Wichtige Optionen

Im Folgenden werden einige der wichtigsten Optionen des Befehls tcpdump vorgestellt.

-A - Paketinhalt als ASCII ausgeben

Alle Pakete werden (abzüglich ihrer Link-Level-Header) als ASCII ausgegeben. Die Option kann somit gut zur Erfassung von Webinhalten verwendet werden.

tcpdump -A [Filter]

-c - tcpdump nach X Paketen beenden

Mithilfe der Option -c lässt sich eine maximale Anzahl Pakete festlegen, nach deren Erfassung tcpdump automatisch beendet wird.

tcpdump -c [Anzahl] [Filter]

-C - Maximale Dateigröße festlegen

Die Option -C ermöglicht die Festlegung einer maximalen Dateigröße während dem Schreiben in eine angegebene Datei (mit der Option -w). Vor dem Schreiben eines rohen Pakets in die Datei wird dazu zunächst überprüft, ob die aktuelle Dateigröße die angegebene Größe überschreitet. Ist dies der Fall, wird die aktuelle Datei geschlossen und eine neue Datei angelegt, wobei der Dateiname mit der Angabe nach der Option -w beginnt und mit einer Nummer (1 und aufwärts) endet.

Die Angabe der Dateigröße erfolgt in Millionen Bytes (1.000.000 Bytes):

tcpdump -C [Dateigröße] [Filter]

-e - Ethernet-Header mitschneiden

Durch Setzen der Option -e wird auch der Ethernet-Header mitgeschnitten.

tcpdump -e [Filter]

-i - Netzwerkschnittstelle spezifizieren

Mithilfe der Option -i kann die zu überwachende Netzwerkschnittstelle spezifiziert werden. Wird die Option nicht angegeben, durchsucht tcpdump die Systemschnittstellenliste nach der am niedrigsten nummerierten, konfigurierten Schnittstelle (Loopback ausgeschlossen) - beispielsweise "eth0".

tcpdump -i [Schnittstelle] [Filter]

-n - Hostnamen nicht auflösen

Wird die Option -n angegeben, so löst tcpdump keine Hostnamen auf und ersetzt Portnummern zudem nicht durch ihre Dienste.

tcpdump -n [Filter]

-q - Protokollinformationen kürzen

Durch die Option -q gibt tcpdump weniger Protokollinformationen aus, um die Ausgabe zu verkürzen.

tcpdump -q [Filter]

-r - Pakete aus Datei lesen

Mit der Option -r kann eine Datei, welche mit der Option -w erstellt wurde, eingelesen, geparst und schließlich im Terminal ausgegeben werden. 

tcpdump -r [Dateipfad] [Filter]

-v - Informationen limitieren (-vv, -vvv)

Mithilfe der in dieser Option angegebenen Anzahl v´s (1-3) wird spezifiziert, wie viele Informationen tcpdump speichern soll. Eine höhere Anzahl v´s steht für genauere Informationen. 

tcpdump [-v / -vv / -vvv] [Filter]

-w - Pakete in Datei schreiben

Mithilfe der Option -w können die rohen Pakete in eine Datei geschrieben werden, statt diese zu parsen und im Terminal auszugeben. Die geschriebenen Pakete können zu einem späteren Zeitpunkt mit tcpdump und der Option -r ausgegeben werden. 

Wird als Dateipfad "-" angegeben, so schreibt tcpdump die Daten in den Standardoutput (stdout).

tcpdump -w [Dateipfad] [Filter]

-Z - Benutzer-(gruppe) festlegen

Wenn tcpdump mit Root-Rechten ausgeführt wird, ändert die Option -Z - nach dem Öffnen der zu erfassenden Netzwerkschnittstelle bzw. der mit -r zu parsenden Datei, aber vor dem Öffnen der Ausgabedatei - die Benutzer-ID auf die des angegebenen Benutzers und die Gruppen-ID auf dessen primäre Benutzergruppe. Die Option senkt somit das durch die Ausführung von tcpdump mit Root-Rechten bzw. dem gesetzten Setuid-Bit einhergehende Sicherheitsrisiko. 

Die Angabe des Benutzers erfolgt entweder mit ausgeschriebenem Namen oder allgemein mit "$USER".

tcpdump -Z [Benutzer] [Filter]

Filter

In diesem Abschnitt werden einige Filteroptionen von tcpdump gezeigt. Ein Filter besteht grundsätzlich aus einer Filteroption sowie einem oder mehreren Werten, welche auf die Option folgen. Werden keine Werte angegeben, so wird immer alles mitgeschnitten.

Die Angabe mehrerer Filter ist mithilfe der Ausdrücke "and", "or" und "not" möglich. Weiterhin können Ausdrücke auch mit "()" geklammert werden.

Filteroption

Wert

host

IP-Adresse / Hostname

net

Netzwerkbereich in CIDR-Notation

port

Zahl von 0-65535

portrange

Bereichsangabe Start-Ende im Bereich von 0-65535

src

host, net, port oder portrange

dst

host, net, port oder portrange

proto

ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp und udp

Abonniere JETZT unseren Newsletter!


Verpasse nie wieder neue Beiträge und exklusive Insider-Only-Inhalte!

Joel Benseler

Click Here to Leave a Comment Below

Leave a Comment: