Un guide de l'utilitaire d'analyse du trafic réseau TCPDUmp

Un guide de l'utilitaire d'analyse du trafic réseau TCPDUmp

Tcpdump est un paquet réseau reniflant l'utilitaire de ligne de commande. Il est le plus souvent utilisé pour le dépannage des réseaux et tester les problèmes de sécurité. Malgré l'absence d'une interface utilisateur graphique, c'est l'utilitaire de ligne de commande le plus populaire, puissant et polyvalent.

Il est originaire de Linux de telle sorte que la plupart des distributions Linux l'installent dans le cadre du système d'exploitation standard. TCPDump est un programme interfacé LiBPCAP, qui est une bibliothèque pour la capture de datagramme réseau.

Cet article démystifiera TCPDUmp en montrant comment capturer, lire et analyser le trafic réseau capturé dans cet utilitaire. Nous utiliserons plus tard notre compréhension pour inspecter les paquets de données avec les filtres Flag TCP avancés.

Installation de TCPDump

L'installation par défaut de TCPDump dans votre distribution dépend des options sélectionnées pendant le processus d'installation. Dans le cas d'une installation personnalisée, il est possible que le package ne soit pas disponible. Vous pouvez vérifier l'installation de TCPDump en utilisant le dpkg commande avec le «-s" option.

Ubuntu $ ubuntu: ~ $ dpkg -s tcpdump

Ou utilisez la commande «sudo apt-get install tcpdump» pour installer tcpdump dans l'ubuntu linux.

Capturation de paquets dans TCPDump:

Pour commencer le processus de capture, nous devons d'abord trouver notre interface de travail en utilisant le «ifconfig" commande. Ou nous pouvons répertorier toutes les interfaces disponibles en utilisant le tcpdump commande avec le «-D" option.

Ubuntu $ ubuntu: ~ $ tcpdump -d

Pour commencer le processus de capture, vous pouvez utiliser la syntaxe;

tcpdump [-options] [expression]

Par exemple, dans la commande ci-dessous, nous utilisons le «-je«Option de capturer le trafic sur le«ENP0S3"Interface, avec un"-c"Flag pour limiter les paquets capturés et écrire"-w«C'est à un test_capture.PCAP déposer.

Ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -c 20 -w / tmp / test_capture.PCAP

De même, vous pouvez utiliser diverses combinaisons de filtres pour isoler le trafic selon vos besoins. Un tel exemple comprend la capture de données réseau quittant et arrivant à l'hôte en utilisant le héberger commande pour un spécifique port. De plus, j'ai utilisé le «-n”Flag pour empêcher TCPDUmp de capturer les recherches DNS. Ce drapeau est très utile pour saturer le trafic tout en dépannage le réseau.

ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -c 20 hôte 10.0.2.15 et DST PORT 80 -W / TMP / TEST_CAPTURE1.PCAP
TCPDump: écoute sur ENP0S3, de type lien en10MB (Ethernet), taille de capture 262144 octets
20 paquets capturés
21 paquets reçus par filtre
0 paquets déposés par le noyau

Nous utilisons le "et”Commande pour ne capturer que des paquets contenant l'hôte 10.0.2.15 et port de destination 80. De même, divers autres filtres peuvent être appliqués pour faciliter les tâches de dépannage.

Si vous ne voulez pas utiliser le «-c”Indicateur Pour limiter le trafic de capture, vous pouvez utiliser un signal d'interruption, je.e., Ctrl + c, Pour arrêter le processus d'isolement.

Lire des fichiers TCPDump

La lecture des fichiers capturés TCPDump peut être beaucoup écrasant. Par défaut, TCP attribue des noms aux adresses IP et aux ports. Nous utiliserons le «-r”Flag pour lire notre fichier déjà capturé test_capture.PCAP sauvé dans le / tmp dossier. Nous allons tuer la sortie à awk commande pour sortir uniquement l'adresse IP source et les ports et le tuyau sur la commande diriger Pour afficher uniquement les 5 premières entrées.

ubuntu $ ubuntu: ~ $ sudo tcpdump -r / tmp / test_capture1.PCAP | awk -f "" 'print $ 3' | tête -5
Lire à partir de fichier / tmp / test_capture.PCAP, Link-Type EN10MB (Ethernet)
Ip ubuntu.53298
Ip ubuntu.53298
Ip ubuntu.53298
Ip ubuntu.53298
Ip ubuntu.53298

Cependant, il est recommandé d'utiliser des adresses IP et des ports en nombre pour résoudre les problèmes de réseautage. Nous désactiverons la résolution du nom IP avec le «-n"Flag et noms de port avec"-nn".

