Ein Leitfaden zur Netzwerkverkehrsanalyse Utility TCPDump

Ein Leitfaden zur Netzwerkverkehrsanalyse Utility TCPDump

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

Es ist in Linux nativ, so dass die meisten Linux -Verteilungen es als Teil des Standard -Betriebssystems installieren. TCPDUMP ist ein LIBPCAP -Programm miteinander, bei dem es sich um eine Bibliothek für die Network Datagram Capture handelt.

In diesem Artikel wird TCPDump entmystifiziert, indem er zeigt, wie er erfasste Netzwerkverkehr in diesem Dienstprogramm erfasst, lesen und analysiert. Wir werden später unser Verständnis verwenden, um Datenpakete mit den erweiterten TCP -Flag -Filtern zu inspizieren.

TCPDump -Installation

Die TCPDump -Standardinstallation in Ihrer Distribution hängt von den Optionen ab, die während des Installationsprozesses ausgewählt wurden. Bei der benutzerdefinierten Installation ist es möglich, dass das Paket nicht verfügbar ist. Sie können die TCPDump -Installation über die verwenden dpkg Befehl mit dem “-S" Möglichkeit.

Ubuntu $ Ubuntu: ~ $ dpkg -s tcpdump

Oder verwenden Sie den Befehl "sudo apt-Get Installieren Sie TCPDump", um TCPDump im Ubuntu Linux zu installieren.

Pakete in TCPDump erfassen:

Um den Erfassungsprozess zu beginnen, müssen wir zunächst unsere Arbeitsschnittstelle mit der “findenIfconfig" Befehl. Oder wir können alle verfügbaren Schnittstellen mit dem auflisten tcpdump Befehl mit dem “-D" Möglichkeit.

Ubuntu $ Ubuntu: ~ $ tcpdump -d

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

tcpdump [-options] [Expression]

Zum Beispiel verwenden wir im folgenden Befehl das “-ich"Option, den Verkehr auf der" zu erfassen "ENP0S3"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

In ähnlicher Weise können Sie verschiedene Filterkombinationen verwenden, um den Verkehr gemäß Ihren Anforderungen zu isolieren. Ein solches Beispiel beinhaltet das Erfassen von Netzwerkdaten, die das Verlassen und Ankommen des Hosts mit dem Host erfassen Gastgeber Befehl für einen bestimmten Hafen. Außerdem habe ich das benutzt-N”Flag, um zu verhindern, dass TCPDump DNS -Lookups erfasst. Diese Flagge ist sehr hilfreich bei der Sättigung des Verkehrs bei der Fehlerbehebung des Netzwerks.

Ubuntu $ Ubuntu: ~ $ sudo tcpdump -i enp0s3 -c 20 Host 10.0.2.15 und DST Port 80 -W /TMP /test_capture1.PCAP
TCPDUMP: Hören auf ENP0S3, Link-Typ EN10MB (Ethernet), Capture-Größe 262144 Bytes
20 Pakete erfasst
21 Pakete beim Filter erhalten
0 Pakete, die vom Kernel fallen gelassen wurden

Wir benutzen das "UndBefehl, um nur Pakete mit Host 10 zu erfassen.0.2.15 und Zielport 80. In ähnlicher Weise können verschiedene andere Filter angewendet werden, um Aufgaben zur Fehlerbehebung zu erleichtern.

Wenn Sie das nicht verwenden möchten-C”Flag, um den Erfassungsverkehr zu begrenzen, können Sie ein Interrupt -Signal verwenden.e., Strg+c, 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 Namen. Wir werden das verwenden-RFlag, um unsere bereits erfasste Datei zu lesen test_capture.PCAP gerettet in der /tmp Ordner. Wir werden den Ausgang an die Ausgabe übergeben awk Befehl zum Ausgabe der Quell -IP -Adresse und -Abrang Kopf nur die ersten 5 Einträge anzeigen.

Ubuntu $ Ubuntu: ~ $ sudo tcpdump -r /tmp /test_capture1.PCAP | awk -f ’'' Print $ 3 '| Kopf -5
Lesen aus 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 Nummern zur Lösung von Netzwerkproblemen zu verwenden. Wir werden die IP -Namensauflösung mit dem deaktivieren-N"Flag- und Portnamen mit"-nn“.

