Tshark-Ausgabe an Tools weiterleiten

WiresharkWiresharkBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie Netzwerkverkehr mithilfe von Kommandozeilentools erfassen und analysieren können, indem Sie die Ausgabe von Tshark an andere Werkzeuge weiterleiten. Sie üben das Erfassen von Paketen auf der eth1-Schnittstelle mit tcpdump, das Filtern von Fehlermeldungen mit grep und das Zählen der Übereinstimmungen mit wc -l.

Das Lab konzentriert sich auf praktische Techniken zur Netzwerkfehlersuche, einschließlich des Speicherns von Erfassungen im pcap-Format für eine spätere Analyse. Sie lernen, Schnittstellen zu überprüfen, Filter anzuwenden und den Workflow der Paketanalyse über Unix-Pipes und Dateioperationen zu optimieren.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") subgraph Lab Skills wireshark/packet_capture -.-> lab-548935{{"Tshark-Ausgabe an Tools weiterleiten"}} wireshark/export_packets -.-> lab-548935{{"Tshark-Ausgabe an Tools weiterleiten"}} wireshark/packet_analysis -.-> lab-548935{{"Tshark-Ausgabe an Tools weiterleiten"}} end

Netzwerkverkehr mit -i eth1 erfassen

In diesem Schritt lernen Sie, wie Sie Netzwerkverkehr auf der eth1-Schnittstelle mithilfe grundlegender Linux-Befehle erfassen können. Die eth1-Schnittstelle ist in Linux-Systemen typischerweise die primäre Netzwerkschnittstelle und repräsentiert die erste Ethernet-Verbindung Ihres Geräts.

Bevor Sie den Netzwerkverkehr erfassen, ist es wichtig zu überprüfen, ob die Schnittstelle existiert und aktiv ist. Netzwerkschnittstellen können physisch (wie Ethernet-Anschlüsse) oder virtuell (wie VPN-Verbindungen) sein. Führen Sie diesen Befehl aus, um den Status Ihrer eth1-Schnittstelle zu überprüfen:

ip link show eth1

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:16:3e:5e:6c:00 brd ff:ff:ff:ff:ff:ff

Der Status UP zeigt an, dass die Schnittstelle aktiv ist. Jetzt verwenden wir tcpdump, ein grundlegendes Tool zur Netzwerkanalyse, mit dem Sie den Netzwerkverkehr in Echtzeit anzeigen können. Dieser grundlegende Erfassungsbefehl hilft Ihnen zu verstehen, was auf Ihrem Netzwerk passiert:

sudo tcpdump -i eth1 -c 5

Lassen Sie uns analysieren, was dieser Befehl macht:

  • -i eth1: Gibt an, welche Netzwerkschnittstelle überwacht werden soll (in diesem Fall eth1)
  • -c 5: Begrenzt die Erfassung auf 5 Pakete, was für eine Demonstration ausreicht, ohne Ihr Terminal zu überfüllen

Die Ausgabe zeigt Details zu den Paketen, einschließlich Zeitstempeln, Quell- und Ziel-IP-Adressen sowie Protokollinformationen:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
12:34:56.789012 IP 192.168.1.100.22 > 192.168.1.1.12345: Flags [P.], seq 1:21, ack 1, win 501, length 20
12:34:56.789123 IP 192.168.1.1.12345 > 192.168.1.100.22: Flags [.], ack 21, win 1024, length 0
...
5 packets captured
5 packets received by filter
0 packets dropped by kernel

Für eine detailliertere Analyse möchten Sie die Pakete in einer Datei speichern. PCAP-Dateien bewahren alle Paketdaten auf und können in grafischen Tools wie Wireshark geöffnet werden. Dieser Befehl erstellt eine Erfassungsdatei:

sudo tcpdump -i eth1 -c 5 -w ~/project/eth1_capture.pcap

Das -w-Flag schreibt die Pakete in die Datei eth1_capture.pcap in Ihrem Projektverzeichnis. Dieses binäre Format behält alle ursprünglichen Paketinformationen genau so bei, wie sie erfasst wurden.