Ubuntu $ ubuntu: ~ $ sudo tcpdump -i enp0s3 -n
TCPDUMP: Sortie verbeux supprimée, utilisez -v ou -vv pour le décodage complet du protocole
Écoute sur ENP0S3, Link-Type EN10MB (Ethernet), Capture Taille 262144 octets
20:08:22.146354 IP 10.0.2.15.54080> 172.67.39.148.443: drapeaux [P.], SEQ 1276027591: 1276027630, ACK 544039114, Win 63900, longueur 39
20:08:22.146745 IP 10.0.2.15.43456> 54.204.39.132.443: drapeaux [P.], SEQ 3381018839: 3381018885, ACK 543136109, Win 65535, longueur 46
20:08:22.147506 IP 172.67.39.148.443> 10.0.2.15.54080: drapeaux [.], ack 39, gagner 65535, longueur 0
20:08:22.147510 IP 54.204.39.132.443> 10.0.2.15.43456: drapeaux [.], ack 46, gagner 65535, longueur 0
20:08:22.202346 IP 216.58.209.142.443> 10.0.2.15.41050: drapeaux [P.], SEQ 502925703: 502925826, ACK 1203118935, WIN 65535, longueur 123
20:08:22.202868 IP 10.0.2.15.41050> 216.58.209.142.443: drapeaux [P.], SEQ 1:40, ACK 123, Win 65535, longueur 39

Comprendre la sortie capturée

TCPDump capture de nombreux protocoles, y compris UDP, TCP, ICMP, etc. Il n'est pas facile de les couvrir tous ici. Cependant, il est important de comprendre comment les informations sont affichées et quels paramètres il inclut.

TCPDump affiche chaque paquet dans une ligne, avec un horodatage et des informations concernant le protocole. Généralement, le format d'un protocole TCP est le suivant:

. > .: , , , , ,

Expliquons l'un des champs de paquets capturés par champ:

20:08:22.146354 IP 10.0.2.15.54080> 172.67.39.148.443: drapeaux [P.], SEQ 1276027591: 1276027630, ACK 544039114, Win 63900, longueur 39
  • 20:08:22.146354: horodatage du paquet capturé
  • IP: protocole de couche réseau.
  • dix.0.2.15.54080: Ce champ contient l'adresse IP source et le port source.
  • 172.67.39.148.443: Ce champ représente l'adresse IP de destination et le numéro de port.
  • Drapeaux [p.] /: Les drapeaux représentent l'état de connexion. Dans ce cas, [P.] indique le paquet de reconnaissance push. Le champ de drapeau comprend également d'autres valeurs comme:
    1. S: Syn
    2. P: pousser
    3. [.]: Ack
    4. F: FIN
    5. [S.]: Syn_ack
    6. R: RST
  • SEQ 1276027591: 1276027630: Le numéro de séquence dans le premier: Le dernier format indique le nombre de données dans le paquet. À l'exclusion du premier paquet où les chiffres sont absolus, les paquets suivants ont des nombres relatifs. Dans ce cas, les chiffres ici signifient que le paquet contient des octets de données de 1276027591 à 1276027630.
  • ACK 544039114: Le numéro de reconnaissance illustre le prochain numéro de séquence de données attendu.
  • Gagnez 63900: La taille de la fenêtre illustre le nombre d'octets disponibles dans le tampon reçu.
  • Longueur 39: durée des données de charge utile, en octets.

Filtres avancés

Maintenant, nous pouvons utiliser certaines options de filtre de cap avancé pour afficher et analyser uniquement les paquets de données. Dans n'importe quel paquet TCP, les drapeaux TCP commencent à partir du 14e octet tel que PSH et ACK sont représentés par les 4e et 5e bits.

Nous pouvons utiliser ces informations en activant ces bits 00011000 ou 24 Pour afficher des paquets de données avec uniquement des drapeaux PSH et ACK. Nous passons ce numéro à TCPDump avec le filtre "TCP [13] = 24«, Notez que l'index du tableau dans TCP commence à zéro.

Nous filtrerons ce paquet de notre text_capture.PCAP fichier et utiliser le -UN Option pour afficher tous les détails des paquets pour vous.

De même, vous pouvez filtrer d'autres paquets d'indicateur en utilisant «TCP [13] = 8» et «TCP [13] = 2» pour uniquement des drapeaux PSH et SYN, etc.

Ubuntu $ ubuntu: ~ $ sudo tcpdump -a 'tcp [13] = 24' -r / tmp / test_capture.PCAP
Lire à partir de fichier / tmp / test_capture.PCAP, Link-Type EN10MB (Ethernet)
19:26:17.827902 IP Ubuntu.53298> 32.121.122.34.avant JC.googleSerContent.com.http: drapeaux [p.], SEQ 4286571276: 4286571363, ACK 252096002, Win 64240, longueur 87: HTTP: GET / HTTP / 1.1
E…:?@[email protected].
… "Zy .2.P… p… get / http / 1.1
Hôte: Vérifier la connectivité.ubuntu.com
Accepter: */*
Connexion: fermer

Conclusion

Dans cet article, nous vous avons présenté certains des sujets les plus importants de TCPDump. TCPDump, combiné à la puissance de la CLI, peut être d'une grande aide dans le dépannage des réseaux, l'automatisation et la gestion de la sécurité. Une fois étudiés et combinés, ses filtres et ses options de ligne de commande peuvent contribuer beaucoup à votre dépannage quotidien et à vos tâches d'automatisation et à la compréhension globale du réseau.