Mode d'emploi TcpDumpPour installer TcpDump sous Debian / Ubuntu :
sudo aptitude install tcpdump
Attention, pour utiliser TcpDump, il faut être root. Sous Ubuntu, il suffit de mettre sudo devant le nom de la commande. (sudo tcpdump ....)
Voici les lignes de commande que j'utilise pour TcpDump :Pour capturer la totalité des paquets (-s 0 = illimité) :
# tcpdump -i eth0 -n -s 0 -w fichier.cap
Pour ne capturer que les 100 premiers octets de chaque paquets :
# tcpdump -i eth0 -n -s 100 -w fichier.cap
Pour capturer la totalité des paquets qui viennent de l'IP 192.168.1.1 et du port 5001 :
# tcpdump -i eth0 -n -s 0 -w fichier.cap host 192.168.1.1 and port 5001
Pour ne capturer que les 100 premiers octets de chaque paquets qui viennent de l'IP 192.168.1.1 et du port 5001 :
# tcpdump -i eth0 -n -s 100 -w fichier.cap host 192.168.1.1 and port 5001
Pour ne capturer que les paquets IGMP (en totalité) :
# tcpdump -i eth0 -n -s 0 -w fichier.cap igmp
Pour ne capturer qu'un certain nombre de paquets, rajouter l'option -c suivi du nombre de paquets
-c 10000 : 10 000 paquets vidéos UDP (MPEG2-TS) = 13,2 Mo
-c 100000 : 100 000 paquets vidéos UDP (MPEG2-TS) = 132,1 Mo
- eth0 représente l'interface Ethernet sur laquelle je capture le trafic
- fichier.cap le chemin/nom du fichier crée
- -n = Ne pas convertir les adresses (comme l'IP, le port, ect...) vers des noms.
TAILLE DES PAQUETS CAPTURES :modifier l'argument -s pour la taille de la capture : exemple -s 68 pour limiter a 68 octets (valeur min) ou -s 0 pour tout capturer
FILTRE DE CAPTURE- Pour capturer la totalité des paquets qui viennent de l'IP 192.168.1.1 et du port 5001 :
=> tcpdump -i eth0 -n -s 0 -w fichier.cap host 192.168.1.1 and port 5001
- Pour ne capturer que les 100 premiers octets de chaque paquets qui viennent de l'IP 192.168.1.1 et du port 5001 :
=> tcpdump -i eth0 -n -s 100 -w fichier.cap host 192.168.1.1 and port 5001
- Pour ne capturer que les paquets IGMP (en totalité) :
=> tcpdump -i eth0 -n -s 0 -w fichier.cap igmp
DUREE DE LA CAPTUREL'argument -c fixe la durée de la capture a xxx paquets quel ques soit la taille des paquets.
Pour information, 30000 paquets représente 50 mo avec des paquets de 1500 octets
Si on prend des petits paquets (VoIP par exemple) ou si on limite la taille de la capture, il est possible d'augmenter cette valeur par exemple à 300 000 pour une taille identique.
# Ecriture du cache sur le disque pour que dump ne se produise pas pendant l'écriture
/bin/sync
/usr/bin/sudo /usr/bin/nice -n -10 /usr/bin/ionice -c1 /usr/sbin/tcpdump -i eth0 -n -s 0 -w /tmp/capture.cap host 87.88.221.5 or 89.80.250.70 and udp -c 90000 2> /tmp/drop_pendant_capture.txtPour arrêter proprement la capture si un script lance tcpdump en boucle : la commande a taper est : /usr/bin/sudo /usr/bin/killall -s INT tcpdump