Académique Documents
Professionnel Documents
Culture Documents
Votre système peut avoir une version différente installée, éventuellement avec
quelques modifications locales. Pour obtenir les meilleurs résultats, assurez-
vous que cette version de cette page de manuel répond à vos besoins. Si
nécessaire, essayez de rechercher une version différente sur ce site Web ou
dans les pages de manuel disponibles dans votre installation.
NOM
tcpdump - vider le trafic sur un réseau
SYNOPSIS
tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B taille_tampon ]
[ -c nombre ] [ --compte ] [ -C taille_fichier ]
[ -E spi@ipaddr algo:secret,... ]
[ -F fichier ] [ -G rotation_secondes ] [ -i interface ]
[ --immediate-mode ] [ -j tstamp_type ] [ -m module ]
[ -M secret ] [ --number ] [ --print ]
[ --print-sampling nth ] [ -Q in| out|inout ] [ -r fichier ]
[ -s snaplen ] [ -T type ] [ --version ] [ -V fichier ]
[ -w fichier ] [ -W filecount ] [ -y datalinktype ]
[ -z postrotate-commande ] [ -Z utilisateur ]
[ --time-stamp-precision= tstamp_precision ]
[ --micro ] [ --nano ]
[ expression ]
DESCRIPTION
Tcpdump affiche une description du contenu des paquets sur une interface
réseau qui correspond à l' expression booléenne (voir pcap-filter (7) pour la
syntaxe de l'expression ) ; la description est précédée d'un horodatage,
imprimé par défaut en heures, minutes, secondes et fractions de seconde
depuis minuit. Il peut également être exécuté avec l' indicateur -w , ce qui
l'amène à enregistrer les données du paquet dans un fichier pour une analyse
ultérieure, et/ou avec l' indicateur -r , qui l'amène à lire à partir d'un fichier de
paquets enregistré plutôt que de lire les paquets. à partir d’une interface
réseau. Il peut également être exécuté avec l' indicateur -V , ce qui lui permet
de lire une liste de fichiers de paquets enregistrés. Dans tous les cas, seuls
les paquets correspondant à l'expression seront traités par tcpdump .
Tcpdump , s'il n'est pas exécuté avec l' option -c , continuera à capturer les
paquets jusqu'à ce qu'il soit interrompu par un signal SIGINT (généré, par
exemple, en tapant votre caractère d'interruption, généralement contrôle-C)
ou un signal SIGTERM (généralement généré avec le kill (1) commande); s'il
est exécuté avec l' indicateur -c , il capturera les paquets jusqu'à ce qu'il soit
interrompu par un signal SIGINT ou SIGTERM ou que le nombre spécifié de
paquets ait été traité.
La lecture de paquets à partir d'une interface réseau peut nécessiter que vous
disposiez de privilèges spéciaux ; consultez la page de manuel pcap (3PCAP)
pour plus de détails. La lecture d'un fichier de paquets enregistré ne nécessite
pas de privilèges spéciaux.
OPTIONS
-UN
Imprimez chaque paquet (moins son en-tête de niveau lien) en
ASCII. Pratique pour capturer des pages Web.
-b
Imprimez le numéro AS dans les paquets BGP en notation ASDOT
plutôt qu'en notation ASPLAIN.
-B taille_tampon
--buffer-size= taille_tampon
Définissez la taille du tampon de capture du système d’exploitation
sur buffer_size , en unités de KiB (1 024 octets).
-c compte
Quittez après avoir reçu le nombre de paquets.
--compter
Imprimez uniquement sur la sortie standard le nombre de paquets lors
de la lecture du ou des fichiers de capture au lieu d'analyser/imprimer
les paquets. Si un filtre est spécifié sur la ligne de
commande, tcpdump compte uniquement les paquets correspondant à
l'expression du filtre.
-C taille_fichier
Avant d'écrire un paquet brut dans un fichier de sauvegarde, vérifiez si
le fichier est actuellement plus grand que file_size et, si c'est le cas,
fermez le fichier de sauvegarde actuel et ouvrez-en un nouveau. Les
fichiers de sauvegarde après le premier fichier de sauvegarde porteront
le nom spécifié avec l' indicateur -w , suivi d'un numéro, commençant à
1 et continuant vers le haut. L'unité par défaut de file_size est le million
d'octets (1 000 000 octets et non 1 048 576 octets).
-d
Videz le code de correspondance de paquets compilé sous une forme
lisible par l'homme vers la sortie standard et arrêtez-vous.
-jj
Videz le code de correspondance de paquets en tant que fragment de
programme C.
-ddd
Vider le code de correspondance de paquets sous forme de nombres
décimaux (précédés d'un décompte).
-D
--list-interfaces
Imprimez la liste des interfaces réseau disponibles sur le système et sur
lesquelles tcpdump peut capturer des paquets. Pour chaque interface
réseau, un numéro et un nom d'interface, éventuellement suivis d'une
description textuelle de l'interface, sont imprimés. Le nom de l'interface
ou le numéro peut être fourni à l' indicateur -i pour spécifier une
interface sur laquelle capturer.
Cela peut être utile sur les systèmes qui n'ont pas de commande pour
les lister (par exemple, les systèmes Windows ou les systèmes UNIX
dépourvus de ifconfig -a ) ; le numéro peut être utile sur les systèmes
Windows 2000 et versions ultérieures, où le nom de l'interface est une
chaîne quelque peu complexe.
-e
Imprimez l'en-tête au niveau du lien sur chaque ligne de vidage. Cela
peut être utilisé, par exemple, pour imprimer les adresses de couche
MAC pour des protocoles tels qu'Ethernet et IEEE 802.11.
-E
Utilisez spi@ipaddr algo:secret pour déchiffrer les paquets ESP IPsec
adressés à l'adresse et contenant la valeur de l'index des paramètres
de sécurité spi . Cette combinaison peut être répétée avec une
séparation par virgule ou par nouvelle ligne.
Notez que la définition du secret pour les paquets ESP IPv4 est
actuellement prise en charge.
secret est le texte ASCII de la clé secrète ESP. Si précédé de 0x, alors
une valeur hexadécimale sera lue.
L’option suppose la RFC 2406 ESP, et non la RFC 1827 ESP. L'option
est uniquement destinée à des fins de débogage, et l'utilisation de cette
option avec une véritable clé « secrète » est déconseillée. En
présentant la clé secrète IPsec sur la ligne de commande, vous la
rendez visible aux autres, via ps (1) et à d'autres occasions.
Fichier -F
Utilisez le fichier comme entrée pour l’expression de filtre. Une
expression supplémentaire donnée sur la ligne de commande est
ignorée.
-G rotation_secondes
Si spécifié, fait pivoter le fichier de vidage spécifié avec l' option -
w toutes les rotate_seconds secondes. Les fichiers de sauvegarde
auront le nom spécifié par -w qui doit inclure un format d'heure tel que
défini par strftime (3). Si aucun format d'heure n'est spécifié, chaque
nouveau fichier écrasera le précédent. Chaque fois qu'un nom de fichier
généré n'est pas unique, tcpdump écrasera les données
préexistantes ; il n’est donc pas conseillé de fournir une spécification
temporelle plus grossière que la période de capture.
S'ils sont utilisés conjointement avec l' option -C , les noms de fichiers
prendront la forme de ` file <count>'.
-h
--aide
Imprimez les chaînes de version tcpdump et libpcap, imprimez un
message d'utilisation et quittez.
--version
Imprimez les chaînes de version tcpdump et libpcap et quittez.
-H
Tentative de détection des brouillons d'en-têtes de maillage 802.11.
-je interface
--interface= interface
Écoutez, signalez la liste des types de couche de liaison, signalez la
liste des types d'horodatage ou signalez les résultats de la compilation
d'une expression de filtre sur l' interface . S'il n'est pas spécifié et si l'
option -d n'est pas donnée, tcpdump recherche dans la liste des
interfaces système l'interface configurée avec le numéro le plus bas (à
l'exclusion du bouclage), qui peut s'avérer être, par exemple, « eth0 ».
Sur les systèmes Linux dotés de noyaux 2.2 ou ultérieurs et sur les
versions récentes de macOS et Solaris, un argument d'interface de
« any » peut être utilisé pour capturer les paquets de toutes les
interfaces. Notez que les captures sur la pseudo-interface « any » ne se
feront pas en mode promiscuité.
-JE
--mode-moniteur
Mettez l'interface en "mode moniteur" ; ceci n'est pris en charge que sur
les interfaces Wi-Fi IEEE 802.11 et uniquement sur certains systèmes
d'exploitation.
--mode immédiat
Capturez en "mode immédiat". Dans ce mode, les paquets sont
transmis à tcpdump dès leur arrivée, plutôt que d'être mis en mémoire
tampon pour des raisons d'efficacité. C'est la valeur par défaut lors de
l'impression de paquets plutôt que de la sauvegarde des paquets dans
un « fichier de sauvegarde » si les paquets sont imprimés sur un
terminal plutôt que sur un fichier ou un canal.
-j type_tstamp
--time-stamp-type= tstamp_type
Définissez le type d'horodatage de la capture sur tstamp_type . Les
noms à utiliser pour les types d'horodatage sont donnés dans pcap-
tstamp (7) ; tous les types répertoriés ne seront pas nécessairement
valides pour une interface donnée.
-J
--list-time-stamp-types
Répertoriez les types d’horodatage pris en charge pour l’interface et
quittez. Si le type d’horodatage ne peut pas être défini pour l’interface,
aucun type d’horodatage n’est répertorié.
--time-stamp-precision= tstamp_precision
Lors de la capture, définissez la précision de l'horodatage de la capture
sur tstamp_precision . Notez que la disponibilité d'horodatages de haute
précision (nanosecondes) et leur précision réelle dépendent de la plate-
forme et du matériel. Notez également que lors de l'écriture de captures
réalisées avec une précision de la nanoseconde dans un fichier de
sauvegarde, les horodatages sont écrits avec une résolution de la
nanoseconde et le fichier est écrit avec un nombre magique différent,
pour indiquer que les horodatages sont en secondes et en
nanosecondes ; tous les programmes qui lisent les fichiers de
sauvegarde pcap ne pourront pas lire ces captures.
--micro
--nano
Raccourcis pour --time-stamp-precision=micro ou --time-stamp-
precision=nano , ajustant la précision de l'horodatage en
conséquence. Lors de la lecture de paquets à partir d'un fichier de
sauvegarde, l'utilisation de --micro tronque les horodatages si le fichier
de sauvegarde a été créé avec une précision de la nanoseconde. En
revanche, un fichier de sauvegarde créé avec une précision de la
microseconde aura des zéros à droite ajoutés à l'horodatage lorsque --
nano est utilisé.
-K
--ne pas vérifier les sommes de contrôle
N'essayez pas de vérifier les sommes de contrôle IP, TCP ou
UDP. Ceci est utile pour les interfaces qui effectuent tout ou partie de
ces calculs de somme de contrôle dans le matériel ; sinon, toutes les
sommes de contrôle TCP sortantes seront signalées comme
incorrectes.
-l
Rendre la ligne stdout mise en mémoire tampon. Utile si vous souhaitez
voir les données lors de leur capture. Par exemple,
tcpdump -l | tee-shirt
ou
-U est similaire à -l dans son comportement, mais cela fera en sorte que
la sortie soit « tamponnée par paquets », de sorte que la sortie soit
écrite sur la sortie standard à la fin de chaque paquet plutôt qu'à la fin
de chaque ligne ; ceci est mis en mémoire tampon sur toutes les plates-
formes, y compris Windows.
-L
--list-data-link-types
Répertoriez les types de liaison de données connus pour l'interface,
dans le mode spécifié, et quittez. La liste des types de liaison de
données connus peut dépendre du mode spécifié ; par exemple, sur
certaines plates-formes, une interface Wi-Fi peut prendre en charge un
ensemble de types de liaison de données lorsqu'elle n'est pas en mode
moniteur (par exemple, elle peut prendre en charge uniquement de faux
en-têtes Ethernet, ou peut prendre en charge les en-têtes 802.11 mais
pas les en-têtes 802.11 avec informations radio) ) et un autre ensemble
de types de liaison de données en mode surveillance (par exemple, il
peut prendre en charge les en-têtes 802.11 ou les en-têtes 802.11 avec
informations radio, uniquement en mode surveillance).
-mmodule _
Chargez les définitions du module SMI MIB à partir du module de
fichiers . Cette option peut être utilisée plusieurs fois pour charger
plusieurs modules MIB dans tcpdump .
-M secret
Utilisez secret comme secret partagé pour valider les résumés trouvés
dans les segments TCP avec l'option TCP-MD5 (RFC 2385), si
présente.
-n
Ne convertissez pas les adresses (c'est-à-dire les adresses d'hôte, les
numéros de port, etc.) en noms.
-N
N'imprimez pas la qualification du nom de domaine des noms
d'hôte. Par exemple, si vous donnez cet indicateur, tcpdump affichera «
nic » au lieu de « nic.ddn.mil ».
-#
--nombre
Imprimez un numéro de paquet facultatif au début de la ligne.
-O
--pas d'optimisation
N'exécutez pas l'optimiseur de code de correspondance de
paquets. Ceci n'est utile que si vous soupçonnez un bug dans
l'optimiseur.
-p
--pas de promiscuité
Ne mettez pas l'interface en mode promiscuité. Notez que l'interface
peut être en mode promiscuité pour une autre raison ; par conséquent,
« -p » ne peut pas être utilisé comme abréviation de « hôte Ethernet
{local-hw-addr} ou diffusion Ethernet ».
--imprimer
Imprime la sortie des paquets analysés, même si les paquets bruts sont
enregistrés dans un fichier avec l' indicateur -w .
--print-sampling= nième
Imprimez un paquet sur nième . Cette option active l' indicateur --print .
Les paquets non imprimés ne sont pas analysés, ce qui réduit le temps
de traitement. Définir nth sur 100 par exemple (en comptant à partir de
1) analysera et imprimera le 100ème paquet, le 200ème paquet, le
300ème paquet, et ainsi de suite.
Direction -Q
--direction= direction
Choisissez la direction d’envoi/réception pour laquelle les paquets
doivent être capturés. Les valeurs possibles sont « in », « out » et «
inout ». Non disponible sur toutes les plateformes.
-q
Sortie rapide (silencieuse ?). Imprimez moins d'informations de
protocole afin que les lignes de sortie soient plus courtes.
-r fichier
Lire les paquets à partir d' un fichier (qui a été créé avec l' option -w ou
par d'autres outils qui écrivent des fichiers pcap ou pcapng). L'entrée
standard est utilisée si le fichier est ``-''.
-S
--numéros de séquence absolus-tcp
Imprimez les numéros de séquence TCP absolus plutôt que relatifs.
-s snaplen
--snapshot-length= snaplen
Snaflen octets de données de chaque paquet plutôt que la valeur par
défaut de 262 144 octets . Les paquets tronqués en raison d'un
instantané limité sont indiqués dans la sortie par ``[| proto ]'',
où proto est le nom du niveau de protocole auquel la troncature a eu
lieu.
Notez que la prise d'instantanés plus grands augmente à la fois le
temps nécessaire au traitement des paquets et, effectivement, diminue
la quantité de mise en mémoire tampon des paquets. Cela peut
entraîner la perte de paquets. Notez également que la prise
d'instantanés plus petits supprimera les données des protocoles situés
au-dessus de la couche de transport, ce qui perdra des informations qui
peuvent être importantes. Les requêtes et réponses NFS et AFS, par
exemple, sont très volumineuses et une grande partie des détails ne
seront pas disponibles si une longueur d'instantané trop courte est
sélectionnée.
-Type T
Force les paquets sélectionnés par « expression » à être interprétés
selon le type spécifié . Les types actuellement connus sont aodv (Ad-
hoc On-demand Distance Vector protocol), carp (Common Address
Redundancy Protocol), cnfp (protocole Cisco
NetFlow), domain (Domain Name System), lmp (Link Management
Protocol), pgm (Pragmatic General Multicast), pgm_zmtp1 (ZMTP/1.0
dans PGM/EPGM), ptp (Precision Time
Protocol), quic (QUIC), radius (RADIUS), resp (REdis Serialization
Protocol), rpc (Remote Procedure Call), rtcp (Real-Time Protocole de
contrôle des applications), rtp (protocole d'applications en temps
réel), snmp (Simple Network Management
Protocol), someip (SOME/IP), tftp (Trivial File Transfer
Protocol), vat (Visual Audio Tool), vxlan (Virtual eXtensible Local Area
Network), wb (Tableau blanc distribué) et zmtp1 (ZeroMQ Message
Transport Protocol 1.0).
-t
N'imprimez pas d'horodatage sur chaque ligne de vidage.
-tt
Imprimez l'horodatage, en secondes depuis le 1er janvier 1970,
00:00:00, UTC, et en fractions de seconde depuis cette heure, sur
chaque ligne de vidage.
-ttt
Imprimez un delta (résolution en microsecondes ou nanosecondes
selon l' option --time-stamp-precision ) entre la ligne actuelle et la
ligne précédente sur chaque ligne de vidage. La résolution par défaut
est en microsecondes.
-tttt
Imprimez un horodatage sous forme d'heures, de minutes, de secondes
et de fractions de seconde depuis minuit, précédé de la date, sur
chaque ligne de vidage.
-ttttt
Imprimez un delta (résolution en microsecondes ou nanosecondes
selon l' option --time-stamp-precision ) entre la ligne actuelle et la
première ligne sur chaque ligne de vidage. La résolution par défaut est
en microsecondes.
-u
Imprimez les handles NFS non décodés.
-U
--paquet-bufferisé
Si l' option -w n'est pas spécifiée, ou si elle est spécifiée mais que l'
option --print est également spécifiée, faites en sorte que le paquet
imprimé soit « packet-buffered » ; c'est-à-dire que lorsque la description
du contenu de chaque paquet est imprimée, elle sera écrite sur la sortie
standard, plutôt que, lorsqu'il n'est pas écrit sur un terminal, d'être écrite
uniquement lorsque le tampon de sortie se remplit.
-v
Lors de l’analyse et de l’impression, produisez (un peu plus) une sortie
détaillée. Par exemple, la durée de vie, l'identification, la longueur totale
et les options d'un paquet IP sont imprimées. Permet également des
contrôles supplémentaires d’intégrité des paquets, tels que la
vérification de la somme de contrôle de l’en-tête IP et ICMP.
Lorsque vous écrivez dans un fichier avec l' option -w et que vous ne
lisez pas en même temps un fichier avec l' option -r , signalez à stderr,
une fois par seconde, le nombre de paquets capturés. Sous Solaris,
FreeBSD et éventuellement d'autres systèmes d'exploitation, cette mise
à jour périodique peut actuellement entraîner la perte de paquets
capturés lors de leur passage du noyau vers tcpdump.
-vv
Sortie encore plus verbeuse. Par exemple, des champs
supplémentaires sont imprimés à partir des paquets de réponse NFS et
les paquets SMB sont entièrement décodés.
-vvv
Sortie encore plus verbeuse. Par exemple, les options
telnet SB … SE sont imprimées dans leur intégralité. Avec -X, les
options Telnet sont également imprimées en hexadécimal.
Fichier -V
Lisez une liste de noms de fichiers à partir du fichier . L'entrée standard
est utilisée si le fichier est ``-''.
-w fichier
Écrivez les paquets bruts dans un fichier plutôt que de les analyser et
de les imprimer. Ils peuvent ensuite être imprimés avec l'option -r. La
sortie standard est utilisée si le fichier est ``-''.
Cette sortie sera mise en mémoire tampon si elle est écrite dans un
fichier ou un canal, de sorte qu'un programme lisant à partir du fichier
ou du canal peut ne pas voir les paquets pendant une durée arbitraire
après leur réception. Utilisez l' indicateur -U pour que les paquets soient
écrits dès leur réception.
-W nombre de fichiers
Utilisé conjointement avec l' option -C , cela limitera le nombre de
fichiers créés au nombre spécifié et commencera à écraser les fichiers
depuis le début, créant ainsi un tampon « rotatif ». De plus, il nommera
les fichiers avec suffisamment de 0 en tête pour prendre en charge le
nombre maximum de fichiers, leur permettant ainsi d'être triés
correctement.
-X
Lors de l'analyse et de l'impression, en plus d'imprimer les en-têtes de
chaque paquet, imprimez les données de chaque paquet (moins son
en-tête de niveau lien) en hexadécimal. Le plus petit du paquet entier
ou des octets instantanés sera imprimé. Notez qu'il s'agit de l'intégralité
du paquet de couche liaison, donc pour les couches de liaison qui
remplissent (par exemple Ethernet), les octets de remplissage seront
également imprimés lorsque le paquet de couche supérieure est plus
court que le remplissage requis. Dans l'implémentation actuelle, cet
indicateur peut avoir le même effet que -xx si le paquet est tronqué.
-xx
Lors de l'analyse et de l'impression, en plus d'imprimer les en-têtes de
chaque paquet, imprimez les données de chaque paquet, y compris son
en-tête au niveau du lien, en hexadécimal.
-X
Lors de l'analyse et de l'impression, en plus d'imprimer les en-têtes de
chaque paquet, imprimez les données de chaque paquet (moins son
en-tête de niveau lien) en hexadécimal et ASCII. C’est très pratique
pour analyser de nouveaux protocoles. Dans l'implémentation actuelle,
cet indicateur peut avoir le même effet que -XX si le paquet est tronqué.
-XX
Lors de l'analyse et de l'impression, en plus d'imprimer les en-têtes de
chaque paquet, imprimez les données de chaque paquet, y compris son
en-tête au niveau du lien, en hexadécimal et ASCII.
-z commande-postrotation
Utilisé conjointement avec les options -C ou -G , cela
obligera tcpdump à exécuter " postrotate-command file " où file est le
fichier de sauvegarde fermé après chaque rotation. Par exemple,
spécifier -z gzip ou -z bzip2 compressera chaque fichier de sauvegarde
à l'aide de gzip ou bzip2.
-Z utilisateur
--relinquish-privileges= utilisateur
Si tcpdump s'exécute en tant qu'utilisateur root, après avoir ouvert le
périphérique de capture ou le fichier de sauvegarde d'entrée, mais
avant d'ouvrir un fichier de sauvegarde pour la sortie, remplacez l'ID
utilisateur par user et l'ID de groupe par le groupe principal d' user .
expression
sélectionne les paquets qui seront vidés. Si aucune expression n'est
donnée, tous les paquets sur le réseau seront vidés. Sinon, seuls les
paquets pour lesquels l'expression est « true » seront vidés.
EXEMPLES
Pour imprimer tous les paquets arrivant ou partant du coucher du soleil :
Horodatages
hh:mm:ss.frac
et est aussi précis que l'horloge du noyau. L'horodatage reflète l'heure à
laquelle le noyau a appliqué un horodatage au paquet. Aucune tentative n'est
faite pour tenir compte du décalage temporel entre le moment où l'interface
réseau a fini de recevoir le paquet du réseau et le moment où le noyau a
appliqué un horodatage au paquet ; ce décalage temporel pourrait inclure un
délai entre le moment où l'interface réseau a fini de recevoir un paquet du
réseau et le moment où une interruption a été délivrée au noyau pour
l'amener à lire le paquet et un délai entre le moment où le noyau a traité le
paquet. l'interruption du « nouveau paquet » et l'heure à laquelle elle a
appliqué un horodatage au paquet.
Interface
Lorsque n'importe quelle interface est sélectionnée lors de la capture ou
lorsqu'un fichier de capture LINUX_SLL2 de type lien est lu, le nom de
l'interface est imprimé après l'horodatage. Ceci est suivi du type de
paquet, In et Out désignant respectivement un paquet destiné à cet hôte ou
provenant de cet hôte. D'autres valeurs possibles sont B pour les paquets de
diffusion, M pour les paquets de multidiffusion et P pour les paquets destinés
à d'autres hôtes.
Si l'option '-e' est donnée, l'en-tête au niveau du lien est imprimé. Sur
Ethernet, les adresses source et de destination, le protocole et la longueur
des paquets sont imprimés.
Sur les réseaux FDDI, l'option '-e' amène tcpdump à imprimer le champ 'frame
control', les adresses source et de destination, ainsi que la longueur du
paquet. (Le champ « contrôle de trame » régit l'interprétation du reste du
paquet. Les paquets normaux (tels que ceux contenant des datagrammes IP)
sont des paquets « asynchrones », avec une valeur de priorité comprise entre
0 et 7 ; par exemple, « async4 » . les paquets sont supposés contenir un
paquet LLC (Logical Link Control) 802.2 ; l'en-tête LLC est imprimé s'il ne
s'agit pas d'un datagramme ISO ou d'un paquet dit SNAP.
Sur les réseaux Token Ring, l'option '-e' amène tcpdump à imprimer les
champs 'access control' et 'frame control', les adresses source et de
destination, ainsi que la longueur du paquet. Comme sur les réseaux FDDI,
les paquets sont supposés contenir un paquet LLC. Que l'option « -e » soit
spécifiée ou non, les informations de routage source sont imprimées pour les
paquets routés par la source.
Sur les réseaux 802.11, l'option '-e' amène tcpdump à imprimer les champs
'frame control', toutes les adresses dans l'en-tête 802.11 et la longueur du
paquet. Comme sur les réseaux FDDI, les paquets sont supposés contenir un
paquet LLC.
Pour le premier paquet, cela indique que l'adresse source Ethernet est RTSG,
la destination est l'adresse de diffusion Ethernet, le champ de type contenait
l'hexagone 0806 (type ETHER_ARP) et la longueur totale était de 64 octets.
Paquets IPv4
Si l' indicateur -v est spécifié, les informations de l'en-tête IPv4 sont affichées
entre parenthèses après l' adresse IP ou l'en-tête de couche liaison. Le
format général de ces informations est le suivant :
tos est le type de champ de service ; si les bits ECN sont différents de zéro,
ceux-ci sont signalés comme ECT(1) , ECT(0) ou CE . ttl est la durée de
vie ; il n'est pas signalé s'il est nul. id est le champ d'identification IP. offset est
le champ de décalage du fragment ; il est imprimé, qu'il fasse ou non partie
d'un datagramme fragmenté. les drapeaux sont les drapeaux MF et DF ; + est
signalé si MF est défini, et DF est signalé si F est défini. Si aucun des deux
n’est défini, . est signalé. proto est le champ ID du protocole. length est le
champ de longueur totale ; si le paquet est un envoi TSO (TCP Segmentation
Offload) présumé, [était 0, TSO présumé] est signalé. les options sont les
options IP, le cas échéant.
Ensuite, pour les paquets TCP et UDP, les adresses IP source et destination
et les ports TCP ou UDP, avec un point entre chaque adresse IP et son port
correspondant, seront imprimés, avec un > séparant la source et la
destination. Pour les autres protocoles, les adresses seront imprimées, avec
un > séparant la source et la destination. Les informations de protocole de
niveau supérieur, le cas échéant, seront imprimées par la suite.
Paquets TCP
Src et dst sont les adresses IP et les ports source et destination. Les
Tcpflags sont une combinaison de S (SYN), F (FIN), P (PSH), R (RST), U
(URG), W (CWR), E (ECE) ou `.' (ACK), ou `none' si aucun indicateur n'est
défini. Data-seqno décrit la partie de l'espace de séquence couverte par les
données de ce paquet (voir exemple ci-dessous). Ackno est le numéro de
séquence des données suivantes attendues dans l'autre sens sur cette
connexion. Window est le nombre d'octets d'espace tampon de réception
disponible dans l'autre sens sur cette connexion. Urg indique qu'il y a des
données « urgentes » dans le paquet. Les opts sont des options TCP (par
exemple, mss 1024). Len est la longueur des données de charge utile.
Iptype , Src , dst et les drapeaux sont toujours présents. Les autres champs
dépendent du contenu de l'en-tête du protocole TCP du paquet et ne sont
affichés que si cela est approprié.
La première ligne indique que le port TCP 1023 sur rtsg a envoyé un paquet
au port de connexion sur csam. Le S indique que le drapeau SYN a été
activé. Le numéro de séquence du paquet était 768512 et ne contenait
aucune donnée. (La notation est « premier:dernier », ce qui signifie «
numéros de séquence du premier au dernier mais non compris ».) Il n'y avait
pas d'ACK superposé, la fenêtre de réception disponible était de 4 096 octets
et il y avait une option de taille de segment maximale demandant un MSS de
1024 octets.
Csam répond avec un paquet similaire, sauf qu'il inclut un ACK superposé
pour le SYN de rtsg. Rtsg accuse ensuite SYN de csam. Le « . » signifie que
l'indicateur ACK a été défini. Le paquet ne contenait aucune donnée, il n'y a
donc ni numéro de séquence ni longueur de données. Notez que le numéro
de séquence ACK est un petit entier (1). La première fois que tcpdump voit
une « conversation » TCP, il imprime le numéro de séquence du paquet. Sur
les paquets suivants de la conversation, la différence entre le numéro de
séquence du paquet actuel et ce numéro de séquence initial est
imprimée. Cela signifie que les numéros de séquence après le premier
peuvent être interprétés comme des positions relatives d'octets dans le flux de
données de la conversation (le premier octet de données dans chaque
direction étant « 1 »). `-S' remplacera cette fonctionnalité, provoquant la sortie
des numéros de séquence d'origine.
Supposons que nous souhaitions surveiller les paquets utilisés pour établir
une connexion TCP. Rappelez-vous que TCP utilise un protocole de
négociation à trois voies lorsqu'il initialise une nouvelle connexion ; la
séquence de connexion concernant les bits de contrôle TCP est
Nous souhaitons maintenant capturer les paquets dont seul le bit SYN est
défini (étape 1). Notez que nous ne voulons pas de paquets de l'étape 2
(SYN-ACK), juste un simple SYN initial. Ce dont nous avons besoin, c'est
d'une expression de filtre correcte pour tcpdump .
0 15 31
-------------------------------------------
------- ---------------
| port source | port de destination |
-------------------------------------------
------- ---------------
| numéro de séquence |
-------------------------------------------
------- ---------------
| numéro d'accusé de réception |
-------------------------------------------
------- ---------------
| HL | rsvd |C|E|U|A|P|R|S|F| taille de la
fenêtre |
-------------------------------------------
------- ---------------
| Somme de contrôle TCP | pointeur urgent |
-------------------------------------------
------- ---------------
Un en-tête TCP contient généralement 20 octets de données, sauf si des
options sont présentes. La première ligne du graphique contient les octets 0 à
3, la deuxième ligne affiche les octets 4 à 7, etc.
En commençant par 0, les bits de contrôle TCP pertinents sont contenus dans
l'octet 13 :
0 7| 15| 23| 31
----------------|---------------|----------
-----|- ---------------
| HL | rsvd |C|E|U|A|P|R|S|F| taille de la
fenêtre |
----------------|---------------|----------
-----|- ---------------
| | 13ème octet | | |
Regardons de plus près l'octet no. 13 :
| |
|---------------|
|C|E|U|A|P|R|S|F|
|---------------|
|7 5 3 0|
Ce sont les bits de contrôle TCP qui nous intéressent. Nous avons numéroté
les bits de cet octet de 0 à 7, de droite à gauche, le bit PSH est donc le bit
numéro 3, tandis que le bit URG est le numéro 5.
|C|E|U|A|P|R|S|F|
|---------------|
|0 0 0 0 0 0 1 0|
|---------------|
|7 6 5 4 3 2 1 0|
En regardant la section des bits de contrôle, nous voyons que seul le bit
numéro 1 (SYN) est défini.
En supposant que l'octet numéro 13 est un entier non signé de 8 bits dans
l'ordre des octets du réseau, la valeur binaire de cet octet est
00000010
7 6 5 4 3 2 1 0
0*2 + 0*2 + 0*2 + 0*2 + 0*2 + 0*2 + 1*2 +
0*2 = 2
Nous avons presque terminé, car nous savons maintenant que si seul SYN
est défini, la valeur du 13ème octet dans l'en-tête TCP, lorsqu'il est interprété
comme un entier non signé de 8 bits dans l'ordre des octets du réseau, doit
être exactement 2.
tcp[13] == 2
Nous pouvons utiliser cette expression comme filtre pour tcpdump afin de
surveiller les paquets pour lesquels seul SYN est défini :
L'expression dit "laissez le 13ème octet d'un datagramme TCP avoir la valeur
décimale 2", ce qui est exactement ce que nous voulons.
Supposons maintenant que nous devions capturer les paquets SYN, mais peu
nous importe si ACK ou tout autre bit de contrôle TCP est défini en même
temps. Voyons ce qui arrive à l'octet 13 lorsqu'un datagramme TCP avec
SYN-ACK défini arrive :
|C|E|U|A|P|R|S|F|
|---------------|
|0 0 0 1 0 0 1 0|
|---------------|
|7 6 5 4 3 2 1 0|
Les bits 1 et 4 sont désormais définis dans le 13ème octet. La valeur binaire
de l'octet 13 est
00010010
7 6 5 4 3 2 1 0
0*2 + 0*2 + 0*2 + 1*2 + 0*2 + 0*2 + 1*2 +
0*2 = 18
Maintenant, nous ne pouvons pas simplement utiliser 'tcp[13] == 18' dans l'
expression du filtre tcpdump , car cela sélectionnerait uniquement les paquets
pour lesquels SYN-ACK est défini, mais pas ceux avec uniquement SYN
défini. N'oubliez pas que nous ne nous soucions pas de savoir si ACK ou tout
autre bit de contrôle est défini tant que SYN est défini.
Notez que vous devez utiliser des guillemets simples ou une barre oblique
inverse dans l'expression pour masquer le caractère spécial AND ('&') du
shell.
Paquets UDP
Cela indique que le port qui sur l'hôte actinide a envoyé un datagramme UDP
au port qui sur l'hôte a diffusé , l'adresse de diffusion Internet. Le paquet
contenait 84 octets de données utilisateur.
Les autres caractères d'indicateur qui peuvent apparaître sont `-' (récursion
disponible, RA, non défini) et `|' (message tronqué, TC, set). Si la section
`question' ne contient pas exactement une entrée, `[ n q]' est imprimé.
Décodage SMB/CIFS
Les requêtes et réponses Sun NFS (Network File System) sont imprimées
comme suit :
src.sport > dst.nfs : requête NFS xid
xid len op args
src.nfs > dst.dport : réponse NFS xid
xid réponse stat len op résultats
(-v imprime également les champs TTL, ID, longueur et fragmentation de l'en-
tête IP, qui ont été omis de cet exemple.) Dans la première
ligne, sushi demande à wrl de lire 8 192 octets du fichier 21,11/12.195, au
décalage d'octets. 24576. Wrl répond « ok » ; le paquet affiché sur la
deuxième ligne est le premier fragment de la réponse, et ne fait donc que
1472 octets (les autres octets suivront dans les fragments suivants, mais ces
fragments n'ont pas d'en-têtes NFS ou même UDP et pourraient donc ne pas
être imprimés, selon l'expression de filtre utilisée). Parce que l'option -v est
donnée, certains attributs du fichier (qui sont retournés en plus des données
du fichier) sont imprimés : le type de fichier ("REG", pour fichier normal), le
mode de fichier (en octal), l'UID et le GID, ainsi que la taille du fichier.
Si l'indicateur -v est donné plus d'une fois, encore plus de détails sont
imprimés.
Les requêtes et réponses Transarc AFS (Andrew File System) sont imprimées
comme :
En général, tous les RPC AFS sont décodés au moins par nom d'appel
RPC. La plupart des RPC AFS ont au moins certains des arguments décodés
(généralement uniquement les arguments « intéressants », pour une certaine
définition d'intéressant).
Des codes d'erreur sont imprimés pour les paquets d'abandon, à l'exception
des paquets de balise Ubik (car les paquets d'abandon sont utilisés pour
signifier un vote oui pour le protocole Ubik).
Les paquets AppleTalk DDP encapsulés dans les datagrammes UDP sont
désencapsulés et vidés en tant que paquets DDP (c'est-à-dire que toutes les
informations d'en-tête UDP sont supprimées). Le fichier /etc/atalk.names est
utilisé pour traduire les numéros de réseau et de nœud AppleTalk en
noms. Les lignes de ce fichier ont la forme
nom du numéro
1,254 éther
16.1 icsd-net
1.254.110 as
Les deux premières lignes donnent les noms des réseaux AppleTalk. La
troisième ligne donne le nom d'un hôte particulier (un hôte se distingue d'un
réseau par le 3ème octet du numéro - un numéro de réseau doit avoir deux
octets et un numéro d'hôte doit avoir trois octets.) Le numéro et le nom
doivent être séparés. par espaces (blancs ou tabulations). Le
fichier /etc/atalk.names peut contenir des lignes vides ou des lignes de
commentaires (lignes commençant par un `#').
net.host.port
Paquets NBP
Les paquets NBP sont formatés comme dans les exemples suivants :
La première ligne est une demande de recherche de nom pour les écrivains
laser envoyée par l'hôte net icsd 112 et diffusée sur net jssmag. L'identifiant
nbp pour la recherche est 190. La deuxième ligne affiche une réponse à cette
requête (notez qu'elle a le même identifiant) de l'hôte jssmag.209 indiquant
qu'il dispose d'une ressource laserwriter nommée "RM1140" enregistrée sur le
port 250. La troisième line est une autre réponse à la même demande
indiquant que le techpit hôte a un graveur laser "techpit" enregistré sur le port
186.
Paquets ATP
Le formatage des paquets ATP est illustré par l'exemple suivant :
RÉTROCOMPATIBILITÉ
Les noms d'indicateur TCP tcp-ece et tcp-cwr sont devenus disponibles lors
de la liaison avec libpcap 1.9.0 ou version ultérieure.
VOIR ÉGALEMENT
stty (1), pcap (3PCAP), bpf (4), nit (4P), pcap-savefile (5) , pcap-filter (7) , pca
p-tstamp (7)
https://www.iana.org/assignments/media-types/application/vnd.tcpdump.pcap
AUTEURS
Les auteurs originaux sont :
https://www.tcpdump.org/
ftp://ftp.ee.lbl.gov/old/tcpdump.tar.Z
INSECTES
Pour signaler un problème de sécurité, veuillez envoyer un e-mail à
security@tcpdump.org.
Pour signaler des bugs et autres problèmes, contribuer à des correctifs,
demander une fonctionnalité, fournir des commentaires génériques, etc.
veuillez consulter le fichier CONTRIBUTING.md à la racine de l'arborescence
des sources de tcpdump.
NIT ne vous permet pas de surveiller votre propre trafic sortant, BPF le
fera. Nous vous recommandons d'utiliser ce dernier.
Une trace de paquet qui traverse un changement d’heure d’été donnera des
horodatages faussés (le changement d’heure est ignoré).
Les expressions de filtre sur des champs autres que ceux des en-têtes Token
Ring ne géreront pas correctement les paquets Token Ring routés par la
source.
Les expressions de filtre sur des champs autres que ceux des en-têtes 802.11
ne géreront pas correctement les paquets de données 802.11 avec les
paramètres To DS et From DS définis.
Le proto ip6 devrait poursuivre la chaîne d'en-tête, mais ce n'est pas le cas
pour le moment. La protochain ip6 est fournie pour ce comportement.
INDICE
NOM
SYNOPSIS
DESCRIPTION
OPTIONS
EXEMPLES
FORMAT DE SORTIE
Horodatages
Interface
En-têtes de niveau de lien
Paquets ARP/RARP
Paquets IPv4
Paquets TCP
Combinaisons particulières d'indicateurs TCP (SYN-ACK, URG-ACK, etc.)
Paquets UDP
Requêtes de serveur de noms TCP ou UDP
Réponses du serveur de noms TCP ou UDP
Décodage SMB/CIFS
Requêtes et réponses NFS
Demandes et réponses AFS
KIP AppleTalk (DDP en UDP)
Paquets NBP
Paquets ATP
RÉTROCOMPATIBILITÉ
VOIR ÉGALEMENT
AUTEURS
INSECTES
COLOPHON
Cette page de manuel HTML a été générée à 11:10:01 GMT, le 22 octobre
2023, à partir d'une page de manuel source dans les référentiels git « The
Tcpdump Group » à l'aide de man2html et d'autres outils.