# Administration réseau sous Linux/Tcpdump

* Configuration réseau
* NFS
* Samba
* Apache
* ProFTPD
* DHCP
* Netfilter
* TCP Wrapper
* Tcpdump
* SSH
* Routage
* TP VDN
* TP Configuration réseau
* TP NFS
* TP Samba
* TP Apache
* TP FTP
* TP TCP Wrapper
* TP Tcpdump
* TP SSH
* TP DHCP
* TP Global
* TP Netfilter
* TP Licence - Configuration réseau
* TP Licence - Deux sites web derrière un firewall
* TP Licence - Serveur intranet
* Configuration réseau
* NFS
* Samba
* Apache
* ProFTPD
* DHCP
* Netfilter
* TCP Wrapper
* Tcpdump
* SSH
* Routage
* TP VDN
* TP Configuration réseau
* TP NFS
* TP Samba
* TP Apache
* TP FTP
* TP TCP Wrapper
* TP Tcpdump
* TP SSH
* TP DHCP
* TP Global
* TP Netfilter
* TP Licence - Configuration réseau
* TP Licence - Deux sites web derrière un firewall
* TP Licence - Serveur intranet
[ Modifier le sommaire ]
Dans un réseau ethernet relié par un concentrateur (ou hub), chaque machines reçoit tous les paquets qui circulent sur le réseau. En fonctionnement normal, les cartes réseau ne réceptionnent que les paquets qui leur sont destinés, mais on peut faire en sorte qu'elles transmettent tous les paquets au système.
Les hub sont de moins en moins utilisés. Ils sont généralement remplacés par des commutateurs (ou switch) qui savent déterminer (en fonction de l'adresse MAC) sur quel câble il faut envoyer un paquet. Les machines ne reçoivent donc généralement que les paquets qui leur sont destinés.
L'utilitaire tcpdump permet d'inspecter les paquets qui sont reçus et transmis par une carte réseau.

## Filtrage

Il est possible de sélectionner les paquets à "écouter" en fonction d'expressions. Ainsi, ne seront affichées / traitées que les informations pour lesquelles le résultat de l'expression est vérifié. Une expression est composée de primitives et d'opérateurs logiques.
Une primitive est un identifiant précédé de mots clés qui indiquent le type de l'identifiant. Par exemple la primitive src port 21 contient les éléments suivants :
* le mot clé src qui indique que l'identifiant ne porte que sur la source du paquet
* le mot clé port qui indique que l'identifiant est le port du paquet
* l'identifiant 21
La primitive correspond donc au port source 21.
De la même manière, la primitive ether src 00:11:22:33:44:55 indique l'adresse ethernet (ou MAC) source 00:11:22:33:44:55.
Les primitives les plus courantes sont les suivantes :

### src <adresse>

    l'adresse source est <adresse>

### dst <adresse>

    l'adresse destination est <adresse>

### host <adresse>

    l'adresse source ou destination est <adresse>

### port <port>

    le port source ou destination est <port>

### src port <port>

    le port source est <port>

### dst port <port>

    le port destination est <port>

### portrange <port1>-<port2>

    le port est compris entre <port1> et <port2>. On peut préciser l'origine avec les mots clés src ou dst et le protocole avec les mots clés tcp ou udp.
Les primitives peuvent être reliées avec les opérateurs logiques and, or et not. Par exemple l'expression suivante va trouver tous les paquets en provenance de tiny mais dont le port n'est pas le port ssh :
Il est également possible de spécifier un protocole: udp, tcp, icmp.

## Options

Plusieurs options permettent de modifier le comportement de tcpdump :

### -i <interface>

    sélectionne l'interface réseau sur laquelle tcpdump écoute. Par défaut il prend la première active (sauf lo).

### -x

    affiche également les données contenues dans les paquets trouvés, sous forme hexadécimale

### -X

    affiche les données des paquets sous forme ASCII

### -s <nombre>

    par défaut, seuls les 68 premiers octets de données sont affichés. Ce paramètre permet de modifier ce nombre.

### -w

    pour spécifier le chemin d'un fichier où sauvegarder le dump.

## Exemples

Ici, les seuls paquets affichés sont ceux en provenance de 192.168.0.1. Nous pouvons également préciser nos préférences en ajoutant un critère :
Là, le seul port qui nous intéresse est 80 (http).
Voici une ligne complète qui ne laisse vraiment passer que les paquets en provenance de 192.168.0.1 vers 212.208.225.1, sur le port 53 en udp.
Nous avons demandé l'affichage du contenu des paquets au format hexadécimal et ascii (-x -X) et ce, quelle que soit leur taille (-s 0). Nous obtenons les informations désirées :