Introduction
Bienvenue dans le laboratoire sur l'interface réseau et la capture de base !
Imaginez que votre ordinateur est une maison et que le trafic réseau est le courrier qui y est livré et envoyé. Pour comprendre ce qui se passe, vous auriez besoin d'une caméra de surveillance braquée sur la boîte aux lettres. Dans le monde Linux, tcpdump agit comme cette puissante caméra de surveillance pour votre réseau. Il s'agit d'un outil en ligne de commande qui vous permet d'inspecter les données circulant dans et hors de votre système, vous aidant ainsi à résoudre les problèmes de connectivité et à repérer les activités suspectes.
Avant d'aller plus loin, il est utile de définir l'objet de base que nous observons. La communication réseau est divisée en petites unités appelées paquets. Un paquet est un minuscule ensemble d'informations contenant à la fois des instructions de livraison et le contenu réel. Les instructions de livraison se trouvent dans les en-têtes (headers), qui contiennent des détails tels que l'adresse source, l'adresse de destination, le protocole et les informations de port. Le contenu réel est appelé la charge utile (payload). Dans ce premier laboratoire, on ne vous demande pas encore de décoder chaque champ. L'objectif est de vous familiariser avec l'idée que tcpdump vous permet d'observer ces paquets au fur et à mesure qu'ils se déplacent dans votre système.
Dans ce laboratoire, vous apprendrez les bases de l'utilisation de tcpdump. Nous commencerons par identifier les « portes » de votre ordinateur (interfaces réseau). Ensuite, vous vous exercerez à capturer du trafic réseau en direct, à contrôler la quantité de données collectées et, enfin, à enregistrer ces captures pour les examiner plus tard, comme une vidéo enregistrée.
Identifier les interfaces réseau
Avant de pouvoir installer notre « caméra de surveillance » pour observer le trafic, nous devons savoir où se trouvent les portes. En réseau, ces portes sont appelées « interfaces réseau ». Une interface réseau est le point de connexion entre votre ordinateur et le réseau extérieur. Par exemple, une connexion filaire classique est souvent nommée eth0, tandis qu'une connexion de bouclage interne (où l'ordinateur communique avec lui-même) est nommée lo.
Cette distinction est importante car tcpdump ne capture pas « l'internet » dans un sens global vague. Il écoute à un point d'observation spécifique à l'intérieur du système d'exploitation. Si vous attachez votre capture à la mauvaise interface, vous risquez de ne rien voir d'utile, même lorsque la machine est très sollicitée. Apprendre à choisir la bonne interface est l'une des premières habitudes pratiques de l'analyse de paquets.
Pour découvrir quelles interfaces sont disponibles sur votre machine, tcpdump fournit une commande de découverte simple. L'option -D signifie « Discover » (découvrir) ou « Display » (afficher).
Comme l'écoute du trafic réseau est une action privilégiée, nous devons utiliser la commande sudo pour exécuter tcpdump avec les droits d'administrateur (super-utilisateur).
Exécutez la commande suivante dans votre terminal pour lister les interfaces :
sudo tcpdump -D
Vous devriez voir un résultat similaire à celui-ci :
1.eth0 [Up, Running, Connected]
2.lo [Up, Running, Loopback]
3.any (Pseudo-device that captures on all interfaces) [Up, Running]
4.bluetooth-monitor (Bluetooth Linux Monitor) [none]
5.nflog (Linux netfilter log (NFLOG) interface) [none]
6.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]
En regardant cette liste, eth0 (ou eth1, selon votre environnement de machine virtuelle spécifique) est la porte principale reliant votre machine virtuelle au réseau externe. L'interface lo est utilisée uniquement pour la communication interne. Vous remarquerez également un pseudo-périphérique spécial nommé any, qui est un raccourci pratique si vous souhaitez capturer le trafic traversant toutes les portes actives en même temps.
Remarque : Si votre interface principale est
eth1au lieu deeth0, veuillez remplacereth0pareth1dans toutes les commandes suivantes de ce laboratoire.
Capturer le trafic en direct
Maintenant que vous savez où se trouvent vos portes réseau, vous pouvez commencer à capturer les paquets (le courrier) qui les traversent. Nous nous concentrerons sur l'interface eth0 car elle gère la connexion réseau principale.
Lorsque l'on utilise tcpdump pour la première fois, le résultat peut sembler intimidant car chaque ligne est un résumé compact d'un paquet. Considérez chaque ligne comme une entrée de journal d'incident rapide. Elle ne montre pas encore chaque octet, mais elle affiche généralement suffisamment d'informations pour répondre à des questions de haut niveau telles que : qui a parlé à qui, quel protocole a été utilisé et quelle quantité de données a été transférée. Dans le domaine de la sécurité, cette vue synthétique est souvent le moyen le plus rapide de détecter si un système se comporte normalement ou de manière inhabituelle.
Pour indiquer à tcpdump quelle interface spécifique surveiller, vous utilisez l'option -i, qui signifie simplement « interface ».
Exécutez la commande suivante pour commencer à capturer le trafic sur eth0 :
sudo tcpdump -i eth0
Une fois cette commande exécutée, tcpdump commencera immédiatement à imprimer des informations sur chaque paquet directement dans votre terminal. Cela ressemblera à une matrice de texte défilant rapidement :
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:23:45.123456 IP 192.168.1.10.22 > 192.168.1.20.54321: Flags [P.], seq 1:100, ack 1, win 500, length 99
10:23:45.124567 IP 192.168.1.20.54321 > 192.168.1.10.22: Flags [.], ack 100, win 499, length 0
...
Le programme s'exécutera en continu, essayant de tout capturer jusqu'à ce que vous lui demandiez explicitement de s'arrêter. C'est un comportement courant pour les outils de surveillance sous Linux.
Pour arrêter la capture et reprendre le contrôle de votre terminal, maintenez la touche Ctrl enfoncée et appuyez sur C. Ce raccourci clavier (Ctrl+C) est universellement utilisé sous Linux pour interrompre et annuler un programme en cours d'exécution.
Après l'arrêt, tcpdump se fermera proprement et fournira un bref résumé de ce qu'il a vu, y compris le nombre de paquets capturés avec succès et le nombre de paquets abandonnés.
Gérer la taille de la capture (nombre de paquets)
Arrêter manuellement une capture de paquets avec Ctrl+C est une compétence utile, mais ce n'est pas toujours pratique. Sur un réseau très actif, votre écran pourrait être inondé de milliers de lignes en quelques secondes seulement. Parfois, vous n'avez besoin que d'un petit échantillon du trafic pour voir ce qui se passe.
Cela introduit un état d'esprit important pour l'analyste : la collecte de données n'est pas automatiquement utile si elle ne reste pas gérable. Dans des environnements réels, une capture mal planifiée peut submerger votre écran, remplir le stockage ou enterrer l'événement intéressant sous des milliers de paquets non pertinents. Limiter le nombre de paquets est une forme simple de contrôle de périmètre. Les bons enquêteurs restreignent constamment leur collecte afin de pouvoir réfléchir clairement à ce qu'ils observent.
Pour résoudre ce problème, tcpdump propose l'option -c, qui signifie « count » (compte). Cette option vous permet de définir une limite stricte sur le nombre de paquets que vous souhaitez capturer. Une fois ce nombre atteint, l'outil s'arrête automatiquement.
Exécutez la commande suivante pour capturer exactement 5 paquets sur l'interface eth0 :
sudo tcpdump -i eth0 -c 5
Vous verrez exactement 5 paquets s'afficher sur votre écran. Ensuite, l'invite de commande vous sera rendue automatiquement sans avoir besoin d'appuyer sur Ctrl+C.
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:28:12.345678 IP 10.0.0.5.443 > 10.0.0.2.34567: Flags [P.], seq 1:50, ack 1, win 256, length 49
...
5 packets captured
5 packets received by filter
0 packets dropped by kernel
L'utilisation de l'option -c est une excellente habitude lors de l'exploration de réseaux inconnus. Elle empêche votre terminal d'être submergé et vous donne une quantité de données gérable à analyser à votre propre rythme.
Arrêter et examiner le résultat
Regarder du texte défiler en temps réel est difficile, surtout lorsque vous essayez de repérer un détail spécifique. Une bien meilleure approche consiste à enregistrer le trafic réseau dans un fichier afin de pouvoir l'examiner attentivement plus tard. C'est exactement comme enregistrer des images de surveillance sur une cassette.
Ce passage de la visualisation en direct à la preuve enregistrée est un tournant majeur dans le travail de cybersécurité. La capture en direct est utile pour le dépannage immédiat, mais la capture enregistrée est ce qui rend possibles une analyse minutieuse, la collaboration et la reconstruction d'incidents. Une fois le trafic préservé dans un fichier, vous pouvez le rejouer à plusieurs reprises, le partager avec vos coéquipiers et appliquer de nouveaux filtres plus tard sans avoir besoin que l'événement original se reproduise.
Ces enregistrements sont généralement sauvegardés avec une extension .pcap, qui signifie « packet capture ».
Un fichier PCAP n'est pas juste un journal texte. Il stocke les données des paquets dans un format binaire structuré que les outils d'analyse comprennent. C'est pourquoi les professionnels préfèrent le format PCAP plutôt que de copier la sortie du terminal dans des notes. Le fichier préserve le minutage original et les octets bruts assez fidèlement pour que d'autres outils puissent plus tard réinterpréter la même preuve de différentes manières.
Pour enregistrer le résultat, vous utiliserez l'option -w, qui signifie « write » (écrire). Nous combinerons cela avec notre option pratique -c pour récupérer un échantillon rapide de 5 paquets et les écrire dans un fichier nommé capture.pcap.
Exécutez la commande suivante :
sudo tcpdump -i eth0 -c 5 -w capture.pcap
Cette fois, le terminal semblera inhabituellement silencieux. tcpdump n'imprime pas les détails des paquets à l'écran lorsque vous utilisez -w. Au lieu de cela, il écrit silencieusement les données binaires brutes directement dans le fichier capture.pcap dans votre répertoire actuel.
Maintenant que le trafic est enregistré, vous pouvez le relire. Vous utiliserez l'option -r, qui signifie « read » (lire), pour ouvrir le fichier. Comme vous lisez simplement un fichier dont vous êtes propriétaire, vous n'avez pas besoin des privilèges sudo pour cette étape.
Exécutez la commande suivante pour lire vos paquets enregistrés :
tcpdump -r capture.pcap
Les 5 paquets que vous avez capturés précédemment seront imprimés proprement dans votre terminal, vous laissant tout le temps nécessaire pour les examiner :
reading from file capture.pcap, link-type EN10MB (Ethernet), snapshot length 262144
10:35:22.111222 IP 10.0.0.2.22 > 10.0.0.5.55555: Flags [P.], seq 1:100, ack 1, win 300, length 99
...
L'enregistrement des captures dans un fichier PCAP est une pierre angulaire de l'analyse réseau professionnelle. Il vous permet de conserver des enregistrements fiables, de mettre l'action en pause et de partager facilement les journaux de trafic avec vos coéquipiers lors de l'enquête sur des problèmes complexes.
Résumé
Félicitations ! Vous avez terminé avec succès vos premiers pas dans l'analyse réseau.
Dans ce laboratoire, vous avez appris à déployer tcpdump comme un puissant outil d'observation. Vous vous êtes exercé à identifier les interfaces réseau à l'aide de l'option -D et à capturer du trafic en direct sur une interface spécifique à l'aide de l'option -i. Vous avez également appris à garder le contrôle sur le volume de sortie en limitant le nombre de paquets avec l'option -c. Enfin, vous avez découvert comment enregistrer des données réseau brutes dans un fichier .pcap permanent à l'aide de l'option -w et comment les relire pour un examen attentif à l'aide de l'option -r.
Ces commandes fondamentales sont le socle absolu du dépannage réseau et des enquêtes de sécurité. En maîtrisant ces bases, vous êtes sur la bonne voie pour comprendre les conversations invisibles qui se déroulent à travers vos systèmes. Continuez à vous entraîner, et les données qui circulent commenceront bientôt à prendre tout leur sens !



