Julia Evans, die Autorin des Materials, das wir heute veröffentlichen, hat beschlossen, über eines ihrer bevorzugten Netzwerk-Tools namens
Wireshark zu sprechen. Dies ist ein leistungsstarkes und komplexes Programm, das mit einer grafischen Oberfläche ausgestattet ist, um den Verkehr in Computernetzwerken zu analysieren. Julia sagt, dass sie in der Praxis nur einige der Funktionen von Wireshark verwendet, aber diese sind normalerweise nützlich. Hier möchte sie mit allen teilen, die eine Geschichte über die nützlichsten Methoden der Arbeit mit dem Programm wünschen, und hofft, dass sie nicht nur für sie, sondern auch für alle nützlich sind, die Netzwerkprobleme lösen müssen.

Installieren Sie Wireshark
Wireshark-Distributionen für verschiedene Betriebssysteme finden Sie
hier . Um das Programm zu installieren, können Sie die entsprechende Datei herunterladen und installieren. Wenn Sie Linux-Distributionen verwenden, die auf Debian basieren, können Sie
sudo apt install wireshark
Befehl
sudo apt install wireshark
. Wenn Sie die neueste Version des Programms finden möchten, können Sie sich auf das persönliche Archiv der
wireshark-dev- Pakete beziehen.
So sieht die Programmoberfläche aus.
Wireshark-SchnittstelleAuf den ersten Blick mag dies alles zu kompliziert erscheinen: eine lange Liste von Paketen, ein mysteriöses Feld für die Eingabe von Anfragen ... Wie arbeite ich mit Wireshark?
Analyse von PCAP-Dateien
Normalerweise benutze ich Wireshark, um die Ursachen von Netzwerkproblemen herauszufinden. Die Abfolge der Aktionen, die zur Lösung solcher Probleme ausgeführt werden, sieht folgendermaßen aus:
- Erfassen Sie Pakete mit
tcpdump
(normalerweise mit einem Befehl wie sudo tcpdump port 443 -w output.pcap
). - Kopieren der pcap-Datei auf einen funktionierenden Laptop (
scp host:~/output.pcap .
). - Öffnen einer pcap-Datei mit Wireshark (
wireshark output.pcap
).
Wie Sie sehen können, ist alles sehr einfach. Nachdem die pcap-Datei im Programm geöffnet wurde, haben Sie möglicherweise eine logische Frage, was Sie mit all dem tun sollen. Reden wir darüber.
TCP-Verbindungsanalyse
Wenn ich eine bestimmte Situation in Wireshark analysiere, muss ich häufig eine bestimmte TCP-Verbindung überprüfen, mit der aus irgendeinem Grund etwas nicht stimmt. Dank Wireshark können Sie den gesamten Lebenszyklus einer einzelnen TCP-Verbindung analysieren und die Ursachen für falsches Systemverhalten herausfinden.
Klicken Sie dazu mit der rechten Maustaste auf das gewünschte Paket und wählen Sie im Kontextmenü den Befehl
Conversation filter > TCP
.
Starten Sie die TCP-VerbindungsanalyseDanach zeigt Wireshark andere Pakete von derselben TCP-Verbindung an, zu der das Paket gehört, auf das Sie geklickt haben. In der folgenden Abbildung sehen Sie ein Beispiel für eine erfolgreiche SSL-Verbindung: Es gibt
client hello
,
service hello
,
certificate
und
server key exchange
, die zum Herstellen von SSL-Verbindungen verwendet werden.
TCP-VerbindungsanalyseDie hier beschriebene TCP-Paketanalysetechnik musste ich an dem Tag anwenden, an dem dieser Artikel bei der Arbeit geschrieben wurde. Einige Verbindungen wurden getrennt, und ich bemerkte, dass der
client hello
nach dem Senden des
client hello
Pakets das
FIN ACK
Paket gesendet hat, wodurch die TLS-Verbindung beendet wurde. Was ich herausfinden konnte, erwies sich als nützlich, da klar wurde, dass der Client und nicht der Server die Verbindung beendeten. Infolgedessen stellte ich sofort fest, dass das Problem beim Kunden liegt, und ich muss darauf achten.
Das Obige ist ein für mich sehr typisches Schema für die Arbeit mit Wireshark. Normalerweise sind Client und Server an der Verbindung beteiligt, und entweder auf dem Client oder auf dem Server ist ein Fehler aufgetreten. Dies kann beispielsweise ein Fehler in den Systemeinstellungen sein. Infolgedessen bietet uns Wireshark eine unschätzbare Hilfe bei der Identifizierung des Täters der Probleme und hilft herauszufinden, ob es sich um einen Client oder einen Server handelt.
Als Team dekodieren
Um zu verstehen, was genau ein bestimmtes Paket ist, verwendet Wireshark Portnummern, und dieser Ansatz funktioniert normalerweise. Wenn ein Programm beispielsweise Datenverkehr auf Port 80 sieht, entscheidet es, dass es sich um HTTP-Datenverkehr handelt, und normalerweise ist dies der Fall.
Manchmal verwenden HTTP-Verbindungen jedoch ungewöhnliche Ports. Daher benötigt Wireshark Hinweise, um sie zu erkennen. Solche Hinweise können dem Programm gegeben werden, indem das Paketkontextmenü aufgerufen und dort der Befehl
Decode as
. Außerdem können Sie Wireshark mitteilen, welches Protokoll zum Übertragen von Paketen über einen bestimmten Port verwendet wird. Diese Hinweise vereinfachen die Datenanalyse.
Paketinhalt anzeigen
In Wireshark gibt es einfach einen reizvollen Modus zum Anzeigen detaillierter Informationen zu einem Paket, mit dem Sie den Inhalt jedes Pakets verstehen können. Nehmen Sie zum Beispiel das Paket mit der
client hello
Nachricht aus dem vorherigen Beispiel. Dies ist das erste Paket der SSL-Verbindung, der Client mit seiner Hilfe sagt: „Hallo! Hier bin ich! "
Wireshark bietet dem Netzwerkadministrator zwei unglaublich nützliche Tools zum Überprüfen des Paketinhalts. Der erste ist ein Anzeigemodus, in dem Sie die für das Paket verfügbaren Header (z. B. Ethernet-Header, IP-Header, TCP-Header) erweitern und deren Inhalt anzeigen können.
Paket-Header-AnalyseDie zweite Art, Pakete anzuzeigen, ist ein echtes Wunder. Hier sehen Sie die Rohpaketdaten als eine Folge von Bytes. Und was besonders schön ist, wenn Sie mit der Maus über ein Byte fahren (in der folgenden Abbildung befindet sich der Cursor beispielsweise auf dem in
tiles.services.mozilla.com
enthaltenen
tiles.services.mozilla.com
), zeigt
tiles.services.mozilla.com
das Programm in der Statusleiste an, zu welchem Feld es gehört dieses Byte (in diesem Fall das Feld
ssl.handshake.extensions_server_name
) und den von Wireshark für dieses Feld verwendeten Codenamen (in diesem Fall -
ssl.handshake.extensions_server_name
)
RohpaketdatenanalysePaketsuche
Wireshark unterstützt eine leistungsstarke Abfragesprache. Dies vereinfacht die Suche nach bestimmten Paketen in Listen erheblich. Normalerweise verwende ich bei der Arbeit mit einem Programm sehr einfache Abfragen. Hier einige Beispiele:
- Der
frame contains "mozilla"
-Abfrage, mit der Sie an einer beliebigen Stelle im Paket nach der mozilla
Zeile suchen und die gefundenen Pakete auflisten können. - Die
tcp.port == 443
zeigt Pakete an, die den TCP-Port 443 verwenden. - Die Abfrage
dns.resp.len > 0
zeigt alle DNS-Antworten an - Die
ip.addr == 52.7.23.87
zeigt Pakete an, deren Quell- oder Ziel-IP-Adresse 52.7.23.87 lautet.
Die Wireshark-Abfragesprache verfügt über wesentlich größere Funktionen als die Abfragesprache
tcpdump
(und unterstützt außerdem die automatische Vervollständigung durch Drücken der TAB-Taste). Infolgedessen verwende ich häufig die folgende Abfolge von Aktionen: Ich erfasse eine große Menge von Paketen mit
tcpdump
(etwa alle Pakete von Port 443) und untersuche sie dann sorgfältig mit Wireshark.
Details zur Dauer der TCP-Verbindung anzeigen
Manchmal muss ich besonders auf das Studium langsamer TCP-Verbindungen achten. Wie geht das, vorausgesetzt, meine Datei enthält Aufzeichnungen von Tausenden von Paketen? Wie finde ich langsame TCP-Verbindungen?
Wenn Sie im Hauptmenü des Programms
Statistics
und im Befehl
Conversations
Option
Statistics
auswählen, stellt Wireshark uns wunderbare statistische Informationen zur Verfügung.
Statistische InformationenInsbesondere können Sie hier in der Spalte Dauer die Dauer von TCP-Verbindungen anzeigen, die längste von ihnen identifizieren und sie sorgfältig untersuchen. Dies ist eine sehr nützliche Funktion.
Wireshark Update
Wenn Sie Wireshark schon lange nicht mehr aktualisiert haben, lohnt es sich, dies zu tun. Zum Beispiel habe ich kürzlich auf einem funktionierenden Laptop nach HTTP / 2-Paketen gesucht. Damals war es nicht einfach für mich und ich beschloss, mir die Dokumentation anzusehen. Wie sich herausstellte, hatte ich eine alte Version des Programms. In dem von mir installierten Update wurde die HTTP / 2-Unterstützung erheblich verbessert, dh es gab genau das, was ich damals brauchte.
Verwenden von Wireshark zum Erlernen von Netzwerkprotokollen
Dieser Artikel enthält einige Begriffe, die auf die Fachsprache der Netzwerkspezialisten zurückgeführt werden können. Beispiel: Frame, TCP-Port (TCP-Port), DNS-Antwort (DNS-Antwort), Quell-IP-Adresse (Quell-IP-Adresse),
client hello
Paket-SSL-Verbindungen (SSL-Client-Hallo). Einer der Gründe für ihre Verwendung ist die Tatsache, dass Wireshark definitiv nicht versucht, den Benutzer vor den Komplikationen der internen Struktur von Netzwerktechnologien zu schützen. Für einen Anfänger kann dieser Zustand zunächst den Eindruck erwecken, dass Wireshark kein Programm für ihn ist, sondern nur für erfahrene Netzwerkspezialisten.
Wiresharks Fokus auf Low-Level-Netzwerkmechanismen hat jedoch ein großes Plus. Tatsache ist, dass Sie mit diesem Programm etwas Neues über Netzwerkprotokolle lernen können. Zum Beispiel weiß ich nicht viel über die internen Mechanismen des TLS / SSL-Protokolls. Bei der Analyse des Datenverkehrs in Wireshark stellte ich jedoch fest, dass die ersten beiden Pakete der SSL-Verbindung
client hello
und
server hello
. Infolgedessen nimmt das Protokoll, das, wenn man sich nicht mit den Details seiner Arbeit befasst, mysteriös und für das Verständnis unzugänglich erscheint, eine verständlichere Form an und wird zu etwas, das verstanden und analysiert werden kann.
Zusammenfassung
Wireshark hat enorme Chancen. Hier haben wir nur über einige von ihnen gesprochen. Die hier diskutierten Arbeitsmethoden werden laut dem Autor des Materials jedoch in etwa 95% der Situationen verwendet, in denen Wireshark benötigt wird. Deshalb hoffen wir, dass auch das Wenige, das Sie heute gelernt haben, für Sie nützlich ist.
Liebe Leser! Verwenden Sie Wireshark?
