tcpdump

Eine Anleitung zum Dienstprogramm zur Analyse des Netzwerkverkehrs TCPDUMP

Eine Anleitung zum Dienstprogramm zur Analyse des Netzwerkverkehrs TCPDUMP

Tcpdump ist ein Befehlszeilen-Dienstprogramm zum Sniffing von Netzwerkpaketen. Es wird am häufigsten zur Fehlerbehebung in Netzwerken und zum Testen von Sicherheitsproblemen verwendet. Trotz des Fehlens einer grafischen Benutzeroberfläche ist es das beliebteste, leistungsstärkste und vielseitigste Befehlszeilen-Dienstprogramm.

Es ist nativ für Linux, sodass die meisten Linux-Distributionen es als Teil des Standardbetriebssystems installieren. Tcpdump ist ein Programm mit libpcap-Schnittstelle, das eine Bibliothek für die Erfassung von Netzwerk-Datagrammen ist.

In diesem Artikel wird tcpdump entmystifiziert, indem gezeigt wird, wie der erfasste Netzwerkverkehr in diesem Dienstprogramm erfasst, gelesen und analysiert wird. Später werden wir unser Verständnis nutzen, um Datenpakete mit den erweiterten TCP-Flagfiltern zu untersuchen.

TCPdump-Installation

Die Standardinstallation von Tcpdump in Ihrer Distribution hängt von den Optionen ab, die während des Installationsvorgangs ausgewählt wurden. Bei einer benutzerdefinierten Installation ist das Paket möglicherweise nicht verfügbar. Sie können die tcpdump-Installation überprüfen, indem Sie das dpkg Befehl mit dem „-so" Möglichkeit.

ubuntu$ubuntu:~$ dpkg -s tcpdump

Oder verwenden Sie den Befehl „sudo apt-get install tcpdump“, um tcpdump unter Ubuntu Linux zu installieren.

Erfassen von Paketen in Tcpdump:

Um mit dem Erfassungsprozess zu beginnen, müssen wir zunächst unsere Arbeitsoberfläche mithilfe des „ifconfig" Befehl. Oder wir listen alle verfügbaren Schnittstellen über die tcpdump Befehl mit dem „-D" Möglichkeit.

ubuntu$ubuntu:~$ tcpdump -D

Um den Erfassungsprozess zu starten, können Sie die Syntax verwenden;

tcpdump [-Optionen] [Ausdruck]

Im folgenden Befehl verwenden wir beispielsweise das „-ich” Option zum Erfassen des Verkehrs auf derenp0s3” Schnittstelle, mit einem “-c” Flag, um die erfassten Pakete zu begrenzen und zu schreiben “-w” es zu a test_capture.pcap Datei.

ubuntu$ubuntu:~$ sudo tcpdump -i enp0s3 -c 20 -w /tmp/test_capture.pcap

Ebenso können Sie verschiedene Filterkombinationen verwenden, um den Verkehr nach Ihren Anforderungen zu isolieren. Ein solches Beispiel umfasst das Erfassen von Netzwerkdaten, die den Host verlassen und dort ankommen, unter Verwendung der Gastgeber Befehl für ein bestimmtes Hafen. Außerdem habe ich die „-nein” Flag, um zu verhindern, dass tcpdump DNS-Lookups erfasst. Dieses Flag ist sehr hilfreich bei der Sättigung des Datenverkehrs bei der Fehlerbehebung im Netzwerk.

ubuntu$ubuntu:~$ sudo tcpdump -i enp0s3 -c 20 host 10.0.2.15 und dst-Port 80 -w /tmp/test_capture1.pcap
tcpdump: Abhören auf enp0s3, Link-Typ EN10MB (Ethernet), Erfassungsgröße 262144 Byte
20 Pakete erfasst
21 Pakete vom Filter empfangen
0 Pakete vom Kernel verworfen

