Linux ist mit einer Fülle von Netzwerkdienstprogrammen ausgestattet, aus denen Sie wählen können. tcpdump ist ein solches leistungsstarkes Netzwerktool, das den Netzwerkverkehr erfassen und analysieren kann, falls Sie Netzwerkfehler unter Linux beheben müssen.

Lassen Sie uns den Befehl tcpdump praktisch anwenden und untersuchen, wie Sie ihn zum Erfassen des Netzwerkverkehrs verwenden können.

tcpdump unter Linux installieren

tcpdump wird normalerweise mit vorinstalliert geliefert alle Mainstream-Linux-Distributionen und sicherheitsbasierte Alternativen. Sie sollten es also sofort verwenden können, indem Sie es eingeben tcpdump mit einer sudo Präfix.

Falls Sie den tcpdump-Befehl nicht ausführen können und beim "tcpdump: Befehl nicht gefunden" Fehler, lernen wir, wie Sie tcpdump auf Ihrem Linux-Rechner installieren.

Um tcpdump zu installieren, starten Sie das Terminal und führen Sie den Befehl aus, der der Linux-Distribution entspricht, die Sie gerade verwenden:

Führen Sie auf Debian/Ubuntu-Derivaten Folgendes aus:

instagram viewer
sudo apt-erhalten tcpdump installieren

An Arch-basierte Systeme, Lauf:

sudo pacman -S tcpdump

Um das Dienstprogramm tcpdump unter Fedora, CentOS und RHEL zu installieren, geben Sie den folgenden Befehl ein:

sudo dnf Installieren tcpdump

Beachten Sie, dass, wenn Sie zur Installation aufgefordert werden libcap, eintippen Ja oder Y da es sich um eine Kernabhängigkeit handelt, ohne die tcpdump den Start verweigern wird. Dies sollte das Dienstprogramm tcpdump installieren und den Fehler „Befehl nicht gefunden“ beheben.

Nachdem tcpdump nun auf Ihrem System installiert wurde, wollen wir die verschiedenen Optionen und Funktionen untersuchen, die es bietet.

Erfassen des Netzwerkverkehrs mit tcpdump

tcpdump bietet viele Flags, um seine Ausführung zu modifizieren, aber es kann auch als eigenständiger Befehl ausgeführt werden. Das Ausführen von tcpdump ohne Flags oder Argumente würde jedoch sein volles Potenzial vernachlässigen. Es ist immer besser, ein paar Flags zu verwenden, um die Ausführung und Ausgabe nach Bedarf zu optimieren.

Geben Sie diesen Befehl ein, um Netzwerkübertragungen mit tcpdump zu überwachen:

sudo tcpdump

Jetzt beginnt tcpdump, Netzwerkpakete automatisch zu erfassen, bis ein Unterbrechungssignal wird mit verschickt Strg + Z um den Prozess manuell zu unterbrechen. Um die Gesamtzahl der erfassten Pakete zu begrenzen, verwenden Sie die -c -Flag und tippe daneben das gewünschte Paketlimit ein:

sudo tcpdump -c 5

Wenn Sie die Ausgabe im Moment nicht verstehen können, müssen Sie dies tun Machen Sie sich mit dem Ausgabeformat von tcpdump vertraut Erste.

Überprüfen Sie die verfügbaren Netzwerkschnittstellen mit tcpdump

Standardmäßig erfasst tcpdump Datenverkehr von allen verfügbaren Netzwerkschnittstellen. Wenn Sie mehrere aktive Netzwerkschnittstellen verwenden, möchten Sie möglicherweise die Netzwerkschnittstelle definieren, von der tcpdump Pakete erfassen soll. Um tcpdump auf einer bestimmten Schnittstelle zu starten, müssen Sie sich zunächst mit dem Namen der Schnittstelle vertraut machen.

So listen Sie alle verfügbaren Netzwerkschnittstellen mit tcpdump auf:

sudo tcpdump -D

Oder Sie können die hinzufügen --list-interfaces Flag zum Befehl:

sudo tcpdump --aufführen-Schnittstellen

Die zurückgegebene Ausgabe enthält eine Liste aller aktiven Netzwerkschnittstellen, die tcpdump überwachen kann. Um tcpdump so zu konfigurieren, dass Übertragungen von einer bestimmten Netzwerkschnittstelle erfasst werden, geben Sie diesen Befehl ein:

sudo tcpdump -i Schnittstellen-ID

Oder Sie können die hinzufügen --Schnittstelle Flag zum Befehl:

sudo tcpdump --SchnittstelleSchnittstellen-ID

Nachdem wir nun einige Pakete erfasst haben, wollen wir sie genau untersuchen und lernen, wie Sie die Ausgabe optimieren können, damit sie besser lesbar ist.

Erkunden von tcpdump-Filtern

tcpdump ist in der Lage, eine überwältigende Menge an Datenverkehr in einem einzigen Durchlauf zu erfassen. Eine solche Informationsüberlastung kann Sie bei der Untersuchung oder Fehlerbehebung von Problemen mit einem bestimmten Host oder Netzwerkprotokoll aus der Bahn werfen.

Hier kommen die tcpdump-Filter ins Spiel. Sie können den tcpdump-Befehl mit bestimmten Flags anhängen, um den Netzwerkverkehr herauszufiltern und bestimmte Pakete zu erfassen. Sie können diese Pakete dann speichern und später analysieren, um Netzwerkproblemen auf den Grund zu gehen. Lassen Sie uns lernen, wie man Filter in tcpdump verwendet.

