GNU/Linux >> LINUX-Kenntnisse >  >> Linux

6 tcpdump-Filteroptionen für den Netzwerkverkehr

Der tcpdump Dienstprogramm wird verwendet, um den Netzwerkverkehr zu erfassen und zu analysieren. Sysadmins können damit den Datenverkehr in Echtzeit anzeigen oder die Ausgabe in einer Datei speichern und später analysieren. In diesem dreiteiligen Artikel demonstriere ich mehrere gängige Optionen, die Sie vielleicht in Ihrem täglichen Betrieb mit tcpdump verwenden möchten .

Teil eins beginnt mit einigen grundlegenden Tricks, um Informationen über die Schnittstellen zu sammeln und Aufnahmen zu starten.

[Das könnte Ihnen auch gefallen: Rogue-Geräte in Ihrem Netzwerk mit Nmap finden]

1. Option -D

tcpdump mit -D bietet eine Liste von Geräten, von denen Sie Datenverkehr erfassen können. Diese Option identifiziert, welche Geräte tcpdump weiß davon. Sobald Sie diese Liste sehen, können Sie entscheiden, auf welcher Schnittstelle Sie den Datenverkehr erfassen möchten. Es teilt Ihnen auch mit, ob die Schnittstelle aktiv ist, ausgeführt wird und ob es sich um eine Loopback-Schnittstelle handelt, wie Sie unten sehen können:

# tcpdump -D

1.tun0 [Up, Running]

2.wlp0s20f3 [Up, Running]

3.lo [Up, Running, Loopback]

4.any (Pseudo-device that captures on all interfaces) [Up, Running]

5.virbr0 [Up]

6.docker0 [Up]

7.enp0s31f6 [Up]

2. Option -c X

Das -c Option erfasst X Anzahl Pakete und stoppt dann. Andernfalls tcpdump wird auf unbestimmte Zeit weiterlaufen. Wenn Sie also nur einen kleinen Stichprobensatz von Paketen erfassen möchten, können Sie diese Option verwenden. Wenn es jedoch keine Aktivität auf der Schnittstelle gibt, tcpdump wartet weiter.

# tcpdump -c 5 -i any

dropped privs to tcpdump

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes

16:19:22.128996 ARP, Request who-has _gateway tell 192.168.86.81, length 28

16:19:22.130560 IP 172.217.222.189.https > kkulkarni.58810: Flags [P.], seq 3506342975:3506343029, ack 2537104576, win 377, options [nop,nop,TS val 4137065873 ecr 75405758], length 54

16:19:22.130642 IP kkulkarni.58810 > 172.217.222.189.https: Flags [.], ack 54, win 501, options [nop,nop,TS val 75422756 ecr 4137065873], length 0
16:19:22.131198 IP ovpn-3-80.rdu2.redhat.com.36380 > infoblox-trust01.intranet.prod.int.rdu2.redhat.com.domain: 53320+ PTR? 1.86.168.192.in-addr.arpa. (43)

16:19:22.131395 IP kkulkarni.53013 > ovpn-rdu2-alt.redhat.com.https: UDP, length 95

5 packets captured

49 packets received by filter

37 packets dropped by kernel


3. Option -n

Es ist in der Regel einfacher, wenn Sie IP-Adressen anstelle von Namen verwenden, z. B. kkulkarni.53013 wie in der obigen Ausgabe gezeigt. Sie können -n verwenden dafür.

# tcpdump -c 5 -i any -n

dropped privs to tcpdump

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes

16:20:21.523375 IP 172.217.9.206.https > 192.168.86.31.34288: Flags [P.], seq 723352132:723352349, ack 2124268216, win 1059, options [nop,nop,TS val 2934032467 ecr 824781066], length 217

16:20:21.563992 IP 192.168.86.31.34288 > 172.217.9.206.https: Flags [.], ack 217, win 12654, options [nop,nop,TS val 824783221 ecr 2934032467], length 0

16:20:22.956717 IP 192.168.86.83.mdns > 224.0.0.251.mdns: 0 [2q] [1au] PTR (QU)? _companion-link._tcp.local. PTR (QU)? _homekit._tcp.local. (88)
16:20:22.956839 IP 192.168.86.83.mdns > 224.0.0.251.mdns: 0*- [0q] 2/0/3 (Cache flush)

16:20:22.956932 IP6 fe80::2:8c40:fdea:5a16.mdns > ff02::fb.mdns: 0*- [0q] 2/0/3 (Cache flush) PTR local., (Cache flush) PTR local. (214)

5 packets captured

5 packets received by filter

0 packets dropped by kernel


4. Option -s

tcpdump mit -sXXX hilft Ihnen, die Erfassungsgröße zu steuern. In der zweiten Zeile in der vorherigen Ausgabe sehen Sie, dass die Erfassungsgröße 262144 Byte beträgt, was viel größer als das Paket ist. Sie können -s verwenden um die Aufnahmegröße zu ändern. Wenn Sie nur die Paketheader untersuchen möchten, können Sie eine kleinere Größe für die Erfassung verwenden. Siehe das Beispiel unten:

