Auteur Sujet: Mode d'emploi TcpDump  (Lu 25231 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Mode d'emploi TcpDump
« le: 12 juillet 2011 à 07:15:53 »
Mode d'emploi TcpDump

Afficher les parque IPv4 uniquement (et pas les paquets IPv6) :
sudo tcpdump -i eth0 -n ip

Afficher les parque IPv6 uniquement (et pas les paquets IPv4) :
sudo tcpdump -i eth0 -n ip6

Afficher les parque IPv4 sur le port 25 :
sudo tcpdump -i eth0 -n ip and port 25

Pour créer un disque virtuel en RAM (pas de risque de perte de paquets) de 1000 Mo pour les captures :

mkdir -p /tmp/capture
sudo mount -t tmpfs -o size=1000m tmpfs /tmp/capture


Voici les lignes de commande que j'utilise pour TcpDump :

Pour capturer la totalité des paquets (-s 0 = illimité) :
sudo tcpdump -i eth0 -n -s 0 -w /tmp/capture/fichier.pcap

Pour ne capturer que les 200 premiers octets de chaque paquets :
sudo tcpdump -i eth0 -n -s 200 -w /tmp/capture/fichier.pcap

Pour capturer la totalité des paquets qui viennent de l'IP 192.168.1.1 et du port 5001 :
sudo tcpdump -i eth0 -n -s 0 -w /tmp/capture/fichier.pcap host 192.168.1.1 and port 5001

Pour ne capturer que les 200 premiers octets de chaque paquets qui viennent de l'IP 192.168.1.1 et du port 5001 :
sudo tcpdump -i eth0 -n -s 200 -w /tmp/capture/fichier.pcap host 192.168.1.1 and port 5001

Pour ne capturer que les paquets IGMP (en totalité) :
sudo tcpdump -i eth0 -n -s 0 -w /tmp/capture/fichier.pcap 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.pcap 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

DURÉE DE LA CAPTURE
L'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.pcap host 87.88.221.5 or 89.80.250.70 and udp -c 90000 2> /tmp/drop_pendant_capture.txt

Pour 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


Mode d'emploi DumpPcap

sudo dumpcap -i eth0 -q -s 200 -w /tmp/capture/fichier.pcapng

L'installation nécessite wireshark-common qui nécessite x11 et wireshark
=> lourd pour un serveur sans interface graphique.

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Mode d'emploi Tshark
« Réponse #1 le: 12 juillet 2011 à 07:16:35 »
Mode d'emploi Tshark

Pour installer Tshark sous Windows :
Installer tout simplement wireshark

Pour installer Tshark sous Debian / Ubuntu :
sudo apt install tshark

Pour capturer la totalité des paquets et faire des fichier horodatés de 100 Mo sans limite :

Sous windows : "c:\Program Files\Wireshark\tshark.exe" -i 2 -b filesize:100000 -n -w c:\captures\fichier.pcap
Sous linux : # tshark -b filesize:100000 -i eth0 -n -w fichier.pcap

Créer un buffer circulaire de 10 fichiers de 100000 Mo :

Sous windows : "c:\Program Files\Wireshark\tshark.exe" -i 2 -b filesize:100000 -b files:10 -n -w c:\captures\fichier.pcap
Sous linux : # tshark -b filesize:100000 -b files:10 -i eth0 -n -w fichier.pcap

La capture change de fichier tous les 100 Mo et seuls les 10 derniers fichiers sont conservés.
Attention, si tshark est arrêté et redémarré, on a 10 nouveaux fichiers (les 10 de la précédente commande sont gardés indéfiniment)

Faire une capture de 100 Mo puis arrêter en affichant les statistiques RTP (perte de paquets) :

Sous windows : "c:\Program Files\Wireshark\tshark.exe" -i 2 -n -w test.pcap -a filesize:100000 -z rtp,streams
Sous linux : # tshark -i eth0 -n -w test.pcap -a filesize:100000 -z rtp,streams

# tshark -i eth0 -n -w test.pcap -a filesize:100000 -z rtp,streams
Running as user "root" and group "root". This could be dangerous.
Capturing on eth4
73938 packets captured
========================= RTP Streams ========================
    Src IP addr  Port    Dest IP addr  Port       SSRC          Payload  Pkts         Lost   Max Delta(ms)  Max Jitter(ms) Mean Jitter(ms) Problems?
  84.96.146.150  5000   233.136.0.116 65000 0x1324FE6A MPEG-II transport streams 73879     0 (0.0%)            7.39            0.58            0.17
