arrow_back

Einführung in „tcpdump“

Anmelden Teilnehmen
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Einführung in „tcpdump“

Lab 1 Stunde universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Einführung

In diesem Lab lernen Sie das Tool „tcpdump“ und einige seiner Funktionen kennen. „tcpdump“ ist das führende Tool zur Überwachung und Auswertung von Netzwerkverkehr für IT-Sicherheits- und Netzwerkexperten. Als IT-Supportmitarbeiter ist es wichtig, dass Sie mit diesem Programm vertraut sind, wenn Sie TCP/IP verstehen möchten. Mithilfe von „tcpdump“ können Sie den Netzwerkverkehr auf eine Weise darstellen lassen, die Ihnen die Analyse und Fehlerbehebung erleichtert.

Sie haben für die Bearbeitung dieses Labs 60 Minuten Zeit.

Aufgabe

  • Grundlegende Befehle: Sie erfahren, wie „tcpdump“ funktioniert, welche Bedeutungen einige der Flags haben und wie Sie die Ausgabe interpretieren.
  • Paketaufzeichnungen: Sie werden üben, wie Sie aufgezeichnete Pakete in Dateien speichern und anschließend wieder auslesen können.

Für einige Abschnitte dieses Labs müssen Sie mehrere Terminals gleichzeitig verwenden – öffnen Sie also ein Terminal und ein zusätzliches Verbindungsterminal. So können Sie mehrere SSH-Verbindungen zu einer VM herstellen.

Lab einrichten

Lab starten

Damit Sie auf das Material im Betriebssystem der virtuellen Maschine zugreifen können, müssen Sie das Lab starten. Klicken Sie dazu oben auf dem Bildschirm auf die grüne Schaltfläche „Lab starten“.

Hinweis: Für dieses Lab werden Sie über Ihren lokalen SSH-Client auf die Linux-VM zugreifen und nicht über die Google Console. Die Schaltfläche Open GCP Console (GCP Console öffnen) gibt es für dieses Lab also nicht.

Lab starten

Nachdem Sie auf die Schaltfläche „Lab starten“ geklickt haben, werden Ihnen auf Ihrem Bildschirm links die Details der SSH-Verbindung angezeigt. Der Bildschirm sollte so aussehen:

Verbindungsdetails

Auf die virtuelle Maschine zugreifen

Die Zugriffsmethode richtet sich nach dem Betriebssystem auf Ihrem Gerät. Es gibt drei Möglichkeiten, die wir unten für Sie beschrieben haben.

Hinweis: Mit Qwiklabs zu arbeiten kann der Arbeit ähneln, die Sie als Teil des IT-Supportteams ausführen würden, denn Sie interagieren dabei mit modernster Technologie, bei der für den Zugriff mehrere Schritte erforderlich sind – und damit möglicherweise auch relativ viel Geduld und Ausdauer. Sie werden auch SSH nutzen, um auf die Labs zuzugreifen. Wie Sie damit umgehen, ist etwas, das Sie als IT-Supportmitglied unbedingt wissen sollten, und Sie können es mit den Labs üben.

Option 1: VM-Zugriff für Windows-Nutzer

Bei dieser Methode verwenden Sie den PuTTY Secure Shell (SSH)-Client und die externe IP-Adresse Ihrer VM.

PPK-Schlüsseldatei herunterladen

Laden Sie auf der Qwiklabs-Seite „Lab starten“ die private Schlüsseldatei für Ihre VM im PuTTY-kompatiblen Format PPK herunter. Klicken Sie dazu auf PPK-Datei herunterladen.

PPK

VM-Verbindung über SSH und PuTTY einrichten

  1. Sie können PuTTY hier herunterladen.

  2. Geben Sie in das Feld Host Name (or IP address) „nutzername@externe_ip_adresse“ ein.

Hinweis: Ersetzen Sie nutzername und externe_ip_adresse durch die im Lab angegebenen Werte.

Putty_1

  1. Erweitern Sie in der Liste unter Category den Knoten SSH.

  2. Klicken Sie auf den Knoten Auth, ohne ihn zu erweitern.

  3. Wechseln Sie im Feld Private key file for authentication in das Verzeichnis mit der heruntergeladenen PPK-Datei und klicken Sie doppelt auf die Datei.

  4. Klicken Sie auf Open.

