tcpdump

Guide de l'utilitaire d'analyse du trafic réseau TCPDUMP

Guide de l'utilitaire d'analyse du trafic réseau TCPDUMP

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

Il est natif de Linux, de sorte que la plupart des distributions Linux l'installent dans le cadre du système d'exploitation standard. Tcpdump est un programme interfacé avec libpcap, qui est une bibliothèque pour la capture de datagrammes 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 d'indicateur TCP avancés.

Installation de tcpdump

L'installation par défaut de Tcpdump dans votre distribution dépend des options sélectionnées lors du 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 Ubuntu Linux.

Capture 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 lister toutes les interfaces disponibles en utilisant le tcpdump commande avec le "-ré” 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 pour capter le trafic sur le “enp0s3" interface, avec un "-c” flag pour limiter les paquets capturés et écrivez “-w” il à 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 des données du réseau quittant et arrivant à l'hôte à l'aide du hôte commande pour un Port. De plus, j'ai utilisé le "-m” indicateur pour empêcher tcpdump de capturer les recherches DNS. Ce drapeau est très utile pour saturer le trafic lors du dépannage du réseau.

ubuntu$ubuntu:~$ sudo tcpdump -i enp0s3 -c 20 hôte 10.0.2.15 et port dst 80 -w /tmp/test_capture1.pcap
tcpdump : écoute sur enp0s3, type lien EN10MB (Ethernet), taille de capture 262144 octets
20 paquets capturés
21 paquets reçus par filtre
0 paquets abandonnés par le noyau

Nous utilisons le "et” commande pour capturer uniquement les 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 souhaitez pas utiliser le "-c” flag pour limiter le trafic de capture, vous pouvez utiliser un signal d'interruption, je.e., Ctrl+C, arrêter le processus d'isolement.

Lecture des fichiers Tcpdump

La lecture des fichiers capturés par tcpdump peut être très écrasante. 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 enregistré dans le /tmp dossier. Nous dirigerons la sortie vers ok commande pour afficher uniquement l'adresse IP source et les ports et les rediriger vers la commande diriger pour n'afficher que les 5 premières entrées.

ubuntu$ubuntu:~$ sudo tcpdump -r /tmp/test_capture1.pcap | awk -F " " 'print$3' | tête -5
lecture du fichier /tmp/test_capture.pcap, type de lien EN10MB (Ethernet)
IP ubuntu.53298
IP ubuntu.53298
IP ubuntu.53298
IP ubuntu.53298
IP ubuntu.53298

Cependant, il est recommandé d'utiliser les adresses IP et les ports en nombre pour résoudre les problèmes de réseau. Nous désactiverons la résolution de nom IP avec le "-m” les noms des drapeaux et des ports avec “-nn".

ubuntu$ubuntu:~$ sudo tcpdump -i enp0s3 -n
tcpdump : sortie détaillée supprimée, utilisez -v ou -vv pour le décodage complet du protocole
écoute sur enp0s3, type lien EN10MB (Ethernet), taille de capture 262144 octets
20:08:22.146354 IP10.0.2.15.54080 > 172.67.39.148.443 : Drapeaux [P.], seq 1276027591:1276027630, ack 544039114, win 63900, longueur 39
20:08:22.146745 IP10.0.2.15.43456 > 54.204.39.132.443 : Drapeaux [P.], seq 3381018839:3381018885, ack 543136109, gagner 65535, longueur 46
20:08:22.147506 IP172.67.39.148.443 > 10.0.2.15.54080 : Drapeaux [.], ack 39, gagner 65535, longueur 0
20:08:22.147510 IP54.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, gagner 65535, longueur 123
20:08:22.202868 IP10.0.2.15.41050 > 216.58.209.142.443 : Drapeaux [P.], seq 1:40, ack 123, gagner 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 l'information est affichée et quels paramètres elle comprend.

Tcpdump affiche chaque paquet dans une ligne, avec un horodatage et des informations par rapport au 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 IP10.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 et le numéro de port de destination.
  • Drapeaux[P.]/: Les drapeaux représentent l'état de la connexion. Dans ce cas, [P.] indique le paquet d'accusé de réception PUSH. Le champ indicateur comprend également d'autres valeurs telles que :
    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. A l'exception du premier paquet où les nombres sont en absolu, les paquets suivants ont des nombres relatifs. Dans ce cas, les nombres ici signifient que le paquet contient des octets de données de  1276027591 à 1276027630.
  • ack 544039114 : le numéro d'accusé de réception décrit le prochain numéro de séquence de données attendu.
  • win 63900 : la taille de la fenêtre représente le nombre d'octets disponibles dans le tampon reçu.
  • longueur 39 : longueur des données de charge utile, en octets.

Filtres avancés

Nous pouvons maintenant utiliser certaines options avancées de filtre de cap pour afficher et analyser uniquement les paquets de données. Dans n'importe quel paquet TCP, les indicateurs TCP commencent à partir du 14e octet, de sorte 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 les paquets de données avec uniquement les drapeaux PSH et ACK. On passe ce numéro à tcpdump avec le filtre "tcp[13]=24", notez que l'index du tableau dans TCP commence à zéro.

Nous allons filtrer ce paquet de notre text_capture.pcap fichier et utilisez le -UNE option pour afficher tous les détails du paquet pour vous.

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

ubuntu$ubuntu:~$ sudo tcpdump -A 'tcp[13]=24' -r /tmp/test_capture.pcap
lecture du fichier /tmp/test_capture.pcap, type de lien EN10MB (Ethernet)
19:26:17.827902 IP ubuntu.53298 > 32.121.122.34.avant JC.googleusercontent.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 : contrôle de connectivité.Ubuntu.com
J'accepte: */*
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 pour le dépannage, l'automatisation et la gestion de la sécurité du réseau. Une fois étudiés et combinés, ses filtres et ses options de ligne de commande peuvent grandement contribuer à vos tâches quotidiennes de dépannage et d'automatisation et à votre compréhension globale du réseau.

Bataille pour Wesnoth 1.13.6 Développement publié
Bataille pour Wesnoth 1.13.6 publiée le mois dernier, est la sixième version de développement de la 1.13.x series et il apporte un certain nombre d'am...
Comment installer League Of Legends sur Ubuntu 14.04
Si vous êtes fan de League of Legends, alors c'est l'occasion pour vous de tester League of Legends. Notez que LOL est pris en charge sur PlayOnLinux ...
Installez le dernier jeu de stratégie OpenRA sur Ubuntu Linux
OpenRA est un moteur de jeu de stratégie en temps réel libre/gratuit qui recrée les premiers jeux Westwood comme le classique Command & Conquer: Red A...