Fehler filtern mit | grep "ERROR"

In diesem Schritt lernen Sie, wie Sie Netzwerkverkehr nach Fehlermeldungen filtern können, indem Sie den grep-Befehl verwenden. Dies ist besonders nützlich, wenn Sie große Paketerfassungen analysieren und nur die Pakete sehen möchten, die Fehler enthalten. Der Pipe-Operator (|) in Linux ermöglicht es Ihnen, die Ausgabe eines Befehls als Eingabe für einen anderen Befehl zu verwenden und so leistungsstarke Analyseworkflows zu erstellen.

Zunächst betrachten wir die Erfassungsdatei, die wir im vorherigen Schritt erstellt haben. Führen Sie den folgenden Befehl aus, um den Inhalt der pcap-Datei im Textformat anzuzeigen. Dadurch wird die binäre Paketdaten in eine menschenlesbare Form umgewandelt:

tcpdump -r ~/project/eth1_capture.pcap

Jetzt erstellen wir eine Beispielprotokolldatei, die sowohl normale als auch Fehlermeldungen enthält, um die Funktionsweise von grep zu verstehen, bevor wir es auf echten Netzwerkverkehr anwenden:

echo -e "INFO: Connection established\nERROR: Authentication failed\nINFO: Data transfer complete\nERROR: Connection timeout" > ~/project/network.log

Um nur die Fehlermeldungen aus dieser Protokolldatei zu filtern, verwenden wir grep mit dem Muster "ERROR". grep durchsucht den Text zeilenweise und gibt nur die Zeilen aus, die dem Muster entsprechen:

grep "ERROR" ~/project/network.log

Sie sollten eine Ausgabe sehen, die nur die Fehlerzeilen enthält:

ERROR: Authentication failed
ERROR: Connection timeout

Jetzt wenden wir dies auf unsere tatsächliche Paketerfassung an. Zunächst müssen wir die pcap-Datei in ein lesbares Textformat umwandeln, da grep mit Textdateien arbeitet. Dies erstellt eine Textversion unserer Paketerfassung:

tcpdump -r ~/project/eth1_capture.pcap > ~/project/packets.txt

Dann filtern wir nach allen Fehlermeldungen in den umgewandelten Paketdaten. Wir verwenden den -i-Schalter, um die Suche Groß- und Kleinschreibungsegal zu machen, was bedeutet, dass es "error", "ERROR" oder jede andere Schreibweise findet:

grep -i "error" ~/project/packets.txt

Der -i-Schalter macht die Suche Groß- und Kleinschreibungsegal. Wenn es Pakete mit "error" (in beliebiger Schreibweise) gibt, werden sie angezeigt. Dies hilft, sicherzustellen, dass wir keine Fehlermeldungen aufgrund unterschiedlicher Schreibweisen in Netzwerkprotokollen übersehen.

Übereinstimmungen zählen mit | wc -l

In diesem Schritt lernen wir, wie wir Netzwerkfehler quantifizieren können, indem wir die übereinstimmenden Zeilen mit dem wc -l-Befehl zählen. Diese Technik hilft Netzwerkadministratoren, die Häufigkeit von Fehlern im erfassten Netzwerkverkehr zu verstehen.

Bevor wir zählen, lassen Sie uns zunächst die Fehlermeldungen überprüfen, die wir zuvor identifiziert haben. Der folgende Befehl zeigt alle Zeilen an, die "error" (Groß- und Kleinschreibung egal) aus unserer Paketerfassungsdatei enthalten:

grep -i "error" ~/project/packets.txt

Um diese Fehlerauftritte zu zählen, anstatt sie anzuzeigen, verwenden wir eine Pipe (|), um die Ausgabe von grep an wc -l zu senden. Der wc-Befehl zählt Wörter, Zeilen oder Zeichen, und die -l-Option zählt speziell die Zeilen:

grep -i "error" ~/project/packets.txt | wc -l

Der Befehl gibt eine einfache Zahl aus, die angibt, wie viele Fehlermeldungen gefunden wurden:

2