Hinweis: Die PPK-Datei muss über die PuTTY-Schaltfläche „Browse“ in den Client importiert werden. Öffnen Sie sie nicht direkt und verwenden Sie sie ausschließlich in PuTTY.

Putty_2

  1. Sie werden aufgefordert, eine Verbindung zu dem angegebenen SSH-Remote-Server zu erlauben. Klicken Sie auf Yes. Ein Passwort ist nicht erforderlich, da zur Authentifizierung ein Schlüsselpaar verwendet wird.

Häufige Fragen und Probleme

Falls PuTTY keine Verbindung zu Ihrer Linux-VM herstellen kann, überprüfen Sie nochmals, ob Sie alle Voraussetzungen erfüllt haben:

  • Sie haben <nutzername>@<externe IP-Adresse> in PuTTY eingegeben.

  • Sie haben die speziell für dieses Lab vorgesehene neue PPK-Datei von der Qwiklabs-Seite heruntergeladen.

  • Sie verwenden die heruntergeladene PPK-Datei in PuTTY.

Option 2: VM-Zugriff für OS X- und Linux-Nutzer (SSH)

Private Schlüsseldatei für Ihre VM herunterladen

Laden Sie auf der Qwiklabs-Seite „Lab starten“ die private Schlüsseldatei im PEM-Format herunter. Klicken Sie dazu auf PEM-Datei herunterladen.

PEM

VM-Verbindung über lokale Terminal-Anwendung einrichten

Ein Terminal ist ein Programm, das eine textbasierte Oberfläche für die Befehlseingabe bereitstellt. Bei dieser Methode wird das Terminal als SSH-Client verwendet, um eine Verbindung zu der für das Lab erstellten Linux-VM einzurichten.

  1. Öffnen Sie die Terminal-Anwendung.

    • Unter Linux: Drücken Sie die Tastenkombination Strg + Alt + t.

    • Auf einem Mac (OS X): Drücken Sie Befehlstaste + Leertaste und suchen Sie nach terminal.

  2. Geben Sie die nachfolgenden Befehle ein.

Hinweis: Verwenden Sie statt der Beispielangaben den Pfad/Dateinamen der heruntergeladenen PEM-Datei sowie Ihren Nutzernamen und Ihre externe IP-Adresse.

Die PEM-Datei ist wahrscheinlich im Ordner Downloads abgelegt. Sofern Sie die Downloadeinstellungen Ihres Systems nicht geändert haben, lautet der Pfad des PEM-Schlüssels ~/Downloads/qwikLABS-XXXXX.pem.

chmod 600 ~/Downloads/qwikLABS-XXXXX.pem
ssh -i ~/Downloads/qwikLABS-XXXXX.pem username@External Ip Address

SSH

Option 3: VM-Zugriff für Chrome OS-Nutzer (SSH)

Hinweis: Die Anwendung darf nicht im Inkognitomodus (Inkognitofenster) gestartet werden.

Private Schlüsseldatei für Ihre VM herunterladen

Laden Sie auf der Qwiklabs-Seite „Lab starten“ die private Schlüsseldatei im PEM-Format herunter. Klicken Sie dazu auf PEM-Datei herunterladen.

PEM

Mit VM verbinden

  1. Fügen Sie Ihrem Chrome-Browser Secure Shell hinzu.

  2. Öffnen Sie Secure Shell und klicken Sie auf [New Connection].

    new-connection-button

  3. Geben Sie im Abschnitt username den Nutzernamen ein, der im Lab unter den Verbindungsdetails aufgeführt ist. Geben Sie dann im Abschnitt hostname die externe IP-Adresse Ihrer VM-Instanz ein. Auch sie ist im Lab unter den Verbindungsdetails aufgeführt.

    username-hostname-fields

  4. Importieren Sie im Abschnitt Identity den heruntergeladenen PEM-Schlüssel. Klicken Sie dazu neben dem Feld auf Import…. Wählen Sie Ihren PEM-Schlüssel aus und klicken Sie auf OPEN.

