« Tcpdump » : différence entre les versions
(Page créée avec « Category:Analyseur de trames À faire ») |
(Ajout de la section "Capturer le trafic nspawn") |
||
(3 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Category:Analyseur de trames]] | [[Category:Analyseur de trames]] | ||
=Capturer du trafic= | |||
==Exemple d'utilisation== | |||
tcpdump -n -vv -X -i any port not 22 and src 192.168.1.45 and tcp | |||
Paramètres : | |||
* '''-n''' : ne pas résoudre les nom ''DNS'' | |||
* '''-vv''' : décode l'ensemble du protocole | |||
* '''-X''' : affiche le résultat comme un éditeur hexadécimal | |||
* '''-i any''' : écouter sur toute les interfaces | |||
* '''port not 22''' : exclure les paquets venants du port 22 de la capture | |||
* '''and''' : concaténation de règles. Le paramètre '''or''' peut également être utilisé | |||
* '''src @IP''' : n'affiche que les paquet en provenance de cette ''IP'' | |||
* '''tcp''' : n'affiche que les paquets ''TCP'' | |||
Le mot clé de certains protocoles n'est pas forcement évident. Afin de filtrer l{{'}}''ARP'' et le ''Spanning Tree'', le filtre [https://stackoverflow.com/a/68834223 suivant] peut être utilisé : | |||
not arp and not llc | |||
==Enregistrer la capture dans un fichier== | |||
tcpdump -n -i any src 192.168.1.45 -w /tmp/capture.pcap | |||
Paramètre : | |||
* '''-w''' : Enregistre le résultat de la capture dans un fichier. | |||
''Le fichier peut ensuite être lut par [[Wireshark]].'' | |||
{{info|La capture peut être limité en nombre de paquets avec l'option '''-c''' ou en taille avec '''-C''' (unité en Mo).}} | |||
==Privilège de capture== | |||
Par défaut, un utilisateur standard ne peut capturer le trafic d'une interface réseau. Pour y remédier, il convient de suivre les étapes suivantes : | |||
Création d'un groupe <syntaxhighlight lang="bash" inline>pcap</syntaxhighlight> et enrôlement de notre utilisateur dedans | |||
groupadd pcap | |||
usermod -a -G pcap VOTRE_UTILISATEUR | |||
Changement du propriétaire du binaire <syntaxhighlight lang="bash" inline>tcpdump</syntaxhighlight> au nouveau groupe | |||
chgrp pcap /usr/sbin/tcpdump | |||
chmod 750 /usr/sbin/tcpdump | |||
dpkg-statoverride --add root pcap 750 /usr/sbin/pcap | |||
Attribution des capacités noyau adéquates au binaire | |||
setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump | |||
===Source de la section=== | |||
* https://www.linuxtutorial.co.uk/tcpdump-eth0-you-dont-have-permission-to-capture-on-that-device/ | |||
=Capturer le trafic nspawn= | |||
Il est parfois bien utile de capturer le trafic de l'espace de noms d'un conteneur [[Conteneurs - systemd|NSPawn]]. Pour ce faire, il faut identifier le ''PID'' d'un processus exécuté dans le conteur et exécuter ''tcpdump'' dans son espace de noms en utilisant cet identifiant comme point d'entrée : | |||
# Trouver un ''PID'' exécuté dans l'espace de noms désiré : <code>ps -eo pid,args,machine | grep nom_conteneur</code> | |||
# Exécuter un ''tcpdump'' dedans : <code>nsenter -t $PID -n tcpdump -ni any</code> | |||
{{astuce|Cette astuce fonctionne pour n'importe quelle commande.}} | |||
=Source= | |||
* https://www.tcpdump.org/tcpdump_man.html |
Dernière version du 19 juillet 2025 à 20:52
Capturer du trafic
Exemple d'utilisation
tcpdump -n -vv -X -i any port not 22 and src 192.168.1.45 and tcp
Paramètres :
- -n : ne pas résoudre les nom DNS
- -vv : décode l'ensemble du protocole
- -X : affiche le résultat comme un éditeur hexadécimal
- -i any : écouter sur toute les interfaces
- port not 22 : exclure les paquets venants du port 22 de la capture
- and : concaténation de règles. Le paramètre or peut également être utilisé
- src @IP : n'affiche que les paquet en provenance de cette IP
- tcp : n'affiche que les paquets TCP
Le mot clé de certains protocoles n'est pas forcement évident. Afin de filtrer l'ARP et le Spanning Tree, le filtre suivant peut être utilisé :
not arp and not llc
Enregistrer la capture dans un fichier
tcpdump -n -i any src 192.168.1.45 -w /tmp/capture.pcap
Paramètre :
- -w : Enregistre le résultat de la capture dans un fichier.
Le fichier peut ensuite être lut par Wireshark.
INFORMATION
La capture peut être limité en nombre de paquets avec l'option -c ou en taille avec -C (unité en Mo).Privilège de capture
Par défaut, un utilisateur standard ne peut capturer le trafic d'une interface réseau. Pour y remédier, il convient de suivre les étapes suivantes :
Création d'un groupe pcap
et enrôlement de notre utilisateur dedans
groupadd pcap usermod -a -G pcap VOTRE_UTILISATEUR
Changement du propriétaire du binaire tcpdump
au nouveau groupe
chgrp pcap /usr/sbin/tcpdump chmod 750 /usr/sbin/tcpdump dpkg-statoverride --add root pcap 750 /usr/sbin/pcap
Attribution des capacités noyau adéquates au binaire
setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
Source de la section
Capturer le trafic nspawn
Il est parfois bien utile de capturer le trafic de l'espace de noms d'un conteneur NSPawn. Pour ce faire, il faut identifier le PID d'un processus exécuté dans le conteur et exécuter tcpdump dans son espace de noms en utilisant cet identifiant comme point d'entrée :
- Trouver un PID exécuté dans l'espace de noms désiré :
ps -eo pid,args,machine | grep nom_conteneur
- Exécuter un tcpdump dedans :
nsenter -t $PID -n tcpdump -ni any
ASTUCE
Cette astuce fonctionne pour n'importe quelle commande.