==============================================================


Faire une capture de 10 min puis arrêter en affichant les statistiques RTP (perte de paquets) :

Sous windows : "c:\Program Files\Wireshark\tshark.exe" -i 2 -n -w test.pcap -a duration:600 -z rtp,streams
Sous linux : # tshark -i eth0 -n -w test.pcap -a duration:600 -z rtp,streams


Vérifier les pertes de paquets du flux TV pendant 10minutes (statistiques RTP) :

Sous windows : "c:\Program Files\Wireshark\tshark.exe" -i 2 -a duration:600 -q -z rtp,streams
Sous linux : # tshark -i eth0 -a duration:600 -q -z rtp,streams

# tshark -i eth0 -a duration:600 -q -z rtp,streams
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
141961 packets captured
========================= RTP Streams ========================
    Src IP addr  Port    Dest IP addr  Port       SSRC          Payload  Pkts         Lost   Max Delta(ms)  Max Jitter(ms) Mean Jitter(ms) Problems?
  84.96.146.150  5000   233.136.0.116 65000 0x1324FE6A MPEG-II transport streams 141656   639 (0.4%)          922.74            2.27            0.26 X
==============================================================

Ne pas afficher les paquets capturés (pour batch) : rajouter l'option -q

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Capturer du trafic dans un fichier en réalisant en // une analyse
« Réponse #2 le: 12 juillet 2011 à 07:43:44 »
Capturer du trafic dans un fichier .pcap en réalisant en // une analyse avec xplico

Les commandes à utiliser sont :

mkfifo p.cpap
tcpdump -s0 -A -w b.cpap -i eth0 -p &
tail -f b.cpap > p.cpap
./xplico -m pcap -f p.cpap


Xplico, outil d'analyse des captures au format .pcap (il ne réalise pas ces captures) est disponible sur http://www.xplico.org/

corrector

  • Invité
TcpDump vs. root
« Réponse #3 le: 12 juillet 2011 à 13:23:28 »
Attention, pour utiliser TcpDump, il faut être root.
Ou plutôt CAP_NET_ADMIN?

Pour faire moderne se la péter avec ces débilités de capabilities.

Mais c'est ridicule qu'il faille être root ou super-utilisateur ou partiellement super-utilisateur juste pour faire ça, c'est pas du tout dans la philosophie Unix.

Mais en fait aucun Unixoïde ne suit la philosophie Unix.

Remarque : Avec WireShark sous Windows Vista, pas besoin d'être super-utilisateur.
« Modifié: 12 juillet 2011 à 13:43:43 par corrector »

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Mode d'emploi TcpDump
« Réponse #4 le: 12 juillet 2011 à 14:04:06 »
Sous Windows (XP / Vista / 7) il faut être admin pour installer le service qui tourne en tache de fond (Win PCAP) qui permet de réaliser la capture.

