Mit dem Linux-Befehl tcpdump können Sie Pakete ana­ly­sie­ren, die innerhalb Ihres Netzwerks ver­schickt werden. Durch zahl­rei­che Optionen und Filter kann diese Analyse noch optimiert werden.

Was ist Linux-tcpdump?

Für die Analyse Ihres Netz­werk­ver­kehrs auf Linux und das even­tu­el­le Beheben von Netz­werk­pro­ble­men ist tcpdump ein besonders wert­vol­les Tool. Das Kom­man­do­zei­len­pro­gramm ist bei fast allen gängigen Linux-Dis­tri­bu­tio­nen, z. B. Debian oder Ubuntu, bereits vor­in­stal­liert und überträgt In­for­ma­tio­nen über Da­ten­pa­ke­te, die in Ihrem Netzwerk gesendet oder empfangen werden. Trotz seines Namens ist Linux-tcpdump dabei nicht nur für TCP-Pakete geeignet, sondern kann auch UDP- und ICMP-Pakete ana­ly­sie­ren. Um den Befehl zu verwenden, benötigen Sie al­ler­dings Root-Rechte.

Wie funk­tio­niert der tcpdump-Befehl?

Die Analyse, die tcpdump durch­führt, wird auch als „Sniffing“ be­zeich­net. Mit Hilfe des Linux-tcpdump-Befehls geben Sie die Netz­werk­schnitt­stel­le an, die das Programm über­prü­fen soll. Dazu gibt es zahl­rei­che Filter, mit denen Sie den Prozess anpassen und op­ti­mie­ren. Der Command wird in der Be­fehls­zei­le aus­ge­führt, wo dann auch die ent­spre­chen­den Er­geb­nis­se der Analyse aus­ge­spielt werden.

Wie sieht die Syntax von tcpdump aus?

Die Syntax von Linux-tcpdump ist sehr einfach und sieht so aus:

$ tcpdump [Optionen] [Filter]
bash

Zwar müssen Sie keine Optionen angeben, um al­ler­dings zu ge­währ­leis­ten, dass tcpdump auch das richtige Netz­werk­in­ter­face be­rück­sich­tigt, sind diese dennoch emp­feh­lens­wert. Auch die Filter sind optional. Wird jedoch kein Filter angegeben, ana­ly­siert Linux-tcpdump alle Pakete von sämt­li­chen Hosts, was schnell un­über­sicht­lich werden kann.

Welche Optionen und Filter hat der Linux-tcpdump-Befehl?

tcpdump hat zahl­rei­che Optionen und Filter. Die wich­tigs­ten Optionen sind diese:

  • -A: So wird der Inhalt eines Pakets als ASCII aus­ge­ge­ben.
  • -c [Anzahl]: So wird tcpdump au­to­ma­tisch beendet, wenn eine bestimmte Anzahl von Paketen ana­ly­siert wurde.
  • -D: Mit dieser Option werden alle ver­füg­ba­ren In­ter­faces auf­ge­lis­tet.
  • -i [Interface]: Mit dieser Option bestimmen Sie, welches Interface mit­ge­schnit­ten werden soll.
  • -s [Anzahl]: Diese Option legt fest, wie viele Bytes pro Paket mit­ge­schnit­ten werden sollen.

Diese Filter können Sie für tcpdump verwenden:

  • dst: Es werden lediglich Pakete ana­ly­siert, deren Ziel den fest­ge­leg­ten Wert hat. Dieser kann host, net, port oder portrange sein.
  • host: Dieser Filter sorgt dafür, dass lediglich Pakete be­rück­sich­tigt werden, die als Quelle oder Ziel eine bestimmte IP-Adresse oder al­ter­na­tiv einen be­stimm­ten Hostnamen haben.
  • net: Dieser Filter be­rück­sich­tigt aus­schließ­lich Pakete, die als Quelle oder Ziel eine IP-Adresse aus einem fest­ge­leg­ten Netz­werk­be­reich haben.
  • port: Mit diesem Filter legen Sie einen be­stimm­ten Port zwischen 0 und 65535 fest, der aus­schließ­lich ana­ly­siert werden soll.
  • portrange: Dieser Filter enthält einen Port­be­reich zwischen 0 und 65535, der aus­schließ­lich be­rück­sich­tigt wird.
  • proto: Dieser Filter be­rück­sich­tigt aus­schließ­lich Pakete mit einem be­stimm­ten Netz­werk­pro­to­koll. Der Filter kann folgende Werte haben: arp, decnet, ether, fddi, ip, ip6, rarp, tcp, udp oder wlan.
  • src: Mit diesem Filter werden nur Pakete ana­ly­siert, deren Quelle einen be­stimm­ten Wert hat. Dieser kann host, net, port oder portrange lauten.

Beispiele für den tcpdump-Befehl

Ab­schlie­ßend zeigen wir Ihnen noch, wie Sie tcpdump einsetzen können. In unseren Bei­spie­len nutzen wir dafür den Linux-sudo-Befehl.

$ sudo tcpdump -D
bash

So über­prü­fen Sie zunächst, welche Netz­werk­schnitt­stel­len vorhanden sind.

$ sudo tcpdump -i wlx14a3c782966b
bash

So ana­ly­sie­ren Sie lediglich das Interface mit dem an­ge­ge­be­nen Namen.

$ sudo tcpdump -c 5 -i wlx14a3c782966b
bash

So bewirken Sie, dass tcpdump nur fünf Pakete mit­schnei­det.

Zum Hauptmenü