Hinweis: Wenn der Schlüssel nach dem Import nicht verfügbar ist, aktualisieren Sie die App. Anschließend sollten Sie ihn aus dem Drop-down-Menü Identity auswählen können.
  1. Klicken Sie nach dem Upload des Schlüssels unten auf die Schaltfläche [ENTER] Connect.

    import-button

  2. Bestätigen Sie jede Aufforderung jeweils mit Yes, um fortzufahren.

  3. Die Verbindung zur Linux-VM ist eingerichtet.

Jetzt können Sie mit dem Lab fortfahren.

„tcpdump“ verwenden

Sie werden nun einige Aufgaben mithilfe von „tcpdump“ durchführen. Wir starten mit der grundlegenden Nutzung und arbeiten uns zu komplexeren Themen vor.

Grundlegende Nutzung

Als Erstes werden wir Ihnen „tcpdump“ vorstellen und das Tool ohne Optionen ausführen. Hinweis: tcpdump erfordert Root- bzw. Administratorberechtigungen, um Netzwerkverkehr aufzuzeichnen. Alle Befehle müssen deshalb mit sudo beginnen. Sie müssen zumindest mit dem Flag -i eine Schnittstelle angeben, die beobachtet werden soll. Mit ip link können Sie den Namen der primären Netzwerkschnittstelle herausfinden. Wir verwenden hier für alle Beispiele die Schnittstelle ens4 – auf Ihrem Computer müssen Sie jedoch möglicherweise eine andere Schnittstelle verwenden.

Geben Sie den folgenden Befehl ein, um mithilfe von tcpdump die Schnittstelle auf Pakete zu überwachen.

Hinweis: Im Terminal wird für jedes gelesene Paket Text ausgegeben, wenn Sie diesen Befehl eingeben. Sie können den Vorgang durch die Tastenkombination Strg + C anhalten.

sudo tcpdump -i ens4

Dieser Befehl gibt einige grundlegende Informationen über die Pakete in der Standardausgabe aus. Diese Aktion wird durchgeführt, bis wir sie anhalten. Drücken Sie dazu Strg + C.

Wenn Sie tcpdump verlassen, wird eine Übersicht mit der Anzahl der aufgezeichneten, gefilterten und verworfenen Pakete angezeigt:

e62459231285086a.png

Standardmäßig führt „tcpdump“ eine grundlegende Protokollanalyse durch. Für eine ausführlichere Analyse verwenden Sie das Flag -v. Standardmäßig versucht „tcpdump“, einen umgekehrten DNS-Lookup durchzuführen, um IP-Adressen den entsprechenden Hostnamen zuzuordnen, und Portnummern mit üblicherweise verwendeten Dienstnamen zu ersetzen. Sie können dieses Verhalten mit dem Flag -n deaktivieren. Es wird empfohlen, dieses Flag zu verwenden, um zu vermeiden, dass durch DNS-Lookups zusätzlicher Datenverkehr erzeugt wird, und um die Analyse zu beschleunigen. Geben Sie dazu folgenden Befehl ein:

Hinweis: Im Terminal wird für jedes gelesene Paket Text ausgegeben, wenn Sie diesen Befehl eingeben. Sie können den Vorgang durch die Tastenkombination Strg + C anhalten.

sudo tcpdump -i ens4 -vn

Sie werden sehen, dass für die einzelnen Pakete jetzt mehr Details ausgegeben werden:

e74637cc70c05cc3.png

Ohne das Flag „-v“ wird nur Folgendes ausgegeben:

  • Das Ebene-3-Protokoll, die Quell- und Zieladresse und die Ports
  • TCP-Details wie Flags, Sequenz und ACK-Nummern, Fenstergröße und Optionen

Wenn Sie das Flag „-v“ verwenden, werden außerdem die IP-Headerinformationen wie Gültigkeitsdauer (TTL), IP-ID-Nummer, IP-Optionen und IP-Flags ausgegeben.

Filterfunktion