Sans WinPcap il n'est pas possible de réaliser une capture (mais on peut ouvrir des fichiers dans l'application)

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Mode d'emploi TcpDump
« Réponse #5 le: 28 février 2016 à 19:30:18 »
Afficher uniquement le trafic IPv6 (quelle que soit l'IP) : sudo tcpdump -i eth0 -vv ip6

Pour prendre une capture uniquement du trafic IPv6 par contre je n'ai pas trouvé.

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Mode d'emploi TcpDump
« Réponse #6 le: 17 décembre 2019 à 21:10:58 »
Exemple de capture en mode texte avec TcpDump :

C'est un simple échange en http (chargement d'une page web), en IPv6, sur le VLAN 74, avec le trafic reçu qui a le DSCP AF11 (valeur codée: 10)
Le client (Ubuntu 16.04 kernel 4.15) comme le serveur sont Linux (Ubuntu 18.04 kernel 5.0) ont les timestameps TCP sont activés.
Aucune pertes de paquet. Le client et le serveur sont distants de 1,5ms aller+retour (l'IPv6 utilisée est une IPv6 anycast, on a donc été sur le serveur le plus proche).

# tcpdump -i em1 -n -s 0 host 2001:860:deff:1000::2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em1, link-type EN10MB (Ethernet), capture size 262144 bytes
20:54:39.413841 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [S], seq 1492876876, win 28800, options [mss 1440,sackOK,TS val 3445040657 ecr 0,nop,wscale 7], length 0
20:54:39.415334 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [S.], seq 1451340923, ack 1492876877, win 42840, options [mss 1440,sackOK,TS val 4059867241 ecr 3445040657,nop,wscale 9], length 0
20:54:39.415381 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [.], ack 1, win 225, options [nop,nop,TS val 3445040658 ecr 4059867241], length 0
20:54:39.415457 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [P.], seq 1:88, ack 1, win 225, options [nop,nop,TS val 3445040658 ecr 4059867241], length 87: HTTP: GET / HTTP/1.1
20:54:39.416843 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [.], ack 88, win 84, options [nop,nop,TS val 4059867242 ecr 3445040658], length 0
20:54:39.417723 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [.], seq 1:14281, ack 88, win 84, options [nop,nop,TS val 4059867243 ecr 3445040658], length 14280: HTTP: HTTP/1.1 200 OK
20:54:39.417757 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [.], ack 14281, win 449, options [nop,nop,TS val 3445040661 ecr 4059867243], length 0
20:54:39.419339 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [P.], seq 14281:28561, ack 88, win 84, options [nop,nop,TS val 4059867245 ecr 3445040661], length 14280: HTTP
20:54:39.419369 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [.], ack 28561, win 672, options [nop,nop,TS val 3445040662 ecr 4059867245], length 0
20:54:39.419381 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [.], seq 28561:31417, ack 88, win 84, options [nop,nop,TS val 4059867245 ecr 3445040661], length 2856: HTTP
20:54:39.419391 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [.], ack 31417, win 716, options [nop,nop,TS val 3445040662 ecr 4059867245], length 0
20:54:39.419411 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [P.], seq 31417:42841, ack 88, win 84, options [nop,nop,TS val 4059867245 ecr 3445040661], length 11424: HTTP
20:54:39.419421 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [.], ack 42841, win 895, options [nop,nop,TS val 3445040662 ecr 4059867245], length 0
20:54:39.421007 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [.], seq 42841:59977, ack 88, win 84, options [nop,nop,TS val 4059867246 ecr 3445040662], length 17136: HTTP
20:54:39.421037 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [.], ack 59977, win 1163, options [nop,nop,TS val 3445040664 ecr 4059867246], length 0
20:54:39.421109 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [P.], seq 59977:71401, ack 88, win 84, options [nop,nop,TS val 4059867246 ecr 3445040662], length 11424: HTTP
20:54:39.421129 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [.], ack 71401, win 1341, options [nop,nop,TS val 3445040664 ecr 4059867246], length 0
20:54:39.421133 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [.], seq 71401:75685, ack 88, win 84, options [nop,nop,TS val 4059867246 ecr 3445040662], length 4284: HTTP
20:54:39.421136 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [.], ack 75685, win 1408, options [nop,nop,TS val 3445040664 ecr 4059867246], length 0
20:54:39.421286 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [P.], seq 75685:85681, ack 88, win 84, options [nop,nop,TS val 4059867246 ecr 3445040662], length 9996: HTTP
20:54:39.421316 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [.], ack 85681, win 1380, options [nop,nop,TS val 3445040664 ecr 4059867246], length 0
20:54:39.421333 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [P.], seq 85681:95402, ack 88, win 84, options [nop,nop,TS val 4059867246 ecr 3445040662], length 9721: HTTP
20:54:39.421344 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [.], ack 95402, win 1317, options [nop,nop,TS val 3445040664 ecr 4059867246], length 0
20:54:39.421550 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [F.], seq 88, ack 95402, win 1408, options [nop,nop,TS val 3445040664 ecr 4059867246], length 0
20:54:39.423094 IP6 2001:860:deff:1000::2.80 > 2a01:6e00:10:410::2.40006: Flags [F.], seq 95402, ack 89, win 84, options [nop,nop,TS val 4059867248 ecr 3445040664], length 0
20:54:39.423130 IP6 2a01:6e00:10:410::2.40006 > 2001:860:deff:1000::2.80: Flags [.], ack 95403, win 1408, options [nop,nop,TS val 3445040666 ecr 4059867248], length 0
^C
26 packets captured
26 packets received by filter
0 packets dropped by kernel

Même échange (seconde itéartion du même téléchargement) avec le fichier .pcap enregistré : 201912_tcpdump_ipv6_http.pcap