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
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.