Werfen wir als Nächstes einen Blick auf die Filtersprache sowie die Protokollanalyse von tcpdump. tcpdump unterstützt eine leistungsstarke Filtersprache für das Filtern von Paketen, damit Sie nur den Datenverkehr aufzeichnen, den Sie auch analysieren möchten. Die Filterregeln stehen ganz am Ende des Befehls. Wir werden die Filterfunktion verwenden, um den DNS-Datenverkehr für einen bestimmten DNS-Server aufzuzeichnen. Anschließend werden wir DNS-Datenverkehr generieren, um zu demonstrieren, wie sich mithilfe von „tcpdump“ DNS-Abfragen und ‑Antworten interpretieren lassen.

Geben Sie nun folgenden Befehl ein. Genau wie der vorherige Befehl wird auch dieser Befehl ausgeführt, bis Sie Strg + C drücken, Sie werden jedoch noch keine Ausgabe sehen.

sudo tcpdump -i ens4 -vn host 8.8.8.8 and port 53

Sehen wir uns einmal genauer an, wie dieser Filter aufgebaut ist und wie er funktioniert. Host 8.8.8.8 gibt an, dass wir nur Pakete aufzeichnen möchten, deren Quell- oder Ziel-IP-Adressen mit unserer Angabe übereinstimmen (in diesem Fall 8.8.8.8). Wenn wir nur den Datenverkehr in eine Richtung aufzeichnen möchten, können wir außerdem eine Richtungsangabe wie dst (für die Ziel-IP-Adresse) oder src (für die Quell-IP-Adresse) hinzufügen. Ohne Richtungsangabe wird der Datenverkehr in beide Richtungen aufgezeichnet, sofern er mit der Filterangabe übereinstimmt.

Port 53 gibt an, dass wir nur Pakete sehen möchten, deren Quell- oder Ziel-Port mit unserer Angabe übereinstimmt (in diesem Fall DNS). Diese beiden Filteroptionen werden durch den Operator „and“ verknüpft. Es müssen also beide Bedingungen erfüllt sein, damit der Filter ein entsprechendes Paket aufzeichnet.

Folgen Sie den Anweisungen im Abschnitt Auf die virtuelle Maschine zugreifen, um sich mit dem zweiten Terminal zu verbinden. Klicken Sie dazu rechts im Navigationsbereich auf Auf die virtuelle Maschine zugreifen und führen Sie folgenden Befehl aus:

dig @8.8.8.8 A example.com

Sie sollten dann folgende Ausgabe sehen:

e5f29bb1a837ebc6.png

Bei diesem Befehl wird mit dig bei einem bestimmten DNS-Server (in diesem Fall 8.8.8.8) der A-Eintrag für eine bestimmte Domain (in diesem Fall „example.com“) abgefragt.

Im ersten Terminal sollten Sie nun zwei aufgezeichnete Pakete sehen, da unsere Filterregeln allen anderen Datenverkehr herausfiltern:

b6a4cefaba5b53ef.png

Das erste Paket ist die DNS-Abfrage (aus dem zweiten Terminal), die an den Server gesendet wird. Beachten Sie, dass der Datenverkehr in diesem Fall UDP ist. Die Analyse der DNS-Abfrage durch tcpdump beginnt direkt nach dem checksum-Feld für die UDP-Prüfsumme. Die Analyse besteht aus der DNS-ID-Nummer, gefolgt von einigen UDP-Optionen und dem Abfragetyp (in diesem Fall A?, was bedeutet, dass wir nach dem A-Eintrag fragen). Als Nächstes folgt der Domainname, an dem wir interessiert sind (example.com).

49bfc7a0a335ca52.png

Das zweite Paket ist die Antwort des Servers, die dieselbe DNS-ID enthält wie die Abfrage, gefolgt von der ursprünglichen Abfrage. Als Nächstes folgt die Antwort auf die Abfrage, die die IP-Adresse enthält, die dem Domainnamen zugeordnet ist.

8df52ed65c9b5f66.png

Sie können jetzt die tcpdump-Sitzung im ersten Terminal durch Drücken von Strg + C beenden. Lassen Sie das zweite Terminal geöffnet, da Sie es gleich noch brauchen werden.

Als Nächstes sehen wir uns an, wie Sie mithilfe von tcpdump aufzeichnete Pakete in einer Datei speichern und anschließend auslesen können.

Aufgezeichnete Pakete speichern

Führen Sie in einem Ihrer Terminals folgenden Befehl aus:

sudo tcpdump -i ens4 port 80 -w http.pcap

Dadurch werden auf der ens4-Schnittstelle Pakete aus dem HTTP-Datenverkehr (Port 80) aufgezeichnet. Das Flag -w gibt an, dass wir die aufgezeichneten Pakete in einer Datei namens http.pcap speichern möchten. Auch dieser Befehl wird ausgeführt, bis Sie Strg + C drücken.

Wechseln Sie zurück zum zweiten Terminal, um HTTP-Datenverkehr zu generieren, der dann im ersten Terminal aufgezeichnet wird. Beenden Sie die Paketaufzeichnung im ersten Terminal noch nicht. (Falls Sie den Vorgang gestoppt haben, können Sie den Befehl jetzt noch einmal eingeben.)

Führen Sie im zweiten Terminal den folgenden Befehl aus, um Datenverkehr zu generieren:

curl example.com

Durch diesen Befehl wird der HTML-Inhalt von example.com abgerufen und ausgegeben. Die Ausgabe sollte in etwa folgendermaßen aussehen. (Hinweis: Sie sehen hier nur den ersten Abschnitt der Ausgabe.)

d261699311c8cdba.png

Sobald Sie fertig sind, können Sie das zweite Terminal schließen und zum ersten Terminal zurückkehren. Beenden Sie die Paketaufzeichnung mit Strg + C. Sie sollten eine Übersicht mit der Anzahl der aufgezeichneten Pakete sehen:

aeacf2f21c2dea4f.png

Außerdem haben Sie eine Binärdatei namens http.pcap erstellt, die alle aufgezeichneten Pakete enthält. Sie sollten die Inhalte dieser Datei nicht auf dem Bildschirm ausgeben lassen. Da es sich um eine Binärdatei handelt, wird nur unverständlicher Text ausgegeben.

6649a448a7faef33.png

Die Datei enthält Informationen über die Pakete, die erstellt wurden, als Sie den HTML-Inhalt von example.com abgerufen haben. Mit folgendem Befehl können wir die Datei über „tcpdump“ auslesen:

tcpdump -r http.pcap -nv

5b2f12f38410cce2.png

Wenn Sie Pakete aus einer Datei auslesen möchten, ist der Befehl sudo nicht erforderlich. Beachten Sie, dass „tcpdump“ die vollständigen Pakete in der Datei speichert und nicht nur die textbasierte Analyse, die normalerweise auf dem Bildschirm ausgegeben wird. Beispielsweise sollten Sie in der Ausgabe den HTML-Inhalt sehen, der als Text in der ursprünglichen Abfrage im anderen Terminal zurückgegeben wurde:

6d7bb5d7e908c6e.png

Klicken Sie auf „Fortschritt prüfen“.

Pakete in einer Datei speichern

Fazit

Herzlichen Glückwunsch! Sie haben mithilfe von „tcpdump“ grundlegende Netzwerküberwachungsaufgaben durchgeführt und dabei bestimmten Datenverkehr herausgefiltert. Außerdem haben Sie gelernt, wie Sie die von „tcpdump“ ausgegebenen Paketinformationen interpretieren und die Zusammenfassungen der aufgezeichneten Pakete speichern und auslesen können.

Lab beenden

Wenn Sie das Lab abgeschlossen haben, klicken Sie auf Lab beenden. Qwiklabs entfernt daraufhin die von Ihnen genutzten Ressourcen und bereinigt das Konto.

Anschließend erhalten Sie die Möglichkeit, das Lab zu bewerten. Wählen Sie die entsprechende Anzahl von Sternen aus, schreiben Sie einen Kommentar und klicken Sie anschließend auf Senden.

Die Anzahl der Sterne hat folgende Bedeutung:

  • 1 Stern = Sehr unzufrieden
  • 2 Sterne = Unzufrieden
  • 3 Sterne = Neutral
  • 4 Sterne = Zufrieden
  • 5 Sterne = Sehr zufrieden

Wenn Sie kein Feedback hinterlassen möchten, können Sie das Dialogfeld einfach schließen.

Verwenden Sie für Feedback, Vorschläge oder Korrekturen den Tab Support.