« Tcpdump » : différence entre les versions

De Wiki doc

(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 <source lang="bash" inline>pcap</source> et enrôlement de notre utilisateur dedans
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 <source lang="bash" inline>tcpdump</source> au nouveau groupe
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 :

  1. Trouver un PID exécuté dans l'espace de noms désiré : ps -eo pid,args,machine | grep nom_conteneur
  2. Exécuter un tcpdump dedans : nsenter -t $PID -n tcpdump -ni any

ASTUCE

Cette astuce fonctionne pour n'importe quelle commande.

Source