Pakete basierend auf dem verwendeten Netzwerkprotokoll filtern

Um Pakete zu filtern, die über ein bestimmtes Protokoll übertragen werden, geben Sie den Protokollnamen mit dem Befehl tcpdump ein, und es werden nur Pakete erfasst, die über das definierte Netzwerkprotokoll übertragen werden.

Um beispielsweise ICMP-basierte Pakete zu erfassen, würden Sie einfach anhängen icmp am Ende des tcpdump-Befehls. Der Vorgang ist derselbe, wenn Sie nur UDP- oder TCP-Pakete erfassen möchten.

sudo tcpdump -c 5 icmp

Dieser Befehl gibt nur dann eine Ausgabe zurück, wenn ein Datenaustausch über das ICMP-Protokoll stattfindet.

Pakete basierend auf dem Host filtern

Sie können tcpdump so konfigurieren, dass Pakete, die sich auf einen einzelnen Host beziehen, mit dem erfasst werden Gastgeber Parameter. Dies ist besonders nützlich, wenn alle Systeme Ihres Netzwerks bis auf eines funktionieren. Mit diesem Filter können Sie gezielte Untersuchungen durchführen und den gesamten Workflow zur Fehlerbehebung beschleunigen, da Sie nicht durch unnötige Daten abgelenkt werden.

Um Pakete zu erfassen, die sich auf einen bestimmten Host beziehen, definieren Sie die Netzwerkadresse des Hosts mit dem Gastgeber Parameter:

sudotcpdump-c 5 Gastgeber 192.168.2.1

Ähnlich wie beim Netzwerkprotokollfilter gibt dieser Befehl nur dann eine Ausgabe zurück, wenn sich eine laufende Übertragung auf den definierten Host bezieht.

Pakete basierend auf dem aktiven Port filtern

tcpdump ist mit einem Parameter ausgestattet, mit dem Sie den Netzwerkverkehr filtern und nur Pakete erfassen können, die an oder von einem bestimmten Port übertragen werden.

Um Pakete zu erfassen, die von einem bestimmten Port kommen, hängen Sie die an Hafen Flag zum Befehl tcpdump und definieren Sie daneben die Portnummer. Um beispielsweise eingehenden oder ausgehenden HTTP-Datenverkehr zu erfassen, definieren Sie Port 80:

sudo tcpdump -c 5 Port 80

tcpdump lauscht auf Port 80 und wartet auf HTTP-Übertragungen. Sobald es HTTP-Pakete im Netzwerk erkennt, werden sie erfasst.

Kombinieren Sie Filter für eine erweiterte Sortierung

In den vorherigen Abschnitten wurde erläutert, wie Sie den Datenverkehr basierend auf Port, Protokoll oder Host filtern können, aber was wäre, wenn Sie wollten Datenverkehr von einem einzelnen Port eines bestimmten Hosts über ein bestimmtes Netzwerk erfassen Protokoll? Nun, Sie haben Glück, denn dies ist möglich, was auf die Fähigkeit zurückzuführen ist, logische Operatoren mit dem Befehl tcpdump zu verwenden.

Verwenden Sie diesen Befehl, um Pakete von einem einzelnen Host über Port 443 zu erfassen:

sudotcpdump-c 5 Gastgeber 192.168.2.1undHafen 443

Überprüfen Sie den Inhalt der erfassten Pakete

Standardmäßig zeigt tcpdump die Header eines Pakets in der Ausgabe an. Während es in den meisten Fällen mehr als genug ist, möchten oder müssen Sie manchmal tiefer in die erfassten Daten schauen. Sie können bestimmte Parameter mit dem Befehl tcpdump übergeben, um den Inhalt des erfassten Pakets zu untersuchen.

So können Sie den Inhalt der Pakete anzeigen:

sudo tcpdump -c 5 -x

Dieser Befehl gibt die Hex-Version des Inhalts in einem erfassten Paket zurück. Wenn Sie die ASCII-Form der Daten anzeigen möchten, können Sie die übergeben -EIN Parameter mit:

sudo tcpdump -A

tcpdump-Ausgabe in einer Datei speichern

Wie bei fast jedem anderen Linux-Befehlszeilentool können Sie die von tcpdump erzeugte Ausgabe in einer Datei speichern, auf die später verwiesen wird.

Dies kann durch Hinzufügen von erfolgen -w Flag zum Befehl. Bei der Ausführung speichert tcpdump die erfassten Daten in a .pcap Datei, die später mit tcpdump oder anderen Netzwerküberwachungstools wie Wireshark analysiert werden kann.

Geben Sie diesen Befehl ein, um die Ausgabe Ihres tcpdump-Befehls in einer Datei zu speichern:

sudotcpdump-wErfassung.pcap

A lesen .pcap Datei können Sie tcpdump mit der -r Parameter:

sudotcpdump-rErfassung.pcap

Linux wird mit einer Fülle von Netzwerktools ausgeliefert, die jedes Netzwerkproblem lösen können, solange es auf der Softwareseite der Dinge liegt. Zu wissen, wie man einige der besten Netzwerktools in Linux verwendet, wird sich definitiv als nützlich erweisen, egal ob Sie ein Systemadministrator sind, der beruflich Netzwerke verwaltet, oder nur ein alltäglicher Linux-Benutzer.

Da die tatsächliche Liste der verfügbaren Netzwerkbefehle zu umfangreich sein kann, finden Sie hier eine Liste mit einigen der wichtigsten Linux-Netzwerktools, die Sie kennen sollten.