GNU/Linux >> Tutoriels Linux >  >> Linux

6 options de filtre de trafic réseau tcpdump

Le tcpdump est utilisé pour capturer et analyser le trafic réseau. Les administrateurs système peuvent l'utiliser pour afficher le trafic en temps réel ou enregistrer la sortie dans un fichier et l'analyser ultérieurement. Dans cet article en trois parties, je présente plusieurs options courantes que vous pourriez souhaiter utiliser dans vos opérations quotidiennes avec tcpdump .

La première partie commence par quelques astuces de base pour recueillir des informations sur les interfaces et démarrer les captures.

[ Vous pourriez également aimer : Rechercher des appareils malveillants sur votre réseau à l'aide de Nmap ]

1. Option -D

tcpdump avec -D fournit une liste d'appareils à partir desquels vous pouvez capturer le trafic. Cette option identifie les appareils tcpdump connaît. Une fois que vous voyez cette liste, vous pouvez décider sur quelle interface vous souhaitez capturer le trafic. Il vous indique également si l'interface est active, en cours d'exécution et s'il s'agit d'une interface de bouclage, comme vous pouvez le voir ci-dessous :

# 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

Le -c l'option capture X nombre de paquets puis s'arrête. Sinon, tcpdump continuera à fonctionner indéfiniment. Ainsi, lorsque vous souhaitez capturer uniquement un petit échantillon de paquets, vous pouvez utiliser cette option. Cependant, s'il n'y a aucune activité sur l'interface, tcpdump attend.

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

Il est généralement plus facile de travailler si vous utilisez des adresses IP au lieu de noms, tels que kkulkarni.53013 comme indiqué dans la sortie ci-dessus. Vous pouvez utiliser -n pour cela.

# 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 avec -sXXX vous aide à contrôler la taille de capture. Sur la deuxième ligne de la sortie précédente, vous pouvez voir qu'il indique la taille de capture 262144 octets, ce qui est beaucoup plus grand que le paquet. Vous pouvez utiliser -s pour modifier la taille de capture. Si vous souhaitez simplement inspecter les en-têtes de paquet, vous pouvez utiliser une taille plus petite pour la capture. Voir l'exemple ci-dessous :

# 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. Captures de ports

tcpdump vous permet de spécifier les paquets réseau qui utilisent soit un port X comme source ou destination. Par exemple, pour capturer le trafic DNS, vous pouvez utiliser le port 53 . Vous pouvez préfixer le port mot-clé avec src /dst comme src port 53 ou dst port 53 et filtrez-le encore plus.

# 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

Si vous voulez écrire la sortie de tcpdump à un fichier, utilisez l'option -w .pcap pour écrire dans un fichier. Si vous voulez voir combien de packages ont été écrits, vous pouvez ajouter -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

[ Aide-mémoire gratuit :obtenez une liste d'utilitaires et de commandes Linux pour gérer les serveurs et les réseaux. ] 

Récapitulez

Comme vous pouvez le voir, tcpdump est un excellent outil pour collecter des données sur le trafic de votre réseau. Les captures de paquets fournissent des informations utiles pour le dépannage et l'analyse de la sécurité.

La deuxième partie de cette série se poursuit avec un aperçu de six autres tcpdump fonctionnalités et indicateurs, y compris comment lire les données capturées. Enfin, la troisième partie vous offre encore plus d'options pour la collecte d'informations.


Linux
  1. 6 options de formatage tcpdump avancées

  2. 6 options pour tcpdump que vous devez connaître

  3. Centos - Séparer le trafic réseau sur deux interfaces réseau ?

  4. Linux - Comment transférer le trafic entre les espaces de noms réseau Linux ?

  5. Comment surveiller et enregistrer le trafic réseau sous Linux à l'aide de vnStat

Comment utiliser la commande tcpdump dans Ubuntu 20.04

Apprenez différentes options de mise en réseau dans VirtualBox

Analyse du trafic réseau avec tcpdump

Installez Ntopng pour surveiller le trafic réseau sur Ubuntu 20.04

Exemples utiles de tcpdump Linux pour l'administrateur réseau

Vérifier le trafic réseau sortant