« Tcpdump » : différence entre les versions
(Légère réorganisation + ajout de la section "Privilège de capture".) |
(Ajout de la section "Capturer le trafic nspawn") |
||
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 13 : | Ligne 13 : | ||
* '''src @IP''' : n'affiche que les paquet en provenance de cette ''IP'' | * '''src @IP''' : n'affiche que les paquet en provenance de cette ''IP'' | ||
* '''tcp''' : n'affiche que les paquets ''TCP'' | * '''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== | ==Enregistrer la capture dans un fichier== | ||
Ligne 27 : | Ligne 30 : | ||
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 : | 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 < | Création d'un groupe <syntaxhighlight lang="bash" inline>pcap</syntaxhighlight> et enrôlement de notre utilisateur dedans | ||
groupadd pcap | groupadd pcap | ||
usermod -a -G pcap VOTRE_UTILISATEUR | usermod -a -G pcap VOTRE_UTILISATEUR | ||
Changement du propriétaire du binaire < | Changement du propriétaire du binaire <syntaxhighlight lang="bash" inline>tcpdump</syntaxhighlight> au nouveau groupe | ||
chgrp pcap /usr/sbin/tcpdump | chgrp pcap /usr/sbin/tcpdump | ||
chmod 750 /usr/sbin/tcpdump | chmod 750 /usr/sbin/tcpdump | ||
Ligne 41 : | Ligne 44 : | ||
===Source de la section=== | ===Source de la section=== | ||
* https://www.linuxtutorial.co.uk/tcpdump-eth0-you-dont-have-permission-to-capture-on-that-device/ | * 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= | =Source= | ||
* https://www.tcpdump.org/tcpdump_man.html | * 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.