GNU/Linux >> Tutoriels Linux >  >> Linux

Analyseur de paquets :15 exemples de commandes TCPDUMP

La commande tcpdump est également appelée analyseur de paquets.

La commande tcpdump fonctionnera sur la plupart des versions du système d'exploitation Unix. tcpdump nous permet de sauvegarder les paquets qui sont capturés, afin que nous puissions les utiliser pour une analyse future. Le fichier enregistré peut être visualisé par la même commande tcpdump. Nous pouvons également utiliser un logiciel open source comme wireshark pour lire les fichiers tcpdump pcap.

Dans ce didacticiel tcpdump, discutons de quelques exemples pratiques d'utilisation de la commande tcpdump.

1. Capturez les paquets d'une interface Ethernet particulière à l'aide de tcpdump -i

Lorsque vous exécutez la commande tcpdump sans aucune option, elle capture tous les paquets transitant par toutes les interfaces. -i option avec la commande tcpdump, vous permet de filtrer sur une interface Ethernet particulière.

$ tcpdump -i eth1
14:59:26.608728 IP xx.domain.netbcp.net.52497 > valh4.lell.net.ssh: . ack 540 win 16554
14:59:26.610602 IP resolver.lell.net.domain > valh4.lell.net.24151:  4278 1/0/0 (73)
14:59:26.611262 IP valh4.lell.net.38527 > resolver.lell.net.domain:  26364+ PTR? 244.207.104.10.in-addr.arpa. (45)

Dans cet exemple, tcpdump a capturé tous les flux de paquets dans l'interface eth1 et les affiche dans la sortie standard.

Remarque  :L'utilitaire Editcap est utilisé pour sélectionner ou supprimer des paquets spécifiques du fichier de vidage et les traduire dans un format donné.

2. Capturez uniquement le nombre N de paquets à l'aide de tcpdump -c

Lorsque vous exécutez la commande tcpdump, elle donne des paquets jusqu'à ce que vous annuliez la commande tcpdump. En utilisant l'option -c, vous pouvez spécifier le nombre de paquets à capturer.

$ tcpdump -c 2 -i eth0
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:38:38.184913 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457255642:1457255758(116) ack 1561463966 win 63652
14:38:38.690919 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652
2 packets captured
13 packets received by filter
0 packets dropped by kernel

La commande tcpdump ci-dessus n'a capturé que 2 paquets de l'interface eth0.

Remarque : Mergecap et TShark :Mergecap est un outil de combinaison de vidage de paquets, qui combinera plusieurs vidages dans un seul fichier de vidage. Tshark est un outil puissant pour capturer les paquets réseau, qui peut être utilisé pour analyser le trafic réseau. Il est livré avec la distribution de l'analyseur de réseau wireshark.

3. Afficher les paquets capturés en ASCII à l'aide de tcpdump -A

La syntaxe tcpdump suivante imprime le paquet en ASCII.