# tcpdump -c 5 -i any -n -s64
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 64 bytes
16:24:39.909994 IP 10.22.3.80.46368 > 10.11.200.20.ldap: Flags [.], ack 2583785634, win 502, options [nop,nop,TS[|tcp]>
16:24:39.910118 IP 192.168.86.31.53013 > 66.187.232.72.https: UDP, length 76
16:24:39.981646 IP 192.168.86.111.mdns > 224.0.0.251.mdns: 0 [5a] [28q] [1n] [1au][|domain]
16:24:39.983954 IP 192.168.86.111.mdns > 224.0.0.251.mdns: 0*- [0q] 2/0/1[|domain]
16:24:40.186150 IP 192.168.86.111.mdns > 224.0.0.251.mdns: 0 [1n] [1au][|domain]
5 packets captured
6 packets received by filter
0 packets dropped by kernel

5. Port-Captures

tcpdump ermöglicht es Ihnen, Netzwerkpakete anzugeben, die entweder Port X verwenden als Quelle oder Ziel. Um beispielsweise DNS-Verkehr zu erfassen, können Sie port 53 verwenden . Sie könnten den Port voranstellen Schlüsselwort mit src /dst als src port 53 oder dst port 53 und noch weiter filtern.

# tcpdump -i any port 53 -n
16:49:58.979410 IP 10.22.3.80.46391 > 10.11.5.19.domain: 31741+ A? youtube.com. (29)
16:49:58.979450 IP 10.22.3.80.46391 > 10.11.5.19.domain: 4579+ AAAA? youtube.com. (29)
16:49:58.985835 IP 10.11.5.19.domain > 10.22.3.80.44202: 8898 NXDomain 0/1/0 (154)
16:49:58.986761 IP 10.22.3.80.38074 > 10.11.5.19.domain: 43241+ PTR? 31.86.168.192.in-addr.arpa. (44)
16:49:59.015164 IP 10.11.5.19.domain > 10.22.3.80.38074: 43241 NXDomain 0/1/0 (122)
16:49:59.015209 IP 10.11.5.19.domain > 10.22.3.80.46391: 4579 1/0/0 AAAA 2607:f8b0:4004:810::200e (57)
16:49:59.015231 IP 10.11.5.19.domain > 10.22.3.80.46391: 31741 1/0/0 A 172.217.15.78 (45)
16:49:59.015831 IP 10.22.3.80.51955 > 10.11.5.19.domain: 2503+ PTR? 1.122.168.192.in-addr.arpa. (44)
16:49:59.041490 IP 10.11.5.19.domain > 10.22.3.80.51955: 2503 NXDomain 0/1/0 (122)

6. Option -w

Wenn Sie die Ausgabe von tcpdump schreiben möchten in eine Datei, verwenden Sie die Option -w .pcap in eine Datei schreiben. Wenn Sie sehen möchten, wie viele Pakete geschrieben wurden, können Sie -v hinzufügen .

# tcpdump -c 4 -i any port 53 -w dns.pcap -v
tcpdump: data link type LINUX_SLL2
dropped privs to tcpdump
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
4 packets captured
24 packets received by filter
0 packets dropped by kernel

[ Kostenloser Spickzettel:Holen Sie sich eine Liste von Linux-Dienstprogrammen und -Befehlen zum Verwalten von Servern und Netzwerken. ] 

Abschluss

Wie Sie sehen können, tcpdump ist ein hervorragendes Tool zum Sammeln von Daten über Ihren Netzwerkverkehr. Paketerfassungen liefern nützliche Informationen für die Fehlersuche und Sicherheitsanalyse.

Teil zwei dieser Reihe wird mit einem Blick auf sechs weitere tcpdump fortgesetzt Funktionen und Flags, einschließlich des Lesens erfasster Daten. Schließlich bietet Ihnen Teil 3 noch mehr Möglichkeiten zum Sammeln von Informationen.


Linux
  1. Centos – Separater Netzwerkverkehr auf zwei Netzwerkschnittstellen?

  2. Linux – Wie leitet man Datenverkehr zwischen Linux-Netzwerk-Namespaces weiter?

  3. So überwachen und protokollieren Sie den Netzwerkverkehr unter Linux mit vnStat

  4. Grundlegendes zu rsyslog-Filteroptionen

  5. Wie kann ich meinen gesamten Netzwerkverkehr über SSH tunneln?

So verwenden Sie den Befehl tcpdump in Ubuntu 20.04

Lernen Sie verschiedene Netzwerkoptionen in VirtualBox kennen

Analyse des Netzwerkverkehrs mit tcpdump

Installieren Sie Ntopng, um den Netzwerkverkehr unter Ubuntu 20.04 zu überwachen

Nützliche tcpdump-Linux-Beispiele für den Netzwerkadministrator

Überprüfen Sie den ausgehenden Netzwerkverkehr