Wir benutzen das "und” Befehl, um nur Pakete zu erfassen, die Host 10 enthalten containing.0.2.15 und Zielport 80. Ebenso können verschiedene andere Filter angewendet werden, um die Fehlerbehebungsaufgaben zu erleichtern.

Wenn Sie die „-c”-Flag, um den Erfassungsverkehr zu begrenzen, können Sie ein Interrupt-Signal verwenden, d.e., Strg+C, um den Isolationsprozess zu stoppen.

Lesen von Tcpdump-Dateien

Das Lesen von tcpdump-erfassten Dateien kann sehr überwältigend sein. Standardmäßig weist tcp IP-Adressen und Ports Namen zu. Wir werden die „-r” Flag, um unsere bereits erfasste Datei zu lesen test_capture.pcap gespeichert im /tmp Mappe. Wir leiten die Ausgabe an awk Befehl, um nur die Quell-IP-Adresse und die Ports auszugeben und an den Befehl weiterzuleiten Kopf um nur die ersten 5 Einträge anzuzeigen.

ubuntu$ubuntu:~$ sudo tcpdump -r /tmp/test_capture1.pcap | awk -F “ ” 'print$3' | Kopf -5
Lesen aus der Datei /tmp/test_capture.pcap, Link-Typ EN10MB (Ethernet)
IP-Ubuntu.53298
IP-Ubuntu.53298
IP-Ubuntu.53298
IP-Ubuntu.53298
IP-Ubuntu.53298

Es wird jedoch empfohlen, IP-Adressen und Ports in Zahlen zu verwenden, um Netzwerkprobleme zu beheben. Wir deaktivieren die IP-Namensauflösung mit dem „-nein” Flag und Portnamen mit “-nn“.

ubuntu$ubuntu:~$ sudo tcpdump -i enp0s3 -n
tcpdump: Ausführliche Ausgabe unterdrückt, verwenden Sie -v oder -vv für die vollständige Protokolldecodierung
Abhören auf enp0s3, Link-Typ EN10MB (Ethernet), Erfassungsgröße 262144 Byte
20:08:22.146354 IP 10.0.2.fünfzehn.54080 > 172.67.39.148.443: Flaggen [P.], seq 1276027591:1276027630, ack 544039114, win 63900, Länge 39
20:08:22.146745 IP 10.0.2.fünfzehn.43456 > 54.204.39.132.443: Flaggen [P.], seq 3381018839:3381018885, ack 543136109, win 65535, Länge 46
20:08:22.147506 IP 172.67.39.148.443 > 10.0.2.fünfzehn.54080: Flaggen [.], ack 39, win 65535, Länge 0
20:08:22.147510 IP54.204.39.132.443 > 10.0.2.fünfzehn.43456: Flaggen [.], ack 46, win 65535, Länge 0
20:08:22.202346 IP 216.58.209.142.443 > 10.0.2.fünfzehn.41050: Flaggen [P.], seq 502925703:502925826, ack 1203118935, win 65535, Länge 123
20:08:22.202868 IP 10.0.2.fünfzehn.41050 > 216.58.209.142.443: Flaggen [P.], seq 1:40, ack 123, win 65535, Länge 39

Verstehen der erfassten Ausgabe

Tcpdump erfasst viele Protokolle, einschließlich UDP, TCP, ICMP usw. Es ist nicht einfach, hier alle abzudecken. Es ist jedoch wichtig zu verstehen, wie die Informationen angezeigt werden und welche Parameter sie enthalten.

Tcpdump zeigt jedes Paket in einer Zeile mit einem Zeitstempel und Informationen zum Protokoll an. Im Allgemeinen ist das Format eines TCP-Protokolls wie folgt:

. > .: , , , , ,

Lassen Sie uns eines der erfassten Paketfelder für Feld erklären:

