Commande tcpdump
Objectif
Vide le trafic sur un réseau
Syntaxe
tcpdump [ -a ] [ -A ] [ -B taille_tampon ] [ -d ] [ -D ] [ -e ] [ -f ] [ -l ] [ -K ] [ -L ] [ -M secret ] [ -r fichier ]][ -n ] [ -N ] [ -O ] [ -p ][ -q ] [ -Q [ -V ] ] [ -R ] [ -S ] [ -t ] [ -T ][ -u ] [ -U ] [ -v ] [ -x ] [ -X ] [ '-c count ][ -C file_size ] [ -F file ] [ -G rotate_seconds ] [ -i interface ] [ -s snaplen ] [ -w file ][ -E addr ] [ -y datalinktype ][-z command ][-Z user ] [ expression ]
Descriptif
La commande tcpdump imprime les en-têtes des paquets sur une interface réseau qui correspondent à l'expression booléenne. Vous pouvez exécuter la commande avec l'indicateur -w pour enregistrer les données de paquet dans un fichier en vue d'une analyse plus approfondie. Vous pouvez également exécuter la commande avec l'indicateur -r pour lire les données d'un fichier de paquets sauvegardé à la place des paquets d'une interface réseau. Dans tous les cas, seuls les paquets qui correspondent à une expression sont traités par la commande tcpdump .
S'il n'est pas exécuté avec l'indicateur -c , tcpdump continue à capturer des paquets jusqu'à ce qu'il soit interrompu par un signal SIGINT (généralement control-C) ou un signal SIGTERM (généralement la commande kill(1) ). Si tcpdump est exécuté avec l'indicateur -c , il capture les paquets jusqu'à ce qu'il soit interrompu par un signal SIGINT ou SIGTERM ou que le nombre de paquets spécifié ait été traité.
- paquets "reçus par le filtre"
- Compte tous les paquets, qu'ils aient ou non été appariés par l'expression de filtre.
- paquets "supprimés par le noyau"
- Nombre de paquets supprimés en raison d'un manque d'espace dans la mémoire tampon.
Primitives autorisées
- hôte dst
- True si la zone de destination IPv4/v6 du paquet est hôte, qui peut être une adresse ou un nom.
- hôte src
- True si la zone source IPv4/v6 du paquet est hôte.
- hôte hôte
- True si la source ou la destination IPv4/v6 du paquet est l'hôte. Toutes les expressions hôte ci-dessus peuvent être précédées des mots clés ip, arp, rarp ou ip6 comme dans: ip host host, ce qui équivaut à:
Si l'hôte est un nom comportant plusieurs adresses IP, une correspondance est vérifiée pour chaque adresse.ether proto \ip and host host - éther dst ehost
- True si l'adresse de destination Ethernet est
ehost. Ehost peut être un nom de /etc/ethers ou un nombre (voir ethers (3N) pour le format numérique). - éther src ehost
- True si l'adresse source Ethernet est
ehost. - ehost d'hôte Ethernet
- True si l'adresse source ou de destination de l'Ethernet est
ehost. - hôte passerelle
- True si le paquet a utilisé l'hôte comme passerelle. Par exemple, l'adresse source ou de destination Ethernet était l'hôte, mais ni la source IP ni la destination IP n'était l'hôte. L'hôte doit être un nom et doit être trouvé à la fois par les mécanismes de résolution du nom d'hôte vers l'adresse IP de la machine (fichier de nom d'hôte, DNS, NIS, etc.) et par le mécanisme de résolution du nom d'hôte vers l'adresse Ethernet de la machine (/etc/ethers, , etc.). Une expression équivalente est ether host ehost et non host host qui peut être utilisée avec des noms ou des nombres pour host /ehost. Cette syntaxe ne fonctionne pas dans la configuration IPv6-enabled pour le moment.
- dst net net
- True si l'adresse de destination IPv4/v6 du paquet possède un numéro de réseau.
- Réseau net src
- True si l'adresse source IPv4/v6 du paquet possède un numéro de réseau.
- net net
- True si l'adresse source ou de destination IPv4/v6 du paquet possède un numéro de réseau.
- masque de réseau net
- True si l'adresse IP correspond au réseau avec le masque de réseau spécifique. Il peut être qualifié avec src ou dst. Cette syntaxe n'est pas valide pour le réseau IPv6 .
- net net/len
- True si l'adresse IPv4/v6 correspond à un réseau avec une longueur de masque de réseau en bits. Peut être qualifié avec src ou dst.
- port dst
- True si le paquet est ip/tcp, ip/udp, ip6/tcp orip6/udp et a une valeur de port de destination. Le port peut être un nombre ou un nom utilisé dans /etc/services (voir tcp (4P) et udp (4P)). Si un nom est utilisé, le numéro de port et le protocole sont vérifiés. Si un nombre ou un nom ambigu est utilisé, seul le numéro de port est vérifié (par exemple, le port dst 513 imprime à la fois le trafic tcp / login et le trafic udp / qui, et le domaine de port imprime à la fois le trafic tcp / domain et le trafic udp / domain).
- port du port src
- True si le paquet a une valeur de port source de port.
- port de port
- True si le port source ou de destination du paquet est le port. Toutes les expressions de port ci-dessus peuvent être précédées des mots clés tcp ou udp, comme dans: tcp src port qui correspond uniquement aux paquets tcp dont le port source est le port.
- moins de longueur
- True si la longueur du paquet est inférieure ou égale à la longueur. Cette valeur est équivalente à len < = length.
- longueur supérieure
- True si la longueur du paquet est supérieure ou égale à la longueur. Cette valeur est équivalente à: len > = length.
- protocole ip proto
- True si le paquet est un paquet IP de type protocole. Le protocole peut être un nombre ou l'un des noms icmp, icmp6, igmp, igrp, pim, ah, esp, vrrp, udp ou tcp. Notez que les identificateurs tcp, udp et icmp sont également des mots clés et doivent être échappés via une barre oblique inversée (\), qui est \\ dans le shell C. Notez que cette primitive ne chasse pas la chaîne d'en-tête de protocole.
- Protocole proto ip6
- True si le paquet est un paquet IPv6 de type protocole. Notez que cette primitive ne chasse pas la chaîne d'en-tête de protocole.
- Protocole protochain ip6
- True si le paquet est un paquet IPv6 et qu'il contient un en-tête de protocole avec un protocole de type dans sa chaîne d'en-tête de protocole. Par exemple, ip6 protochain 6 correspond à tout paquet IPv6 avec l'en-tête de protocole TCP dans la chaîne d'en-tête de protocole. Le paquet peut contenir, par exemple, un en-tête d'authentification, un en-tête de routage ou un en-tête d'option tronçon par tronçon, entre l'en-tête IPv6 et l'en-tête TCP. Le code BPF (Berkeley Packet Filter) émis par cette primitive est complexe et ne peut pas être optimisé par le code de l'optimiseur BPF dans tcpdump. Il peut donc être assez lent.
- Protocole ip protochain
- Equivalent au protocole protochain ip6 . Mais, il est utilisé pour Ipv4.
- diffusion ether
- True si le paquet est un paquet de diffusion Ethernet. Le mot clé ether est facultatif.
- Diffusion IP
- True si le paquet est un paquet de diffusion IPv4 . Il vérifie les conventions de diffusion all-zeroes et all-one et recherche le masque de sous-réseau sur l'interface sur laquelle la capture est effectuée.
Si le masque de sous-réseau de l'interface sur laquelle la capture est effectuée n'est pas disponible, par exemple parce que l'interface sur laquelle la capture est effectuée ne comporte pas de masque de réseau, cette vérification ne fonctionne pas correctement.
- multidiffusion ether
- True si le paquet est un paquet multidiffusion Ethernet. Le mot clé ether est facultatif. Il s'agit d'une abréviation pour
ether[0] & 1 != 0. - Multidiffusion IP
- True si le paquet est un paquet de multidiffusion IP.
- Multidiffusion ip6
- True si le paquet est un paquet de multidiffusion IPv6 .
- protocole ether proto
- True si le paquet est de type éther protocol.Protocol peut être un nombre ou l'un des noms ip, ip6, arp, rarp, atalk, aarp, decnet, sca, lat, mopdl, moprc, iso, stp, ipx ou netbeui. Notez que ces identificateurs sont également des mots clés et doivent être échappés via une barre oblique inversée (\).[ Dans le cas de FDDI (par exemple, ` fddi protocol arp'), Token Ring (par exemple, ` tr protocol arp') et IEEE 802.11 Wireless LANS (par exemple, ` wlan protocol arp'), pour la plupart de ces protocoles, l'identification de protocole provient de l'en-tête 802.2 Logical Link Control (LLC), qui est généralement superposé à l'en-tête FDDI, Token Ring ou 802.11 . Lors du filtrage de la plupart des identificateurs de protocole sur FDDI, Token Ring ou 802.11, tcpdump vérifie uniquement la zone d'ID de protocole d'un en-tête LLC au format SNAP avec un UnitIdentifier (OUI) organisationnel de 0x000000, pour Ethernet encapsulé ; il ne vérifie pas si le paquet est au format SNAP avec un OUI de 0x000000. Les exceptions sont les suivantes:
- iso
- tcpdump vérifie les zones DSAP (Destination Service Access Point) et SSAP (Source Service Access Point) de l'en-tête LLC.
- stp et netbeui
- tcpdump vérifie le DSAP de l'en-tête LLC.
- Atalk
- tcpdump recherche un paquet au format SNAP avec un OUI de 0x080007 et le type AppleTalk .
- iso, sap et netbeui
- tcpdump recherche un cadre 802.3 , puis vérifie l'en-tête LLC comme pour FDDI, Token Ring et 802.11.
- Atalk
- tcpdump recherche à la fois le type AppleTalk dans une trame Ethernet et un paquet au format SNAP comme pour FDDI, Token Ring et 802.11.
- aarp
- tcpdump recherche le type ARP AppleTalk dans une trame Ethernet ou dans une trame SNAP 802.2 avec un OUI de 0x000000;
- IPX
- tcpdump recherche le type IPX dans un cadre Ethernet, le type IPX DSAP dans l'en-tête LLC, l'encapsulation 802.3-with-no-LLC-header d'IPX et le type IPX dans un cadre SNAP.
- Hôte src decnet
- True si l'adresse source DECNET est un hôte, qui peut être une adresse au format 10.123, ou un nom d'hôte DECNET. [ La prise en charge du nom d'hôte DECNET est disponible uniquement sur les systèmes Ultrix configurés pour exécuter DECNET. ]
- Hôte dst decnet
- True si l'adresse de destination DECNET est l'hôte.
- hôte decnet
- True si l'adresse source ou de destination de DECNET est l'hôte.
- Interface ifname
- True si le paquet a été consigné comme provenant de l'interface spécifiée.
- sur l'interface
- Synonyme du modificateur ifname.
- Nbre rnr
- Vrai si le paquet a été enregistré comme correspondant au numéro de règle PF spécifié (ne s'applique qu'aux paquets enregistrés par pf(4) OpenBSD's ).
- Num rulenum
- Synonomique avec le modificateur rnr.
- code raison
- True si le paquet a été consigné avec le code raison PF spécifié. Les codes connus sont : match, bad-offset, fragment, short, normalize, et memory (s'applique uniquement aux paquets enregistrés par 'pf(4) OpenBSD's ).
- action action
- True si PF a pris l'action spécifiée lors de la consignation du paquet. Les actions connues sont : pass et block (s'applique uniquement aux paquets enregistrés par le 'pf(4) OpenBSD's )
- netbeui
- ip, ip6, arp, rarp, atalk, aarp, decnet, iso, stp, ipx.
Abréviations pour:
où p est l'un des protocoles ci-dessus.ether proto plat, moprc, mopdl
Abréviations pour:
où p est l'un des protocoles ci-dessus. Notez que tcpdump ne sait pas actuellement comment analyser ces protocoles.ether proto p - vlan [id_vlan]
- True si le paquet est un paquet VLAN IEEE 802.1Q . Si vlan_id est spécifié, seuls les paquets ayant le vlan_id spécifié sont définis sur true. Notez que le premier mot clé vlan rencontré dans l'expression modifie les décalages de décodage pour le reste de l'expression en supposant que le paquet est un paquet VLAN.
- tcp, udp, icmp
- Abréviations pour:
où p est l'un des protocoles ci-dessus.ip proto p or ip6 proto p - Protocole iso proto
- True si le paquet est un paquet OSI de type protocole. Le protocole peut être un nombre ou l'un des noms clnp, esis ou isis.
- clnp, esis, isis
- Abréviations pour:
- iso proto p
- l1 l2, iih, lsp, snp, csnp, psnp
- Abréviations des types d'unité PDU IS-IS.
- vpi n
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, avec un identificateur de chemin virtuel n.
- vci n
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, avec un identificateur de canal virtuel n.
- meuble de caisse
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et s'il s'agit d'un paquet ATM LANE. Notez que le premier mot clé de voie rencontré dans l'expression modifie les tests effectués dans le reste de l'expression en supposant que le paquet est soit un paquet Ethernet émulé LANE, soit un paquet de contrôle LE LANE. Si lane n'est pas spécifié, les tests sont effectués sous l'hypothèse que le paquet est un paquet encapsulé LLC.
- Llc
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et s'il s'agit d'un paquet LLC encapsulé.
- oamf4s
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et s'il s'agit d'une cellule de flux OAM F4 de segment (VPI=0 & VCI=3).
- oamf4e
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et s'il s'agit d'une cellule de flux OAM de bout en bout F4 (VPI=0 & VCI=4).
- oamf4
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et s'il s'agit d'un segment ou d'une cellule de flux OAM de bout en bout F4 (VPI=0 & (VCI=3 | VCI=4).
- oam
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et s'il s'agit d'un segment ou d'une cellule de flux OAM de bout en bout F4 (VPI=0 & (VCI=3 | VCI=4).
- métac
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et qu'il est sur un circuit de notification meta (VPI=0 & VCI=1).
- ccc
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et qu'il est sur un circuit de signalisation de diffusion (VPI=0 & VCI=2).
- Sc
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et qu'il est sur un circuit de signalisation (VPI=0 & VCI=5).
- ilmique
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et est sur un circuit ILMI (VPI=0 & VCI=16).
- msgconnexion
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et qu'il se trouve sur un circuit de signalisation et qu'il s'agit d'un message de configuration Q.2931 , de procédure d'appel, de connexion, de connexion, d'accusé de réception, de libération ou de libération terminé.
- métaconnexion
- True si le paquet est un paquet ATM, pour SunATM sous Solaris, et qu'il se trouve sur un circuit de notification meta et qu'il s'agit d'un message Q.2931 de configuration, d'appel, de connexion, de libération ou de libération terminée.
- expr relop expr
- True si la relation est valide, où relop est l'un des suivants: >, <, > =, < =, =, ! = et expr est une expression arithmétique composée de constantes entières (exprimées dans la syntaxe C standard), les opérateurs binaires normaux [ +,-, *, /, &, | ], un opérateur de longueur et des accesseurs de données de paquets spéciaux. Pour accéder aux données du paquet, utilisez la syntaxe suivante:
Proto est l'un des éléments ether, fddi, tr, wlan, ppp, slip, link, ip, arp, rarp, tcp, udp, icmp ou ip6, et indique la couche de protocole pour l'opération d'index. (ether, fddi, wlan, tr, ppp, slip et link font tous référence à la couche de liaison.) Notez que les types de protocole tcp, udp et autres types de protocole de couche supérieure ne s'appliquent qu'à IPv4et non à IPv6 (ce qui sera corrigé ultérieurement). Le décalage d'octet, par rapport à la couche protocole indiquée, est donné par expr. La taille est facultative et indique le nombre d'octets dans la zone d'intérêt ; elle peut être un, deux ou quatre, et la valeur par défaut est un. L'opérateur de longueur, indiqué par le mot clé len, indique la longueur du paquet.proto [ expr : size ]Par exemple,
ether[0] & 1 != 0intercepte tout le trafic de multidiffusion. L'expressionip[0] & 0xf !=5intercepte tous les paquets IP avec des options. L'expressionip[6:2] & 0x1fff = 0intercepte uniquement les datagrammes non fragmentés et le fragment zéro des datagrammes fragmentés. Cette vérification est appliquée implicitement aux opérations d'index tcp et udp. Par exemple, tcp [ 0 ] signifie toujours le premier octet de l'en-tête TCP, et jamais le premier octet d'un fragment intermédiaire.Certains décalages et valeurs de champ peuvent être exprimés sous forme de noms plutôt que sous forme de valeurs numériques. Les décalages de zone d'en-tête de protocole suivants sont disponibles: icmptype (zone de type ICMP), icmpcode (zone de code ICMP) et tcpflags (zone d'indicateurs TCP).
Les valeurs de zone de type ICMP suivantes sont disponibles: icmp-echoreply, icmp-unreach, icmp-sourcequench, icmp-redirect, icmp-echo, icmp-routeradvert, icmp-routersolliciter, icmp-timxceed, icmp-paramprob, icmp-tstamp, icmp-tstampreply, icmp-ireq, icmp-ireqreply, icmp-maskreq, icmp-maskreply.
Les valeurs de zone d'indicateurs TCP suivantes sont disponibles: tcp-fin, tcp-syn, tcp-rst, tcp-push, tcp-ack, tcp-urg.
Combinaison de primitives
Negation (`!' or `not').
Concatenation (`&&' or `and').
Alternation (`||' or `or').La négation a la priorité la plus élevée. L'alternance et la concaténation ont la même priorité et sont associées de gauche à droite. Notez que les explicits et les jetons, et non la juxtaposition, sont désormais requis pour la concaténation.Si un identificateur est indiqué sans mot clé, le mot clé le plus récent est utilisé. Par exemple, not host vs and ace est abrégé pour not host vs and host ace qui ne doit pas être confondu avec not ( host vs or ace )
Les arguments d'expression peuvent être transmis à tcpdump en tant qu'argument unique ou en tant qu'arguments multiples, selon ce qui est le plus pratique. En règle générale, si l'expression contient des métacaractères Shell, il est plus facile de la transmettre sous la forme d'un seul argument entre guillemets. Plusieurs arguments sont concaténés avec des espaces avant d'être analysés.
Indicateurs
| Article | Descriptif |
|---|---|
| -a | Tentatives de conversion d'adresses réseau et de diffusion en noms. |
| -A | Imprime chaque paquet (sans son en-tête de niveau de liaison) en ASCII. Pratique pour capturer des pages Web. |
| -B taille_tampon | Indique la taille de la mémoire tampon en kilooctets. Les valeurs plus petites sont acceptées. Si la taille de la mémoire tampon est inférieure à la valeur minimale définie par le filtre BPF, la taille réelle de la mémoire tampon est ignorée et la valeur définie par le filtre BPF (Berkeley Packet Filter) est utilisée. Si l'option -B n'est pas spécifiée, la taille de la mémoire tampon est par défaut de 32 768. |
| -c Nombre | Quitte après avoir reçu Nombre de paquets. |
| -C taille_fichier | Avant d'écrire un paquet brut dans un fichier de sauvegarde, vérifiez si le fichier est actuellement supérieur à taille_fichier et, si tel est le cas, fermez le fichier de sauvegarde en cours et ouvrez un nouveau fichier. Les fichiers de sauvegarde après le premier fichier de sauvegarde portent le nom spécifié avec l'indicateur -w , suivi d'un nombre, en commençant à 2 et en continuant vers le haut. Les unités de file_size sont des millions d'octets (1 000 000 octets, pas 1 048 576 octets). |
| -d | Vide le code de correspondance de paquet compilé dans la sortie standard, puis s'arrête. |
| -d | Imprime la liste des interfaces réseau disponibles sur le système et sur lesquelles tcpdump peut capturer des paquets. Pour chaque interface de réseau, un numéro et un nom d'interface (éventuellement suivis d'une description textuelle de l'interface) sont imprimés. Le nom ou le numéro de l'interface peut être fourni à l'indicateur -i pour spécifier une interface sur laquelle effectuer la capture. |
| -jj | Vide le code de correspondance de paquets en tant que fragment de programme C. |
| -ddd | Vide le code de correspondance de paquets sous forme de nombres décimaux (précédé d'un nombre). |
| -e | Imprime l'en-tête de niveau lien sur chaque ligne de vidage. |
| - E addr | Utilisez spi@ipaddr algo:secret pour déchiffrer les paquets IPsec ESP qui sont adressés à addr et qui contiennent la valeur d'index de paramètre de sécurité spi. Cette combinaison peut être répétée avec une séparation par virgules ou par retours à la ligne.Remarque: la définition du secret pour les paquets ESP IPv4 est désormais prise en charge.
Les algorithmes peuvent être
L'option suppose RFC2406 ESP, et non RFC1827 ESP. L'option est utilisée uniquement à des fins de débogage et l'utilisation de cette option avec une clé secrète réelle est déconseillée. En présentant la clé secrète IPsec sur la ligne de commande, vous la rendez visible par les autres utilisateurs, via ps (1) et d'autres occasions. Outre la syntaxe ci-dessus, la commande tcpdump peut utiliser le nom du fichier de syntaxe pour lire le fichier spécifié. Le fichier est ouvert lors de la réception du premier paquet ESP, de sorte que tous les droits spéciaux que tcpdump a pu avoir été accordés auraient déjà dû être supprimés. |
| -f | Imprime les adresses IPv4 étrangères numériquement plutôt que symboliquement. Le test des adresses IPv4 externes est effectué à l'aide de l'adresse IPv4 et du masque de réseau de l'interface sur laquelle la capture est effectuée. Cette option ne fonctionne pas correctement si cette adresse ou ce masque de réseau n'est pas disponible. |
| -F fichier | Utilisez file comme entrée pour l'expression de filtre. Une expression supplémentaire indiquée sur la ligne de commande est ignorée. |
| -G secondes de rotation | Fait pivoter le fichier de vidage spécifié avec l'option -w toutes les rotate_seconds secondes. S'ils sont utilisés conjointement avec l'option -C , les noms de fichier prennent la forme file < nombre>, si la valeur spécifiée dans la variable taille est atteinte en premier. Sinon, la commande tcpdump fait pivoter le fichier lorsque la valeur spécifiée dans la variable rotate_seconds est écoulée. |
| -i interface | Ecoute sur l' interface. S'il n'est pas spécifié, tcpdump recherche dans la liste des interfaces du système le numéro le plus bas, configuré pour l' interface (à l'exclusion du bouclage). Les liens sont rompus en choisissant la correspondance la plus ancienne. Un numéro d' interface imprimé par l'indicateur -D peut être utilisé comme argument interface . |
| -K | Ignore la vérification du total de contrôle TCP sur les interfaces qui effectuent le calcul du total de contrôle TCP dans le matériel. Si cet indicateur n'est pas utilisé, tous les totaux de contrôle TCP sortants sont marqués comme étant incorrects. |
| -l | Rend la ligne stdout mise en mémoire tampon. Utile si vous souhaitez voir les données lors de leur capture. Par exemple : |
| -l | Répertorie les types de liaison de données connus pour l'interface et les exits. |
| -m module | Charge les définitions de module SMI MIB à partir du fichier module . Cette option peut être utilisée plusieurs fois pour charger plusieurs modules MIB dans tcpdump. |
| -M | Utilise le secret en tant que secret partagé pour valider les historiques trouvés dans les segments TCP à l'aide de l'option TCP-MD5 (Request for Comment (RFC) 2385). |
| -n | Bloque la conversion des adresses hôte et des numéros de port en noms. |
| -n | Omet la qualification du nom de domaine d'impression des noms d'hôte. Par exemple, tcpdump imprime nic au lieu de nic.ddn.mil. |
| -O | Empêche tcpdump d'exécuter l'optimiseur de code de correspondance de paquets. Cela n'est utile que si vous suspectez un bogue dans l'optimiseur. |
| -P | Arrête de mettre l'interface en mode espion. Notez que l'interface peut être en mode espion pour une autre raison ; par conséquent, -p ne peut pas être utilisé comme abréviation pour ether host {local-hw-addr} ou ether broadcast. |
| -q | Sortie rapide. Imprime moins d'informations de protocole de sorte que les lignes de sortie soient plus courtes. |
| -q | Active le traçage système filtré pour les paquets enregistrés. Vous devez exécuter le démon AIX trace pour enregistrer les événements système sélectionnés qui sont liés au sous-système de communication réseau. |
| -r fichier | Lire les paquets du fichier (qui a été créé avec l'option -w ). L'entrée standard est utilisée si file est "-". |
| -r | Suppose que les paquets ESP/AH sont basés sur une ancienne spécification. (RFC1825 à RFC1829). S'il est spécifié, tcpdump n'imprime pas la zone de prévention de réexécution. Etant donné qu'il n'existe pas de zone de version de protocole dans la spécification ESP/AH, tcpdump ne peut pas déduire la version du protocole ESP/AH. |
| -S | Imprime les numéros de séquence TCP absolus plutôt que relatifs. |
| -s mnaplen | Snarf snaplen octets de données de chaque paquet au lieu de la valeur par défaut de 68. 68 octets sont appropriés pour IP, ICMP, TCP et UDP, mais peuvent tronquer les informations de protocole à partir du serveur de noms et des paquets NFS (voir ci-dessous). Les paquets tronqués en raison d'une image instantanée limitée sont indiqués dans la sortie avec [ |proto], où proto est le nom du niveau de protocole auquel la troncature a eu lieu. Notez que la prise d'images instantanées de plus grande taille augmente le temps nécessaire au traitement des paquets et réduit efficacement le volume de la mise en mémoire tampon des paquets. Cela peut entraîner la perte de paquets. Vous devez limiter snaplen au plus petit nombre qui capture les informations de protocole qui vous intéressent. Si vous définissez snaplen sur 0, la longueur requise est utilisée pour intercepter des paquets entiers. |
| -T | Force l'interprétation du type spécifié des paquets sélectionnés par expression . Les types actuellement connus sont cnfp (protocole Cisco NetFlow ), rpc (Remote Procedure Call), rtp (protocole Real-Time Applications), rtcp (protocole Real-Time Applications Control), snmp (Simple Network Management Protocol), tftp (Trivial File Transfer Protocol), vat (Visual Audio Tool) et wb (Distributed White Board). |
| -t | Omet l'impression d'un horodatage sur chaque ligne de vidage. |
| -tt | Imprime un horodatage non formaté sur chaque ligne de vidage. |
| -ttt | Imprime un delta (en microsecondes) entre la ligne en cours et la ligne précédente sur chaque ligne de vidage. |
| -tttt | Imprime un horodatage au format par défaut, suivi de la date sur chaque ligne de vidage. |
| -ttttt | Imprime un delta (en microsecondes) entre la ligne en cours et la première ligne sur chaque ligne de vidage. |
| -u | Imprime les descripteurs NFS non décodés. |
| -u | Sauvegardez la sortie via l'option -w , par exemple, "packet-buffered". Au fur et à mesure que chaque paquet est sauvegardé, il est écrit dans le fichier de sortie, au lieu d'être écrit uniquement lorsque la mémoire tampon de sortie se remplit. |
| -v | Indique une sortie un peu plus prolixe. Par exemple, la durée de vie, l'identification, la longueur totale et les options d'un paquet IP sont imprimées. Active également des vérifications supplémentaires de l'intégrité des paquets, telles que la vérification de la somme de contrôle de l'en-tête IP et ICMP. |
| -vv | Sortie encore plus prolixe que -v. Par exemple, des zones supplémentaires sont imprimées à partir de NFS et les paquets de réponse sont entièrement décodés. |
| -vvv | Sortie encore plus prolixe que -vv. Par exemple, telnet SB ... Les options SE sont imprimées en intégralité. Avec -X , les options Telnet sont également imprimées au format hexadécimal. |
| -v | Définit l'indicateur de débogage de socket (option de socket SO_DEBUG ) et le niveau de trace sur les sockets. Cet indicateur doit être utilisé avec l'indicateur -Q . |
| -w fichier | Ecrit les paquets bruts dans le fichier au lieu de les analyser et de les imprimer. Ils peuvent être imprimés ultérieurement avec l'indicateur -r . La sortie standard est utilisée si Fichier est "-". |
| -X | Imprime chaque paquet (sans son en-tête de niveau de liaison) au format hexadécimal. Le plus petit des octets de paquet ou de serpent est imprimé. Notez qu'il s'agit de l'intégralité du paquet de couche de liaison, de sorte que pour les couches de liaison qui se connectant (par exemple Ethernet), les octets de remplissage sont également imprimés lorsque le paquet de couche supérieure est plus court que le remplissage requis. |
| -xx | Imprime chaque paquet, y compris son en-tête de niveau de liaison, au format hexadécimal. |
| -X | Imprime chaque paquet (sans son en-tête de niveau de liaison) en hexadécimal et en ASCII. C'est très pratique pour analyser de nouveaux protocoles. |
| -y type_liaison de données | Définit le type de liaison de données à utiliser lors de la capture de paquets vers datalinktype. |
| -z commande | Lorsqu'elle est utilisée avec l'option -C ou -G , la commande tcpdump exécute la commande spécifiée sur le fichier de sauvegarde. Par exemple, la spécification de -z gzip ou -z bzip2 comprime chaque fichier de sauvegarde à l'aide de la commande gzip ou bzip2 . Remarque: La commande tcpdump exécute la commande -z en parallèle à la capture en utilisant la priorité la plus basse de sorte que cela ne perturbe pas le processus de capture.
|
| -Z utilisateur | Exécute la commande tcpdump avec les privilèges système de l'utilisateur spécifié. |
Paramètres
- expressions
- Sélectionne les paquets qui doivent être vidés. Si une expression est fournie, seuls les paquets pour lesquels les expressions sont
truesont vidés ; sinon, tous les paquets sur le réseau sont vidés.L'expression est constituée d'une ou de plusieurs primitives. Les primitives sont généralement constituées d'un ID (nom ou numéro) précédé d'un ou de plusieurs qualificatifs. Il existe trois types de qualificateur:- Les qualificateurs type indiquent à quel type de primitive le nom d'ID ou le numéro fait référence. Les types possibles sont host, net et port. Par exemple, ` host foo', ` net 128.3', ` port 20'. S'il n'existe pas de qualificateur de type, l'hôte est pris en compte.
- Les qualificateurs dir spécifient une direction de transfert particulière vers et / ou depuis l'ID. Les directions possibles sont src, dst, src ou dst et src et dst. S'il n'y a pas de qualificateur de répertoire, src ou dst est pris par défaut. Pour certaines couches de liens, telles que SLIP et pour d'autres types de périphérique, les qualificateurs entrant et sortant peuvent être utilisés pour spécifier la direction souhaitée.
- Les qualificateurs proto limitent la correspondance à un protocole particulier. Les protos possibles sont fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp et udp. S'il n'y a pas de qualificateur proto, tous les protocoles compatibles avec le type sont pris en compte.
fddi est un alias pour ether. L'analyseur le traite comme signifiant "le niveau de liaison de données utilisé sur l'interface réseau spécifiée". Les en-têtes FDDI contiennent des adresses de source et de destination de type Ethernet, et contiennent souvent des types de paquets de type Ethernet, de sorte que vous pouvez filtrer ces zones FDDI comme avec les zones Ethernet analogues. Les en-têtes FDDI contiennent également d'autres zones, mais elles ne peuvent pas être nommées dans une expression de filtre.
Comme fddi, tr et wlan sont des alias pour ether. Les instructions du paragraphe précédent concernant les en-têtes FDDI s'appliquent également aux en-têtes de réseau local sans fil en anneau à jeton et 802.11 . Pour les en-têtes 802.11 , l'adresse de destination est la zone DA et l'adresse source est la zone SA ; les zones BSSID, RA et TA ne sont pas testées.
En plus de ce qui précède, il existe des mots clés ` primitifs'spéciaux qui ne suivent pas le modèle: gateway, broadcast, less, plus grand et expressions arithmétiques. Tous ces éléments sont décrits ci-après.
Des expressions de filtre plus complexes sont générées à l'aide des mots
and,oretnotpour combiner des primitives.
Variables d'environnement
ksh$ LIBPATH=/opt/freeware/lib tcpdump -E"algo:secret"Statut de sortie
| Article | Descriptif |
|---|---|
| 0 | Succès |
| différent de zéro | Erreur |
Security
La lecture de paquets à partir d'une interface réseau nécessite un accès en lecture à /dev/bpf*, qui est généralement root uniquement. La lecture de paquets à partir d'un fichier ne nécessite pas de privilèges spéciaux, à l'exception des droits de lecture de fichier.
Exemples
- Pour imprimer tous les paquets arrivant ou partant du coucher du soleil, entrez:
tcpdump host sundown - Pour imprimer le trafic entre hélios et chaud ou ace, entrez:
tcpdump host helios and \( hot or ace \) - Pour imprimer tous les paquets IP entre ace et n'importe quel hôte sauf helios, entrez:
tcpdump ip host ace and not helios - Pour imprimer tout le trafic entre les hôtes locaux et les hôtes à Berkeley, entrez:
tcpdump net ucb-ether - Pour imprimer tout le trafic ftp via le snup de la passerelle Internet, entrez:
tcpdump 'gateway snup and (port ftp or ftp-data)'Remarque: L'expression est placée entre guillemets pour éviter que le shell interprète mal les parenthèses. - Pour imprimer le trafic provenant ou destiné à des hôtes locaux (si vous faites la passerelle vers un autre réseau, cela ne devrait jamais arriver sur votre réseau local), entrez:
tcpdump ip and not net localnet - Pour imprimer les paquets de début et de fin (les paquets SYN et FIN) de chaque conversation TCP impliquant un hôte non local, entrez:
tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and d dst net localnet' - Pour imprimer les paquets IP de plus de 576 octets envoyés via le snup de passerelle, entrez:
tcpdump 'gateway snup and ip[2:2] > 576' - Pour imprimer les paquets de diffusion IP ou de multidiffusion qui n'ont pas été envoyés via la diffusion Ethernet ou la multidiffusion, entrez:
tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224' - Pour imprimer tous les paquets ICMP qui ne sont pas des demandes / réponses d'écho (par exemple, pas des paquets ping), entrez:
tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-e choreply'
Erreur standard
Toutes les erreurs et tous les avertissements sont envoyés à stderr.
Restrictions
Une trace de paquet qui traverse un changement d'heure d'été donne des horodatages décalés (le changement d'heure est ignoré).
Les expressions de filtrage sur les zones autres que celles des en-têtes Token Ring gèrent les paquets Token Ring routés à la source de manière incorrecte.
Les expressions de filtrage sur les zones autres que celles des en-têtes 802.11 traitent les paquets de données 802.11 avec les deux ensembles de données To DS et From DS définis de manière incorrecte.
ip6 proto doit poursuivre la chaîne d'en-tête, mais ce n'est pas le cas pour le moment. ip6 protochain est fourni pour ce comportement.
L'expression arithmétique sur les en-têtes de couche de transport, comme tcp [ 0 ], ne fonctionne pas sur les paquets IPv6 . Il examine uniquement les paquets IPv4 .
Le traçage des paquets ne fonctionne pas dans l'environnement WPAR car le pilote BPF sous-jacent n'est pas compatible avec WPAR .
Fichiers
| Article | Descriptif |
|---|---|
| /usr/sbin/tcpdump | Emplacement de la commande tcpdump . |
| /usr/lib/libpcap.a | |
| /dev/bpf* | |
| /opt/freeware/lib/libcrypto.a(libcrypto.so) | Facultatif |