Linux-tcpdump-Befehl: So analysieren Sie Pakete in Ihrem Netzwerk

Mit dem Linux-Befehl tcpdump können Sie Pakete analysieren, die innerhalb Ihres Netzwerks verschickt werden. Durch zahlreiche Optionen und Filter kann diese Analyse noch optimiert werden.

Was ist Linux-tcpdump?

Für die Analyse Ihres Netzwerkverkehrs auf Linux und das eventuelle Beheben von Netzwerkproblemen ist tcpdump ein besonders wertvolles Tool. Das Kommandozeilenprogramm ist bei fast allen gängigen Linux-Distributionen, z. B. Debian oder Ubuntu, bereits vorinstalliert und überträgt Informationen über Datenpakete, 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 analysieren. Um den Befehl zu verwenden, benötigen Sie allerdings Root-Rechte.

Wie funktioniert der tcpdump-Befehl?

Die Analyse, die tcpdump durchführt, wird auch als „Sniffing“ bezeichnet. Mit Hilfe des Linux-tcpdump-Befehls geben Sie die Netzwerkschnittstelle an, die das Programm überprüfen soll. Dazu gibt es zahlreiche Filter, mit denen Sie den Prozess anpassen und optimieren. Der Command wird in der Befehlszeile ausgeführt, wo dann auch die entsprechenden Ergebnisse der Analyse ausgespielt 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 allerdings zu gewährleisten, dass tcpdump auch das richtige Netzwerkinterface berücksichtigt, sind diese dennoch empfehlenswert. Auch die Filter sind optional. Wird jedoch kein Filter angegeben, analysiert Linux-tcpdump alle Pakete von sämtlichen Hosts, was schnell unübersichtlich werden kann.

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

tcpdump hat zahlreiche Optionen und Filter. Die wichtigsten Optionen sind diese:

  • -A: So wird der Inhalt eines Pakets als ASCII ausgegeben.
  • -c [Anzahl]: So wird tcpdump automatisch beendet, wenn eine bestimmte Anzahl von Paketen analysiert wurde.
  • -D: Mit dieser Option werden alle verfügbaren Interfaces aufgelistet.
  • -i [Interface]: Mit dieser Option bestimmen Sie, welches Interface mitgeschnitten werden soll.
  • -s [Anzahl]: Diese Option legt fest, wie viele Bytes pro Paket mitgeschnitten werden sollen.

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

  • dst: Es werden lediglich Pakete analysiert, deren Ziel den festgelegten Wert hat. Dieser kann host, net, port oder portrange sein.
  • host: Dieser Filter sorgt dafür, dass lediglich Pakete berücksichtigt werden, die als Quelle oder Ziel eine bestimmte IP-Adresse oder alternativ einen bestimmten Hostnamen haben.
  • net: Dieser Filter berücksichtigt ausschließlich Pakete, die als Quelle oder Ziel eine IP-Adresse aus einem festgelegten Netzwerkbereich haben.
  • port: Mit diesem Filter legen Sie einen bestimmten Port zwischen 0 und 65535 fest, der ausschließlich analysiert werden soll.
  • portrange: Dieser Filter enthält einen Portbereich zwischen 0 und 65535, der ausschließlich berücksichtigt wird.
  • proto: Dieser Filter berücksichtigt ausschließlich Pakete mit einem bestimmten Netzwerkprotokoll. Der Filter kann folgende Werte haben: arp, decnet, ether, fddi, ip, ip6, rarp, tcp, udp oder wlan.
  • src: Mit diesem Filter werden nur Pakete analysiert, deren Quelle einen bestimmten Wert hat. Dieser kann host, net, port oder portrange lauten.

Beispiele für den tcpdump-Befehl

Abschließend zeigen wir Ihnen noch, wie Sie tcpdump einsetzen können. In unseren Beispielen nutzen wir dafür den Linux-sudo-Befehl.

$ sudo tcpdump -D
bash

So überprüfen Sie zunächst, welche Netzwerkschnittstellen vorhanden sind.

$ sudo tcpdump -i wlx14a3c782966b
bash

So analysieren Sie lediglich das Interface mit dem angegebenen Namen.

$ sudo tcpdump -c 5 -i wlx14a3c782966b
bash

So bewirken Sie, dass tcpdump nur fünf Pakete mitschneidet.