Zur Verdeutlichung zählen wir auch die Gesamtzahl der Pakete in unserer Erfassungsdatei. Dies hilft uns zu verstehen, welchen Anteil des Netzwerkverkehrs Fehler ausmachen:

wc -l ~/project/packets.txt

Die Ausgabe zeigt sowohl die Anzahl als auch den Dateinamen:

50 packets.txt

Um die Fehlerrate als Prozentzahl zu berechnen, verwenden wir einfache Shell-Arithmetik. Zunächst speichern wir die Anzahl der Fehler und die Gesamtzahl der Pakete in Variablen und führen dann die Berechnung mit bc (einem einfachen Taschenrechnerprogramm) aus:

errors=$(grep -i "error" ~/project/packets.txt | wc -l)
total=$(wc -l < ~/project/packets.txt)
echo "scale=2; ($errors/$total)*100" | bc

Die Einstellung scale=2 sagt bc, dass das Ergebnis mit zwei Dezimalstellen angezeigt werden soll:

4.00

In Datei speichern mit > output.txt

In diesem Schritt werden wir untersuchen, wie man die Ergebnisse der Netzwerkanalyse in Dateien speichert, um sie zu dokumentieren und weiter zu untersuchen. Wenn man mit der Ausgabe von Tshark arbeitet, ist es oft nützlich, gefilterte Daten separat zu speichern, anstatt sie nur im Terminal anzuzeigen.

Zunächst lassen Sie uns den Befehl in Erinnerung rufen, den wir zuvor verwendet haben, um die Anzahl der Fehler in unserer Paketerfassung zu zählen:

grep -i "error" ~/project/packets.txt | wc -l

Der >-Operator in Linux ermöglicht es uns, die Ausgabe eines Befehls in eine Datei umzuleiten, anstatt sie auf dem Bildschirm anzuzeigen. Um nur die numerische Anzahl der Fehler in eine neue Datei namens error_count.txt zu speichern, ändern wir unseren Befehl wie folgt:

grep -i "error" ~/project/packets.txt | wc -l > ~/project/error_count.txt

Nachdem Sie diesen Befehl ausgeführt haben, können Sie überprüfen, ob die Datei genau das enthält, was wir erwarten - nur die Anzahl der Fehler:

cat ~/project/error_count.txt

Manchmal benötigen wir mehr als nur Zahlen - wir möchten die tatsächlichen Fehlermeldungen für die Analyse haben. Um alle übereinstimmenden Fehlerzeilen in eine Datei zu speichern, entfernen wir den Wortzählanteil:

grep -i "error" ~/project/packets.txt > ~/project/error_messages.txt

Überprüfen Sie den Inhalt, um sicherzustellen, dass alle Fehlermeldungen erfasst wurden:

cat ~/project/error_messages.txt

Für die laufende Überwachung möchten wir möglicherweise vorhandenen Dateien hinzufügen, anstatt sie zu überschreiben. Der >>-Operator hängt Inhalte an Dateien an. So erstellen Sie einen zeitgestempelten Fehlerbericht:

echo "Error count at $(date):" >> ~/project/error_report.txt
grep -i "error" ~/project/packets.txt | wc -l >> ~/project/error_report.txt

Sehen Sie sich Ihre wachsende Berichtsdatei an, um die gesammelten Daten zu sehen:

cat ~/project/error_report.txt

Zusammenfassung

In diesem Lab haben Sie praktische Techniken zur Netzwerkverkehrserfassung und -analyse mit Kommandozeilentools gelernt. Die Übungen umfassten die Paketerfassung mit tcpdump, die Schnittstellenüberprüfung mit ip link show und die Erstellung von PCAP-Dateien für die Offline-Analyse.

Sie haben auch effiziente Datenverarbeitungsmethoden durch Pipe-Operationen erkundet, einschließlich der Fehlerfilterung mit grep, der Zählung von Übereinstimmungen über wc -l und der Umleitung der Ausgabe in Textdateien. Mit diesen Fähigkeiten können Sie gezielt Netzwerkinformationen extrahieren, um effektiv Probleme zu beheben.