GNU/Linux >> Linux Esercitazione >  >> Linux

6 opzioni di filtro del traffico di rete tcpdump

Il tcpdump l'utilità viene utilizzata per acquisire e analizzare il traffico di rete. Gli amministratori di sistema possono usarlo per visualizzare il traffico in tempo reale o salvare l'output in un file e analizzarlo in un secondo momento. In questo articolo in tre parti, mostro diverse opzioni comuni che potresti voler utilizzare nelle tue operazioni quotidiane con tcpdump .

La prima parte inizia con alcuni trucchi di base per raccogliere informazioni sulle interfacce e avviare le acquisizioni.

[ Potrebbe piacerti anche: Trovare dispositivi non autorizzati nella tua rete utilizzando Nmap ]

1. Opzione -D

tcpdump con -D fornisce un elenco di dispositivi da cui è possibile acquisire il traffico. Questa opzione identifica quali dispositivi tcpdump sa di. Una volta visualizzato questo elenco, puoi decidere su quale interfaccia desideri acquisire il traffico. Ti dice anche se l'interfaccia è attiva, in esecuzione e se si tratta di un'interfaccia di loopback, come puoi vedere di seguito:

# 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. Opzione -c X

Il -c l'opzione acquisisce X numero di pacchetti e poi si ferma. Altrimenti, tcpdump continuerà a funzionare indefinitamente. Pertanto, quando si desidera acquisire solo un piccolo campione di pacchetti, è possibile utilizzare questa opzione. Tuttavia, se non c'è attività sull'interfaccia, tcpdump continua ad aspettare.

# 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. Opzione -n

Di solito è più facile lavorare se utilizzi indirizzi IP anziché nomi, come kkulkarni.53013 come mostrato nell'output sopra. Puoi utilizzare -n per questo.

# 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. Opzione -s

tcpdump con -sXXX ti aiuta a controllare la dimensione di acquisizione. Sulla seconda riga dell'output precedente puoi vedere che dice la dimensione di acquisizione 262144 byte, che è molto più grande del pacchetto. Puoi utilizzare -s per modificare la dimensione di acquisizione. Se vuoi solo ispezionare le intestazioni dei pacchetti, puoi usare una dimensione più piccola per l'acquisizione. Vedi l'esempio seguente:

# 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. Acquisizioni porte

tcpdump ti consente di specificare i pacchetti di rete che utilizzano una porta X come fonte o destinazione. Ad esempio, per acquisire il traffico DNS, puoi utilizzare la port 53 . Puoi anteporre la porta parola chiave con src /ora come src port 53 o dst port 53 e filtralo ulteriormente.

# 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. Opzione -w

Se vuoi scrivere l'output di tcpdump in un file, utilizzare l'opzione -w .pcap per scrivere su un file. Se vuoi vedere quanti pacchetti sono stati scritti, puoi aggiungere -v .

# 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

[ Cheat sheet gratuito:ottieni un elenco di utilità e comandi Linux per la gestione di server e reti. ] 

Concludi

Come puoi vedere, tcpdump è uno strumento eccellente per raccogliere dati sul traffico di rete. Le acquisizioni di pacchetti forniscono informazioni utili per la risoluzione dei problemi e l'analisi della sicurezza.

La seconda parte di questa serie continua con uno sguardo ad altri sei tcpdump funzioni e flag, incluso come leggere i dati acquisiti. Infine, la terza parte offre ancora più opzioni per la raccolta di informazioni.


Linux
  1. Risolvi i problemi della tua rete con tcpdump

  2. 6 opzioni di formattazione tcpdump avanzate

  3. 6 opzioni per tcpdump che devi conoscere

  4. Esempi di utilizzo del comando tcpdump per la risoluzione dei problemi di rete

  5. Monitora il volume del traffico di rete sull'interfaccia

Come utilizzare il comando tcpdump in Ubuntu 20.04

Scopri diverse opzioni di rete in VirtualBox

Analisi del traffico di rete con tcpdump

Installa Ntopng per monitorare il traffico di rete su Ubuntu 20.04

Esempi utili di tcpdump Linux per l'amministratore di rete

Controlla il traffico di rete in uscita