Ubuntu $ Ubuntu: ~ $ sudo tcpdump -i enp0s3 -n
TCPDUMP: VERBOSE AUSGABE VERBRAUT, Verwenden
Hören auf ENP0S3, Link-Typ EN10MB (Ethernet), Capture-Größe 262144 Bytes
20:08:22.146354 IP 10.0.2.15.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.15.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.15.54080: Flaggen [.], ACK 39, Win 65535, Länge 0
20:08:22.147510 IP 54.204.39.132.443> 10.0.2.15.43456: Flaggen [.], ACK 46, Win 65535, Länge 0
20:08:22.202346 IP 216.58.209.142.443> 10.0.2.15.41050: Flaggen [P.], SEQ 502925703: 502925826, ACK 1203118935, Win 65535, Länge 123
20:08:22.202868 IP 10.0.2.15.41050> 216.58.209.142.443: Flaggen [P.], Seq 1:40, ACK 123, Win 65535, Länge 39

Verständnis erfasste Output

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

TCPDump zeigt jedes Paket in einer Zeile mit einem Zeitstempel und Informationen in Bezug auf das Protokoll an. Im Allgemeinen lautet das Format eines TCP -Protokolls wie folgt:

. > .: , , , , ,

Erklären wir eines der erfassten Paketfelder nach Feld:

20:08:22.146354 IP 10.0.2.15.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: Netzwerkschichtprotokoll.
  • 10.0.2.15.54080: Dieses Feld enthält die Quell -IP -Adresse und den Quellport.
  • 172.67.39.148.443: Dieses Feld repräsentiert die Ziel -IP -Adresse und die Portnummer.
  • Flaggen [p.]/: Die Flags repräsentieren den Verbindungszustand. In diesem Fall [P. P.] Zeigt das Push -Bestätigungspaket an. Das Flag -Feld enthält auch einige andere Werte wie:
    1. S: Syn
    2. P: Push
    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. Ohne das erste Paket, in 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 Bestätigungsnummer zeigt die nächste erwartete Datensequenznummer.
  • Gewinnen Sie 63900: Die Fenstergröße zeigt die Anzahl der verfügbaren Bytes im empfangenen Puffer.
  • Länge 39: Länge der Nutzlastdaten in Bytes.

Fortgeschrittene Filter

Jetzt können wir einige erweiterte Kopffilteroptionen verwenden, um nur Datenpakete anzuzeigen und zu analysieren. In jedem TCP -Paket beginnen die TCP -Flags vom 14. Byte so.

Wir können diese Informationen verwenden, indem wir diese Teile einschalten 00011000 oder 24 Datenpakete mit nur PSH- und ACK -Flags anzuzeigen. Wir geben diese Nummer mit dem Filter an TCPDump “weiter“TCP [13] = 24„Beachten Sie, dass der Array -Index in TCP bei Null beginnt.

Wir werden dieses Paket von unserem herausfiltern text_capture.PCAP Datei und verwenden Sie die -A Option zum Anzeigen aller Paketdetails für Sie.

In ähnlicher Weise können Sie einige andere Flag -Pakete mithilfe mithilfe von Fahnen herausfiltern "TCP [13] = 8" und "TCP [13] = 2" für nur PSH- und Syn -Flags usw.

Ubuntu $ Ubuntu: ~ $ sudo tcpdump -a 'tcp [13] = 24' -r /tmp /test_capture.PCAP
Lesen aus Datei /TMP /test_capture.PCAP, Link-Typ EN10MB (Ethernet)
19:26:17.827902 IP Ubuntu.53298> 32.121.122.34.BC.GoogleUserContent.com.HTTP: Flags [P. 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ätskonferenz.Ubuntu.com
Akzeptieren: */*
Verbindung: Schließen

Abschluss

In diesem Artikel haben wir Sie mit einigen der wichtigsten Themen von TCPDump vorgestellt. TCPDUMP, kombiniert mit der Macht der CLI, kann bei der Fehlerbehebung, Automatisierung und Sicherheitsmanagement von Netzwerk -Networks von großer Hilfe sein. Sobald er studiert und kombiniert hat, können seine Filter- und Befehlszeilenoptionen viel zu Ihrer täglichen Fehlerbehebung und Automatisierungsaufgaben sowie zu allgemeinem Verständnis des Netzwerks beitragen.