1. Introduction
Dans un BTS CIEL ou SIO, tu dois rapidement apprendre à diagnostiquer un problème réseau, vérifier un flux applicatif ou analyser des communications suspectes. tcpdump fait partie des outils incontournables pour ce travail.
Cet utilitaire fonctionne directement en ligne de commande. Il capture les paquets réseau qui transitent sur une interface et permet ensuite d’analyser précisément les échanges entre machines, protocoles et applications.
Tu peux utiliser tcpdump pour :
- vérifier qu’un serveur écoute correctement ;
- analyser une connexion HTTP, HTTPS ou DNS ;
- détecter une anomalie réseau ;
- comprendre un échange TCP ;
- diagnostiquer un problème de pare-feu ;
- contrôler le trafic MQTT, SSH, FTP ou ICMP ;
- produire des captures compatibles avec Wireshark.
Dans cette fiche, tu vas apprendre :
- installer
tcpdump; - capturer du trafic ;
- filtrer les paquets ;
- analyser plusieurs protocoles ;
- créer des filtres simples et avancés ;
- sauvegarder les captures ;
- utiliser les bons réflexes de sécurité.
2. Sommaire
- Introduction
- Sommaire
- Installation de tcpdump
- Fonctionnement général
- Identifier les interfaces réseau
- Capturer du trafic simple
- Analyse des principaux protocoles
- Filtres simples
- Filtres avancés
- Sauvegarder et relire une capture
- Pare-feu et ports utiles
- Fichiers importants
- Synthèse Markdown pour ta fiche bristol
- Bloc de configuration complet
- Commandes de dépannage
- Logs et analyse
- Erreurs fréquentes
- Bonnes pratiques de sécurité
- Pour aller plus loin
- Liens utiles et documentation
- Idées de TP
3. Installation de tcpdump
Sous Debian 13 et Ubuntu 26.04 :
sudo apt update
sudo apt install tcpdump
Explication des commandes
apt updatemet à jour la liste des paquets disponibles.apt install tcpdumpinstalle l’outil.
Tu peux vérifier l’installation avec :
tcpdump --version
4. Fonctionnement général
tcpdump écoute une interface réseau et affiche les paquets capturés.
Syntaxe générale :
sudo tcpdump [options] [filtres]
Pourquoi utiliser sudo ?
La capture réseau nécessite l’accès bas niveau aux interfaces réseau. Sans privilèges élevés, Linux refuse généralement l’opération.
5. Identifier les interfaces réseau
Avant de capturer du trafic, tu dois connaître le nom de l’interface réseau.
Commande recommandée :
ip a
Exemple :
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP>
3: lo: <LOOPBACK,UP,LOWER_UP>
Ici :
ens18correspond à la carte réseau principale ;loreprésente l’interface locale (localhost).
Tu peux aussi demander directement à tcpdump :
tcpdump -D
Explication des options
-D: liste les interfaces disponibles.
6. Capturer du trafic simple
Capturer tout le trafic
sudo tcpdump -i ens18
Explication
-i ens18: écoute l’interfaceens18.
Capturer uniquement 10 paquets
sudo tcpdump -i ens18 -c 10
Explication
-c 10: arrête la capture après 10 paquets.
Afficher les adresses IP sans résolution DNS
sudo tcpdump -i ens18 -n
Pourquoi utiliser -n ?
Sans cette option, tcpdump tente de résoudre les noms DNS. Cela ralentit l’analyse et ajoute du bruit.
Afficher aussi les ports
sudo tcpdump -i ens18 -nn
Différence entre -n et -nn
-n: désactive la résolution DNS.-nn: désactive aussi la résolution des services réseau.
7. Analyse des principaux protocoles
7.1 Analyse ICMP (ping)
Commande :
sudo tcpdump -i ens18 icmp
Teste ensuite :
ping 8.8.8.8
Tu verras :
ICMP echo request
ICMP echo reply
Utilité
- diagnostic réseau ;
- test de connectivité ;
- détection d’hôtes accessibles.
7.2 Analyse HTTP
Le protocole HTTP utilise le port 80.
sudo tcpdump -i ens18 port 80
Tu peux ensuite ouvrir un site HTTP.
Cas concret
Diagnostic d’un serveur web Apache ou Nginx.
7.3 Analyse HTTPS
HTTPS utilise le port 443.
sudo tcpdump -i ens18 port 443
Important
Le contenu reste chiffré. Tu vois :
- les IP ;
- les ports ;
- les échanges TLS ;
- la négociation SSL/TLS.
7.4 Analyse DNS
Le DNS utilise principalement le port 53.
sudo tcpdump -i ens18 port 53
Teste ensuite :
nslookup debian.org
Ce que tu peux observer
- requêtes DNS ;
- réponses DNS ;
- serveurs utilisés ;
- temps de réponse.
7.5 Analyse SSH
SSH utilise le port 22.
sudo tcpdump -i ens18 port 22
Utilité
- vérifier une connexion SSH ;
- diagnostiquer un blocage pare-feu ;
- confirmer une authentification réseau.
7.6 Analyse MQTT
MQTT utilise souvent :
- 1883 : MQTT non chiffré ;
- 8883 : MQTT TLS.
sudo tcpdump -i ens18 port 1883
8. Filtres simples
8.1 Filtrer une IP source
sudo tcpdump -i ens18 src host 192.168.1.10
8.2 Filtrer une IP destination
sudo tcpdump -i ens18 dst host 192.168.1.20
8.3 Filtrer un réseau
sudo tcpdump -i ens18 net 192.168.1.0/24
8.4 Filtrer un protocole TCP
sudo tcpdump -i ens18 tcp
8.5 Filtrer UDP
sudo tcpdump -i ens18 udp
8.6 Filtrer plusieurs ports
sudo tcpdump -i ens18 port 80 or port 443
8.7 Exclure un trafic
sudo tcpdump -i ens18 not port 22
9. Filtres avancés
9.1 Combiner plusieurs conditions
sudo tcpdump -i ens18 host 192.168.1.10 and port 443
Ce filtre signifie
- trafic lié à l’hôte
192.168.1.10 - ET utilisant le port 443.
9.2 Capturer uniquement les SYN TCP
sudo tcpdump -i ens18 'tcp[tcpflags] & tcp-syn != 0'
Utilité
Détection :
- nouvelles connexions TCP ;
- scans réseau ;
- reconnaissance Nmap.
9.3 Capturer les paquets avec données
sudo tcpdump -i ens18 'tcp[((tcp[12] & 0xf0) >> 2):4] != 0'
Utilité
Éviter les paquets de contrôle TCP sans payload.
9.4 Filtrer un échange entre deux machines
sudo tcpdump -i ens18 host 192.168.1.10 and host 192.168.1.20
9.5 Capturer un trafic HTTP précis
sudo tcpdump -i ens18 -A port 80
Explication
-Aaffiche le contenu ASCII.
Tu peux parfois voir :
- requêtes GET ;
- User-Agent ;
- Host ;
- cookies.
9.6 Voir le contenu HEXA et ASCII
sudo tcpdump -i ens18 -X port 80
Explication
-Xaffiche :- hexadécimal ;
- ASCII.
Très utile en forensic ou cybersécurité.
10. Sauvegarder et relire une capture
10.1 Sauvegarder une capture
sudo tcpdump -i ens18 -w capture.pcap
Explication
-wécrit dans un fichier PCAP.
10.2 Lire une capture
tcpdump -r capture.pcap
Explication
-rrelit un fichier.
10.3 Ouvrir avec Wireshark
wireshark capture.pcap
11. Pare-feu et ports utiles
| Service | Port | Protocole |
|---|---|---|
| HTTP | 80 | TCP |
| HTTPS | 443 | TCP |
| DNS | 53 | UDP/TCP |
| SSH | 22 | TCP |
| MQTT | 1883 | TCP |
| MQTT TLS | 8883 | TCP |
Exemple UFW pour SSH
sudo ufw allow 22/tcp
Exemple pour MQTT
sudo ufw allow 1883/tcp
Vérifier les règles
sudo ufw status verbose
12. Fichiers importants
/etc/ufw/
/var/log/ufw.log
/etc/services
/usr/sbin/tcpdump
Arborescence utile
/etc/
├── ufw/
│ ├── before.rules
│ ├── after.rules
│ └── user.rules
13. Synthèse Markdown pour ta fiche bristol
# TCPDUMP
## Installation
sudo apt install tcpdump
## Interfaces
ip a
tcpdump -D
## Capture simple
sudo tcpdump -i ens18
## Sans résolution DNS
sudo tcpdump -i ens18 -nn
## Limiter le nombre de paquets
sudo tcpdump -i ens18 -c 20
## Filtrer un port
sudo tcpdump -i ens18 port 80
## Filtrer SSH
sudo tcpdump -i ens18 port 22
## Filtrer DNS
sudo tcpdump -i ens18 port 53
## Filtrer une IP
sudo tcpdump -i ens18 host 192.168.1.10
## Filtre complexe
sudo tcpdump -i ens18 host 192.168.1.10 and port 443
## Sauvegarde
sudo tcpdump -i ens18 -w capture.pcap
## Lecture capture
tcpdump -r capture.pcap
## Affichage ASCII
sudo tcpdump -A port 80
## Affichage HEXA
sudo tcpdump -X port 80
14. Bloc de configuration complet
# Liste des interfaces réseau
tcpdump -D
# Capture complète sur l'interface principale
sudo tcpdump -i ens18 -nn
# Capture limitée à 50 paquets
sudo tcpdump -i ens18 -nn -c 50
# Capture HTTP et HTTPS
sudo tcpdump -i ens18 '(port 80 or port 443)'
# Capture DNS
sudo tcpdump -i ens18 udp port 53
# Capture SSH
sudo tcpdump -i ens18 tcp port 22
# Capture MQTT
sudo tcpdump -i ens18 tcp port 1883
# Capture d'un hôte spécifique
sudo tcpdump -i ens18 host 192.168.1.10
# Capture réseau local
sudo tcpdump -i ens18 net 192.168.1.0/24
# Capture avec affichage ASCII
sudo tcpdump -i ens18 -A port 80
# Capture avec affichage HEXA
sudo tcpdump -i ens18 -X port 80
# Sauvegarde dans un fichier PCAP
sudo tcpdump -i ens18 -w analyse.pcap
# Lecture d'une capture
tcpdump -r analyse.pcap
15. Commandes de dépannage
Vérifier les interfaces réseau
ip a
Vérifier les connexions actives
ss -tulpn
Explication
-t: TCP-u: UDP-l: sockets en écoute-p: processus associés-n: affichage numérique
Vérifier les règles pare-feu
sudo ufw status numbered
Vérifier les routes réseau
ip route
Tester DNS
dig debian.org
Vérifier une connexion TCP
nc -vz 192.168.1.20 443
16. Logs et analyse
tcpdump ne produit pas de logs permanents par défaut. Tu dois sauvegarder les captures.
Générer une capture exploitable
sudo tcpdump -i ens18 -w incident.pcap
Lire ensuite avec :
tcpdump -r incident.pcap
ou :
wireshark incident.pcap
Ce que tu peux analyser
- scans réseau ;
- connexions suspectes ;
- erreurs TCP ;
- retransmissions ;
- DNS anormal ;
- flux non chiffrés ;
- trafic IoT ;
- requêtes HTTP.
17. Erreurs fréquentes
Permission denied
Cause :
- absence de privilèges root.
Solution :
sudo tcpdump
Mauvaise interface réseau
Cause :
- interface inexistante.
Solution :
tcpdump -D
Aucun paquet affiché
Causes possibles :
- mauvais filtre ;
- aucun trafic ;
- mauvaise interface ;
- pare-feu.
Capture trop volumineuse
Solution :
- ajouter des filtres ;
- limiter avec
-c; - utiliser
host,portounet.
18. Bonnes pratiques de sécurité
- Évite de capturer inutilement tout le réseau.
- Protège les fichiers
.pcap. - Supprime les captures sensibles après analyse.
- Utilise HTTPS et TLS pour limiter les données lisibles.
- Analyse les captures sur une machine sécurisée.
- Ne capture pas de données sans autorisation.
- Filtre au maximum pour réduire l’exposition des données.
19. Pour aller plus loin
Tu peux approfondir :
- Wireshark ;
- analyse TLS ;
- forensic réseau ;
- détection d’intrusion ;
- Suricata ;
- Zeek ;
- NetFlow ;
- analyse MQTT IoT ;
- captures VLAN ;
- IPv6 ;
- sécurité DNS.
20. Liens utiles et documentation
Documentation officielle tcpdump
https://www.tcpdump.org/manpages/tcpdump.1.html
Documentation officielle complète des options et filtres BPF.
Documentation Debian sur tcpdump
https://packages.debian.org/bookworm/tcpdump
Permet de consulter les versions Debian et les dépendances.
Documentation Ubuntu tcpdump
https://manpages.ubuntu.com/manpages/noble/man8/tcpdump.8.html
Version adaptée aux systèmes Ubuntu récents.
RFC ICMP
https://datatracker.ietf.org/doc/html/rfc792
Référence officielle du protocole ICMP.
RFC DNS
https://datatracker.ietf.org/doc/html/rfc1035
Documentation officielle DNS.
OpenClassrooms — Comprendre les réseaux TCP/IP
https://openclassrooms.com/fr/courses/7170496-initiez-vous-aux-reseaux-tcp-ip
Très bon cours d’introduction réseau.
OpenClassrooms — Sécurisez votre réseau
https://openclassrooms.com/fr/courses/1750566-securisez-votre-reseau-grace-aux-vpn-et-firewall
Complète parfaitement l’analyse réseau.
21. Idées de TP
TP 1 — Analyse HTTP
Objectif :
- capturer une requête HTTP ;
- identifier :
- méthode ;
- User-Agent ;
- Host.
TP 2 — Analyse DNS
Objectif :
- capturer plusieurs requêtes DNS ;
- identifier les serveurs utilisés.
TP 3 — Diagnostic SSH
Objectif :
- vérifier une connexion SSH ;
- identifier :
- SYN ;
- SYN-ACK ;
- ACK.
TP 4 — Analyse MQTT
Objectif :
- capturer le trafic MQTT ;
- identifier les topics et échanges.
TP 5 — Détection de scan réseau
Objectif :
- lancer un scan Nmap ;
- détecter les SYN avec tcpdump.
TP 6 — Analyse d’un fichier PCAP
Objectif :
- ouvrir une capture ;
- identifier :
- protocoles ;
- IP ;
- anomalies ;
- ports utilisés.