$ tcpdump -A -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652
E.....@.@..]..i...9...*.V...]...P....h....E...>{..U=...g.
......G..7\+KA....A...L.
14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652
E.....@.@..\..i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba...
E..(R.@.|.....9...i.*...]...V..*P..OWp........

Remarque : La commande ifconfig est utilisée pour configurer les interfaces réseau

4. Afficher les paquets capturés en HEX et ASCII à l'aide de tcpdump -XX

Certains utilisateurs peuvent vouloir analyser les paquets en valeurs hexadécimales. tcpdump permet d'imprimer des paquets aux formats ASCII et HEX.

$tcpdump -XX -i eth0
18:52:54.859697 IP zz.domain.innetbcp.net.63897 > valh4.lell.net.ssh: . ack 232 win 16511
        0x0000:  0050 569c 35a3 0019 bb1c 0c00 0800 4500  .PV.5.........E.
        0x0010:  0028 042a 4000 7906 c89c 10b5 aaf6 0f9a  .(.*@.y.........
        0x0020:  69c4 f999 0016 57db 6e08 c712 ea2e 5010  i.....W.n.....P.
        0x0030:  407f c976 0000 0000 0000 0000            @..v........
18:52:54.877713 IP 10.0.0.0 > all-systems.mcast.net: igmp query v3 [max resp time 1s]
        0x0000:  0050 569c 35a3 0000 0000 0000 0800 4600  .PV.5.........F.
        0x0010:  0024 0000 0000 0102 3ad3 0a00 0000 e000  .$......:.......
        0x0020:  0001 9404 0000 1101 ebfe 0000 0000 0300  ................
        0x0030:  0000 0000 0000 0000 0000 0000            ............

5. Capturez les paquets et écrivez dans un fichier en utilisant tcpdump -w

tcpdump vous permet d'enregistrer les paquets dans un fichier, et plus tard, vous pouvez utiliser le fichier de paquets pour une analyse plus approfondie.

$ tcpdump -w 08232010.pcap -i eth0
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
32 packets captured
32 packets received by filter
0 packets dropped by kernel

L'option -w écrit les paquets dans un fichier donné. L'extension de fichier doit être .pcap, qui peut être lu par n'importe quel
analyseur de protocole réseau.

6. Lecture des paquets à partir d'un fichier enregistré à l'aide de tcpdump -r

Vous pouvez lire le fichier pcap capturé et afficher les paquets pour analyse, comme indiqué ci-dessous.

$tcpdump -tttt -r data.pcap
2010-08-22 21:35:26.571793 00:50:56:9c:69:38 (oui Unknown) > Broadcast, ethertype Unknown (0xcafe), length 74:
        0x0000:  0200 000a ffff 0000 ffff 0c00 3c00 0000  ............<...
        0x0010:  0000 0000 0100 0080 3e9e 2900 0000 0000  ........>.).....
        0x0020:  0000 0000 ffff ffff ad00 996b 0600 0050  ...........k...P
        0x0030:  569c 6938 0000 0000 8e07 0000            V.i8........
2010-08-22 21:35:26.571797 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.50570: P 800464396:800464448(52) ack 203316566 win 71
2010-08-22 21:35:26.571800 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.50570: P 52:168(116) ack 1 win 71
2010-08-22 21:35:26.584865 IP valh5.lell.net.ssh > 11.154.12.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; BROADC

7. Capturez des paquets avec une adresse IP en utilisant tcpdump -n

Dans tous les exemples ci-dessus, il imprime des paquets avec l'adresse DNS, mais pas l'adresse IP. L'exemple suivant capture les paquets et affiche l'adresse IP des machines impliquées.

$ tcpdump -n -i eth0
15:01:35.170763 IP 10.0.19.121.52497 > 11.154.12.121.ssh: P 105:157(52) ack 18060 win 16549
15:01:35.170776 IP 11.154.12.121.ssh > 10.0.19.121.52497: P 23988:24136(148) ack 157 win 113
15:01:35.170894 IP 11.154.12.121.ssh > 10.0.19.121.52497: P 24136:24380(244) ack 157 win 113

8. Capturez les paquets avec un horodatage lisible approprié à l'aide de tcpdump -tttt

$ tcpdump -n -tttt -i eth0

2010-08-22 15:10:39.162830 IP 10.0.19.121.52497 > 11.154.12.121.ssh: . ack 49800 win 16390
2010-08-22 15:10:39.162833 IP 10.0.19.121.52497 > 11.154.12.121.ssh: . ack 50288 win 16660
2010-08-22 15:10:39.162867 IP 10.0.19.121.52497 > 11.154.12.121.ssh: . ack 50584 win 16586

9. Lire les paquets de plus de N octets

Vous ne pouvez recevoir que les paquets supérieurs à n octets en utilisant un filtre "supérieur" via la commande tcpdump

$ tcpdump -w g_1024.pcap greater 1024

10. Recevoir uniquement les paquets d'un type de protocole spécifique

Vous pouvez recevoir les paquets en fonction du type de protocole. Vous pouvez spécifier l'un de ces protocoles — fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp et udp. L'exemple suivant ne capture que les paquets arp passant par l'interface eth0.

$ tcpdump -i eth0 arp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
19:41:52.809642 arp who-has valh5.lell.net tell valh9.lell.net
19:41:52.863689 arp who-has 11.154.12.1 tell valh6.lell.net
19:41:53.024769 arp who-has 11.154.12.1 tell valh7.lell.net

11. Lire les paquets inférieurs à N octets

Vous ne pouvez recevoir que les paquets inférieurs à n nombre d'octets en utilisant un filtre "moins" via la commande tcpdump

$ tcpdump -w l_1024.pcap  less 1024

12. Recevoir des flux de paquets sur un port particulier à l'aide du port tcpdump

Si vous voulez connaître tous les paquets reçus par un port particulier sur une machine, vous pouvez utiliser la commande tcpdump comme indiqué ci-dessous.

$ tcpdump -i eth0 port 22
19:44:44.934459 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.63897: P 18932:19096(164) ack 105 win 71
19:44:44.934533 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.63897: P 19096:19260(164) ack 105 win 71
19:44:44.934612 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.63897: P 19260:19424(164) ack 105 win 71

13. Capturez des paquets pour une adresse IP et un port de destination particuliers

Les paquets auront une adresse IP source et de destination et des numéros de port. En utilisant tcpdump, nous pouvons appliquer des filtres sur l'IP source ou de destination et le numéro de port. La commande suivante capture les flux de paquets dans eth0, avec une adresse IP de destination particulière et le numéro de port 22.

$ tcpdump -w xpackets.pcap -i eth0 dst 10.181.140.216 and port 22

14. Capturez les paquets de communication TCP entre deux hôtes

Si deux processus différents de deux machines différentes communiquent via le protocole tcp, nous pouvons capturer ces paquets en utilisant tcpdump comme indiqué ci-dessous.

$tcpdump -w comm.pcap -i eth0 dst 16.181.170.246 and port 22

Vous pouvez ouvrir le fichier comm.pcap à l'aide de n'importe quel outil d'analyse de protocole réseau pour déboguer tout problème potentiel.

15. tcpdump Filter Packets - Capturez tous les paquets autres que arp et rarp

Dans la commande tcpdump, vous pouvez donner les conditions "et", "ou" et "non" pour filtrer les paquets en conséquence.

$ tcpdump -i eth0 not arp and not rarp
20:33:15.479278 IP resolver.lell.net.domain > valh4.lell.net.64639:  26929 1/0/0 (73)
20:33:15.479890 IP valh4.lell.net.16053 > resolver.lell.net.domain:  56556+ PTR? 255.107.154.15.in-addr.arpa. (45)
20:33:15.480197 IP valh4.lell.net.ssh > zz.domain.innetbcp.net.63897: P 540:1504(964) ack 1 win 96
20:33:15.487118 IP zz.domain.innetbcp.net.63897 > valh4.lell.net.ssh: . ack 540 win 16486
20:33:15.668599 IP 10.0.0.0 > all-systems.mcast.net: igmp query v3 [max resp time 1s]

Linux
  1. 7 Exemples de commandes Linux df

  2. 8 Exemples de commandes Linux TR

  3. Exemples d'utilisation de la commande tcpdump pour le dépannage du réseau

  4. Exemples de commande rm sous Linux

  5. Exemples de commandes ps sous Linux

10 exemples de commandes iftop sous Linux

16 exemples de commandes Echo sous Linux

Commande Tcpdump sous Linux

Tutoriel de commande Linux tcpdump pour les débutants (8 exemples)

Commande Linux tcpdump

Exemples de commandes id sous Linux