20:08:22.146354 IP 10.0.2.fünfzehn.54080 > 172.67.39.148.443: Flaggen [P.], seq 1276027591:1276027630, ack 544039114, win 63900, Länge 39
  • 20:08:22.146354: Zeitstempel des erfassten Pakets
  • IP: Protokoll der Netzwerkschicht.
  • 10.0.2.fünfzehn.54080: Dieses Feld enthält die Quell-IP-Adresse und den Quell-Port.
  • 172.67.39.148.443: Dieses Feld repräsentiert die Ziel-IP-Adresse und Portnummer.
  • Flaggen[P.]/: Die Flags repräsentieren den Verbindungsstatus. In diesem Fall [P.] zeigt das PUSH-Bestätigungspaket an. Das Flag-Feld enthält auch einige andere Werte wie:
    1. S: SYN
    2. P: DRÜCKEN
    3. [.]: ACK
    4. F: FIN
    5. [S.]: SYN_ACK
    6. R: RST
  • seq 1276027591:1276027630: Die Sequenznummer im ersten: das letzte Format bezeichnet die Anzahl der Daten im Paket. Mit Ausnahme des ersten Pakets, bei dem die Zahlen absolut sind, haben die nachfolgenden Pakete relative Zahlen. In diesem Fall bedeuten die Zahlen hier, dass das Paket Datenbytes von 1276027591 bis 1276027630 enthält.
  • ack 544039114: Die Quittungsnummer gibt die nächste erwartete Datensequenznummer an.
  • win 63900: Die Fenstergröße gibt die Anzahl der verfügbaren Bytes im Empfangspuffer an.
  • length 39: Länge der Nutzdaten, in Bytes.

Erweiterte Filter

Jetzt können wir einige erweiterte Heading-Filteroptionen verwenden, um nur Datenpakete anzuzeigen und zu analysieren. In jedem TCP-Paket beginnen die TCP-Flags ab dem 14. Byte, sodass PSH und ACK durch das 4. und 5. Bit dargestellt werden.

Wir können diese Informationen verwenden, indem wir diese Bits aktivieren 00011000 oder 24 um Datenpakete nur mit PSH- und ACK-Flags anzuzeigen. Diese Nummer übergeben wir an tcpdump mit dem Filter „TCP[13]=24“, beachten Sie, dass der Array-Index in TCP bei Null beginnt.

Wir werden dieses Paket aus unserem herausfiltern text_capture.pcap Datei und verwenden Sie die -EIN Option, um alle Paketdetails für Sie anzuzeigen.

Auf ähnliche Weise können Sie einige andere Flag-Pakete herausfiltern, indem Sie „tcp[13]=8“ und „tcp[13]=2“ nur für PSH- und SYN-Flags usw.

ubuntu$ubuntu:~$ sudo tcpdump -A 'tcp[13]=24' -r /tmp/test_capture.pcap
Lesen aus der Datei /tmp/test_capture.pcap, Link-Typ EN10MB (Ethernet)
19:26:17.827902 IP-Ubuntu.53298 > 32.121.122.34.bc.googleusercontent.com.http: Flaggen [P.], seq 4286571276:4286571363, ack 252096002, win 64240, Länge 87: HTTP: GET / HTTP/1.1
E… :?@[email protected].
… „zy .2.P… P… GET / HTTP/1.1
Host: Konnektivitäts-Check.ubuntu.com
Akzeptieren: */*
Verbindung: schließen

Fazit

In diesem Artikel haben wir Ihnen einige der wichtigsten Themen von tcpdump vorgestellt. Tcpdump kann in Kombination mit der Leistungsfähigkeit von CLI eine große Hilfe bei der Fehlerbehebung, Automatisierung und Sicherheitsverwaltung im Netzwerk sein. Einmal studiert und kombiniert, können seine Filter und Befehlszeilenoptionen viel zu Ihren täglichen Fehlerbehebungs- und Automatisierungsaufgaben sowie zum Gesamtverständnis des Netzwerks beitragen.

Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...