Aller au contenu

RĂ©seaux Linux 🧠 : commandes & diagnostic rĂ©seau

Mise Ă  jour :

chantier resau

Le lien vers le PDF: Cheat Sheet Linux Réseau

Pour les administrateurs systĂšmes la capacitĂ© Ă  diagnostiquer et rĂ©soudre les problĂšmes de rĂ©seau rapidement et efficacement est important. Linux, Ă©tant l’un des systĂšmes d’exploitation les plus utilisĂ©s pour les serveurs et les infrastructures rĂ©seau, offre une puissante palette d’outils pour le diagnostic rĂ©seau. Cette documentation vise Ă  vous aider Ă  maitriser les commandes Linux essentielles pour le diagnostic rĂ©seau.

Connaissances préalables

Avant de plonger dans les commandes spĂ©cifiques de diagnostic rĂ©seau, il est essentiel de comprendre certains concepts et configurations de base. Cette connaissance aidera Ă  mieux apprĂ©hender l’utilisation et l’interprĂ©tation des commandes Linux. Vous devez maitriser les notions suivantes : Ethernet, Internet, modĂ©le OSI, les diffĂ©rents protocoles. La section des fondamentaux des rĂ©seaux informatiques.

Configuration Réseau sous Linux

Vous devez aussi maitriser la configuration réseau des serveurs Linux :

  • Comment configurer une adresse IP statique et dynamique
  • Comment configurer le routage
  • Comment configurer la rĂ©solution de nom
  • Comment configurer les interfaces rĂ©seau.

En maitrisant ces concepts fondamentaux, vous serez mieux préparé pour utiliser efficacement les commandes de diagnostic réseau. Cette base solide est essentielle pour interpréter correctement les résultats de ces commandes et pour mener à bien le processus de diagnostic.

Les commandes linux réseau de base

Dans cette section, nous allons explorer les commandes de base qui sont essentielles pour tout diagnostic de rĂ©seau sous Linux. Chaque commande sera accompagnĂ©e d’une description brĂšve et d’un exemple.

ping

ping est probablement l’outil de diagnostic rĂ©seau le plus basique. Il utilise des paquets ICMP pour tester la connectivitĂ© entre l’hĂŽte local et un hĂŽte distant.

  • Usage typique : Pour vĂ©rifier si un hĂŽte spĂ©cifique est accessible.

    Exemple :

    Terminal window
    ping google.com

    Cela enverra des paquets ICMP à google.com et affichera les temps de réponse.

ifconfig (Interface Configuration)

La commande ifconfig est utilisé pour configurer, gérer et interroger les paramÚtres des interfaces réseau.

  • Usage typique : Pour afficher ou configurer les paramĂštres de l’interface rĂ©seau.

    Exemple :

    Terminal window
    ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.121.15 netmask 255.255.255.0 broadcast 192.168.121.255
    inet6 fe80::5054:ff:fed6:a313 prefixlen 64 scopeid 0x20<link>
    ether 52:54:00:d6:a3:13 txqueuelen 1000 (Ethernet)
    RX packets 324487 bytes 177491133 (177.4 MB)
    RX errors 0 dropped 64 overruns 0 frame 0
    TX packets 25649 bytes 9416929 (9.4 MB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    loop txqueuelen 1000 (Boucle locale)
    RX packets 22937 bytes 27399325 (27.3 MB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 22937 bytes 27399325 (27.3 MB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    Affiche les dĂ©tails des interfaces dont l’adresse IP, le masque de sous-rĂ©seau et l’état.

ip

La commande ip est une alternative à ifconfig. Elle sert à afficher et à manipuler des routes, des adresses réseau, des interfaces, etc.

  • Usage typique : Pour gĂ©rer les adresses IP et les routes.

    Exemple :

    Terminal window
    `ip addr show`
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:d6:a3:13 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname ens5
    inet 192.168.121.15/24 metric 100 brd 192.168.121.255 scope global dynamic eth0
    valid_lft 3321sec preferred_lft 3321sec
    inet6 fe80::5054:ff:fed6:a313/64 scope link
    valid_lft forever preferred_lft forever

    Affiche toutes les interfaces réseau et leurs adresses IP.

route

La commande route est utilisée pour afficher et manipuler la table de routage IP du noyau.

  • Usage typique : Pour afficher ou modifier les routes de rĂ©seau.

    Exemple :

    Terminal window
    route -n
    Table de routage IP du noyau
    Destination Passerelle Genmask Indic Metric Ref Use Iface
    0.0.0.0 192.168.121.1 0.0.0.0 UG 100 0 0 eth0
    192.168.121.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
    192.168.121.1 0.0.0.0 255.255.255.255 UH 100 0 0 eth0

    Affiche la table de routage sans résoudre les noms.

traceroute

La commande traceroute trace la route que prennent les paquets pour atteindre une destination réseau.

  • Usage typique : Pour diagnostiquer les problĂšmes de routage et les dĂ©lais.4

    Exemple :

    Terminal window
    traceroute www.google.com
    traceroute to www.google.com (142.250.200.228), 30 hops max, 60 byte packets
    1 _gateway (192.168.121.1) 0.274 ms 0.156 ms 0.165 ms
    2 192.168.1.1 (192.168.1.1) 5.738 ms 5.657 ms 5.599 ms
    3 80.10.234.25 (80.10.234.25) 25.524 ms 25.487 ms 25.452 ms
    4 lag-10.newsq00z.rbci.orange.net (193.249.215.194) 25.350 ms 25.311 ms 25.255 ms
    5 ae101-0.nclil101.rbci.orange.net (193.253.91.114) 26.549 ms 25.116 ms 26.429 ms
    6 ae41-0.nilil101.rbci.orange.net (81.253.129.29) 26.304 ms 17.868 ms 17.694 ms
    7 * * *
    8 google-12.gw.opentransit.net (193.251.255.82) 18.843 ms 209.85.148.18 (209.85.148.18) 18.754 ms 72.14.211.234 (72.14.211.234) 18.663 ms
    9 * * *
    10 142.251.49.134 (142.251.49.134) 18.318 ms 72.14.237.92 (72.14.237.92) 18.218 ms 142.251.253.34 (142.251.253.34) 18.072 ms
    11 216.239.35.208 (216.239.35.208) 31.553 ms 37.013 ms 216.239.35.206 (216.239.35.206) 31.380 ms
    12 192.178.85.28 (192.178.85.28) 31.354 ...

Affiche le chemin emprunté par les paquets pour atteindre google.com.

nslookup (Name Server Lookup)

La commande nslookup est un outil utilisĂ© pour interroger les serveurs DNS afin d’obtenir des informations sur les enregistrements DNS pour un domaine ou une adresse IP spĂ©cifique.

  • Usage typique : C’est un outil essentiel pour le diagnostic des problĂšmes de DNS.

    Exemple :

    Terminal window
    nslookup google.com 09:08:16
    Server: 127.0.0.53
    Address: 127.0.0.53#53
    Non-authoritative answer:
    Name: google.com
    Address: 142.250.179.110
    Name: google.com
    Address: 2a00:1450:4007:81a::200e

Diagnostic : Machine distante injoignable

  1. Si vous n’arrivez pas Ă  vous connecter Ă  une machine distante en particulier. Dans un premier temps, commencez par vĂ©rifier si elle est atteignable avec la commande ping :
Terminal window
ping [adresse IP ou domaine]

Si vous obtenez un message d’erreur, cela ne veut pas dire qu’elle est KO. En effet, le traffic ICMP est peut-ĂȘtre bloquĂ© par une rĂšgle de firewall.

Il faut vous connecter sur la console d’administration de la machine.

  1. Examiner la configuration IP de l’hĂŽte, y compris les adresses IP, les masques de sous-rĂ©seau et les Ă©tats des interfaces. Pour cela utilisez soit la commande ifconfig soit ip addr :
Terminal window
ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Boucle locale)
RX packets 3719987 bytes 2857636865 (2.8 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3719987 bytes 2857636865 (2.8 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::fc54:ff:fed6:a313 prefixlen 64 scopeid 0x20<link>
ether fe:54:00:d6:a3:13 txqueuelen 1000 (Ethernet)
RX packets 25579 bytes 9403512 (9.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 323807 bytes 177442958 (177.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlo1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.54 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::5db0:4c3c:fe86:be3e prefixlen 64 scopeid 0x20<link>
ether a8:93:4a:cb:e1:63 txqueuelen 1000 (Ethernet)
RX packets 35202917 bytes 28665334400 (28.6 GB)
RX errors 0 dropped 82942 overruns 0 frame 0
TX packets 24732680 bytes 42163143166 (42.1 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Dans notre cas, l’interface eth0 possĂšde une adresse IP, un masque rĂ©seau et une passerelle correctement configurĂ©e.

  1. Si un lien est dĂ©tectĂ©, envoyez une requĂȘte ping Ă  une source externe pour voir si vous obtenez une rĂ©ponse. Si cela Ă©choue, cela peut indiquer un problĂšme de routage ou un possible problĂšme DNS si un nom d’hĂŽte est utilisĂ©.

  2. Si le lien n’est pas dĂ©tectĂ© alors, il y a un problĂšme de configuration. Il faudra vĂ©rifier les paramĂštres ou jouer des commandes ifup, ifdown pour activer l’interface.

Les commandes réseaux avancées

Cette section couvre des outils plus sophistiqués qui offrent une analyse détaillée et des fonctionnalités étendues pour le diagnostic réseau.

dig (Domain Information Groper)

La commande dig est un outil de requĂȘte DNS qui peut ĂȘtre utilisĂ© pour interroger les serveurs DNS et obtenir des informations dĂ©taillĂ©es sur les enregistrements DNS qu’avec la commande nslookup.

  • Usage typique : Pour interroger des informations DNS spĂ©cifiques et dĂ©panner les problĂšmes de rĂ©solution DNS.

    Exemple :

    Terminal window
    ; <<>> DiG 9.18.18-0ubuntu0.22.04.1-Ubuntu <<>> google.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1346
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 65494
    ;; QUESTION SECTION:
    ;google.com. IN A
    ;; ANSWER SECTION:
    google.com. 0 IN A 142.250.178.142
    ;; Query time: 60 msec
    ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
    ;; WHEN: Wed Nov 15 09:20:08 CET 2023
    ;; MSG SIZE rcvd: 55

    Fournit un rapport dĂ©taillĂ© sur l’enregistrement DNS pour google.com.

Les principales options Ă  connaĂźtre :

  1. SpĂ©cifier le Type d’Enregistrement :

    • Syntaxe : dig [domaine] [type]
    • Types courants : A (adresse IP), MX (serveurs de messagerie), NS (serveurs de noms), TXT (enregistrements textuels), CNAME (alias de nom), AAAA (adresses IPv6).
    • Exemple : dig google.com MX
  2. RequĂȘte Inverse :

    • Syntaxe : dig -x [adresse IP]
    • Usage : Effectue une recherche inverse pour trouver le nom d’hĂŽte associĂ© Ă  une adresse IP.
    • Exemple : dig -x 8.8.8.8
  3. Spécifier un Serveur DNS :

    • Syntaxe : dig @[serveur-dns] [domaine]
    • Usage : Effectue une requĂȘte pour un domaine en utilisant un serveur DNS spĂ©cifique.
    • Exemple : dig @1.1.1.1 google.com
  4. Afficher des Statistiques Détaillées :

    • Syntaxe : dig +stats [domaine]
    • Usage : Fournit des informations dĂ©taillĂ©es sur la requĂȘte et la rĂ©ponse.
  5. Affichage Court :

    • Syntaxe : dig +short [domaine]
    • Usage : Affiche uniquement la rĂ©ponse, sans informations supplĂ©mentaires.
  6. RequĂȘtes Multiples :

    • Syntaxe : dig [domaine1] [domaine2] [...] [type]
    • Usage : Effectue des requĂȘtes simultanĂ©es pour plusieurs domaines.
    • Exemple : dig google.com yahoo.com MX
  7. Affichage du Trace de RequĂȘte :

    • Syntaxe : dig +trace [domaine]
    • Usage : Affiche le chemin de la requĂȘte Ă  travers les serveurs DNS, utile pour diagnostiquer les problĂšmes de rĂ©solution DNS.
  8. RequĂȘte DNSSEC :

    • Syntaxe : dig +dnssec [domaine]
    • Usage : Effectue une requĂȘte qui inclut les enregistrements DNSSEC pour la vĂ©rification de la sĂ©curitĂ©.
  9. Enregistrement Spécifique :

    • Syntaxe : dig [domaine] [type] +noall +answer
    • Usage : Affiche seulement la section de rĂ©ponse pour un type d’enregistrement spĂ©cifique.

netcat

netcat (souvent abrĂ©gĂ© en nc) est un outil extrĂȘmement polyvalent connu comme le “couteau suisse” des rĂ©seaux TCP/IP. Il est utilisĂ© pour tout, de la crĂ©ation de connexions rĂ©seau basiques Ă  des opĂ©rations plus avancĂ©es comme le port scanning, le transfert de fichiers et mĂȘme comme serveur ou client simple.

Les principales options Ă  connaĂźtre :

  • Connexion Client :
    • nc [adresse hĂŽte] [port]
    • Connecte netcat Ă  un hĂŽte et un port spĂ©cifiĂ©s. La commande Ă  connaitre pour tester une connexion.
  • Mode Écoute : -l
    • nc -l [port]
    • Met netcat en mode Ă©coute sur le port spĂ©cifiĂ©, en attente de connexions entrantes.
  • TCP (par dĂ©faut) : UtilisĂ© automatiquement pour les connexions.
  • UDP : -u
    • nc -u [adresse hĂŽte] [port]
    • Utilise le protocole UDP au lieu de TCP.
  • Envoyer un Fichier : < [fichier]
    • nc [adresse hĂŽte] [port] < [fichier]
    • Envoie un fichier Ă  un hĂŽte connectĂ©.
  • Recevoir un Fichier : > [fichier]
    • nc -l [port] > [fichier]
    • Reçoit un fichier d’un hĂŽte connectĂ©.
  • Scan de Ports :
    • nc -z [adresse hĂŽte] [plage de ports]
    • Teste l’écoute des ports dans la plage spĂ©cifiĂ©e sur l’hĂŽte cible.
  • Timeout : -w [secondes]
    • DĂ©finit un timeout pour la connexion.
  • Verbose : -v
    • Fournit des informations dĂ©taillĂ©es pendant l’exĂ©cution.
  • Mode Keep-Alive : -o
    • Garde la connexion ouverte aprĂšs la fin de la transmission des donnĂ©es.
  • Serveur Simple :
    • nc -l [port] -e /bin/sh
    • Lance un serveur simple qui exĂ©cute un shell (Ă  utiliser avec prudence pour des raisons de sĂ©curitĂ©).
  • Client Simple :
    • nc [adresse hĂŽte] [port] -e /bin/bash
    • Connecte un shell local Ă  un serveur netcat distant.

netcat est un outil incroyablement puissant, mais avec cette puissance vient la responsabilitĂ©. Il est important de l’utiliser de maniĂšre Ă©thique et lĂ©gale, car il peut facilement ĂȘtre utilisĂ© pour des activitĂ©s malveillantes comme l’accĂšs non autorisĂ© aux systĂšmes et rĂ©seaux.

Plus d’infos sur netcat.

ss (socket statistics)

La commande ss est une commande utilisĂ©e pour obtenir des statistiques sur les sockets. Elle est souvent utilisĂ©e comme remplacement plus rapide et plus riche en fonctionnalitĂ©s pour l’ancienne commande netstat.

Les principales options Ă  connaĂźtre :

  • Lister toutes les connexions : ss
  • Lister les sockets d’écoute : ss -l
  • Sockets TCP : ss -t
  • Sockets UDP : ss -u
  • Sockets RAW : ss -w
  • Sockets UNIX : ss -x
  • Afficher les Processus : ss -p
  • Afficher les Adresses de Ports NumĂ©riques : ss -n
  • Afficher les Statistiques DĂ©taillĂ©es : ss -i
  • Sockets en Ă©tat particulier : ss state [Ă©tat]
    • Par exemple, ss state established pour voir les connexions Ă©tablies.
  • Filtrer par adresse ou port : ss [options] 'sport == :[port]'
    • Par exemple, ss -t 'sport == :22' pour filtrer les sockets TCP avec un port source de 22.
  • Sockets associĂ©s Ă  une adresse IP spĂ©cifique : ss [options] dst [adresse IP]
    • Par exemple, ss dst 192.168.1.1

Vous pouvez combiner plusieurs filtres pour affiner votre recherche.

Par exemple :

Terminal window
ss -tln 'sport == :22'
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*

mtr (My Traceroute)

mtr est un outil de diagnostic réseau qui combine les fonctionnalités de ping et traceroute. Il fournit un rapport en temps réel sur la route que les paquets prennent pour atteindre une destination réseau.

Les principales options Ă  connaĂźtre :

  • Lancement Basique : mtr [destination]
  • Mode Rapport : mtr -r [destination] : Fournit un rapport unique aprĂšs avoir exĂ©cutĂ© les tests pendant un certain temps.
  • Nombre de Cycles de Rapport : mtr -c [nombre] [destination] : SpĂ©cifie le nombre de cycles de ping pour le rapport.
  • Mode Split : mtr -t [destination]
    • Affiche mtr dans un mode texte basĂ© sur le terminal.
  • Afficher les Adresses IP : mtr -n [destination]
    • Affiche les adresses IP au lieu des noms d’hĂŽte.
  • Mode Verbose : mtr -v
    • Affiche des informations dĂ©taillĂ©es lors du dĂ©marrage.

Par exemple :

Terminal window
mtr -r www.google.com 11:40:51
Start: 2023-11-15T11:41:21+0100
HOST: internal Loss% Snt Last Avg Best Wrst StDev
1.|-- W16866.mshome.net 0.0% 10 0.9 0.8 0.5 1.2 0.2
2.|-- lan.home 0.0% 10 3.7 4.9 3.6 8.7 1.5
3.|-- 80.10.234.25 0.0% 10 6.8 7.2 5.0 11.6 2.2
4.|-- lag-10.newsq00z.rbci.oran 0.0% 10 9.0 6.4 4.8 9.2 1.5
5.|-- ae101-0.nclil101.rbci.ora 0.0% 10 5.1 6.4 5.1 9.9 1.5
6.|-- ae41-0.nilil101.rbci.oran 0.0% 10 6.1 6.6 5.0 8.8 1.3
7.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
8.|-- google-11.gw.opentransit. 0.0% 10 14.3 11.6 9.2 16.2 2.2
9.|-- 216.239.40.73 0.0% 10 12.4 10.5 9.2 12.4 1.2
10.|-- 216.239.48.45 0.0% 10 9.7 11.2 9.5 15.0 1.5
11.|-- par10s41-in-f4.1e100.net 0.0% 10 13.0 10.5 9.2 13.0 1.0

iptables

La commande iptables est un outil de filtrage de paquets qui permet de configurer les rĂšgles de pare-feu.

  • Usage typique : Pour gĂ©rer les rĂšgles de pare-feu qui contrĂŽlent le trafic entrant et sortant.

    Exemple :

    Terminal window
    iptables -L 09:59:29
    Chain INPUT (policy ACCEPT)
    target prot opt source destination
    LIBVIRT_INP all -- anywhere anywhere
    Chain FORWARD (policy ACCEPT)
    target prot opt source destination
    DOCKER-USER all -- anywhere anywhere
    DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
    ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
    DOCKER all -- anywhere anywhere
    ACCEPT all -- anywhere anywhere
    ACCEPT all -- anywhere anywhere
    LIBVIRT_FWX all -- anywhere anywhere
    LIBVIRT_FWI all -- anywhere anywhere
    LIBVIRT_FWO all -- anywhere anywhere
    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination
    LIBVIRT_OUT all -- anywhere anywhere
    ...

    Affiche toutes les rÚgles de filtrage actuelles. La commande à connaitre pour savoir si un flux réseau est autorisé ou pas.

nmap (Network Mapper)

La commande nmap est un outil puissant et polyvalent pour l’exploration de rĂ©seau et l’audit de sĂ©curitĂ©. Il est utilisĂ© pour dĂ©couvrir des hĂŽtes et services sur un rĂ©seau informatique, ainsi que pour effectuer une variĂ©tĂ© d’analyses et de diagnostics de rĂ©seau.

Les principales options Ă  connaĂźtre :

  • Scan Basique : nmap [adresse IP ou nom d'hĂŽte]
    • Lance un scan basique sur la cible spĂ©cifiĂ©e.
  • Scan d’une Plage d’Adresses IP : nmap [plage IP]
    • Par exemple, nmap 192.168.1.1-100 pour scanner les adresses de 192.168.1.1 Ă  192.168.1.100.
  • Ping Scan (sans Scan de Ports) : nmap -sn [cible]
    • DĂ©tecte les hĂŽtes actifs sans ouvrir de connexions aux ports de service.
  • Liste des HĂŽtes sans Scan : nmap -sL [cible]
    • Liste les hĂŽtes dans la plage cible sans les scanner.
  • Scan Rapide : nmap -F [cible]
    • Scanne uniquement les ports les plus courants.
  • Scan de Tous les Ports : nmap -p- [cible]
    • Scanne tous les ports (1-65535).
  • SpĂ©cifier des Ports SpĂ©cifiques : nmap -p [port(s)] [cible]
    • Par exemple, nmap -p 80,443 [cible] pour scanner seulement les ports 80 et 443.
  • DĂ©tection de Version de Service : nmap -sV [cible]
    • Tente de dĂ©terminer les versions des services exĂ©cutĂ©s sur les ports ouverts.
  • DĂ©tection du SystĂšme d’Exploitation : nmap -O [cible]
    • Tente d’identifier le systĂšme d’exploitation de la cible.
  • Scan Aggressif : nmap -A [cible]
    • Active la dĂ©tection d’OS, de version, de script et de traceroute.
  • Utiliser des Scripts NSE : nmap --script=[script] [cible]
    • Permet d’utiliser des scripts Nmap Scripting Engine pour des diagnostics avancĂ©s.
  • Scan SYN Furtif : nmap -sS [cible]
    • Utilise des paquets SYN pour un scan furtif (moins susceptible d’ĂȘtre enregistrĂ© dans les journaux du serveur).
  • Scan UDP : nmap -sU [cible]
    • Scanne les ports UDP.
  • DĂ©finir le Niveau de VerbositĂ© : nmap -v [niveau] [cible]
    • Augmente la quantitĂ© d’informations fournies pendant le scan.
  • Enregistrer la Sortie dans un Fichier : nmap -oN [fichier] [cible]
    • Enregistre la sortie du scan dans un fichier.

Exemple pour identifier les versions des services sur une hote :

Terminal window
nmap -sV 192.168.1.15 11:51:27
Starting Nmap 7.80 ( https://nmap.org ) at 2023-11-15 11:52 CET
Nmap scan report for re300.home (192.168.1.15)
Host is up (0.0081s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh Dropbear sshd 2011.54 (protocol 2.0)
80/tcp open http

Plus d’infos sur nmap ici

iftop (Interface Top)

iftop est un outil en ligne de commande utilisĂ© pour surveiller le trafic rĂ©seau en temps rĂ©el. Il fournit une vue d’ensemble du trafic entrant et sortant sur une interface rĂ©seau spĂ©cifique, avec une mise Ă  jour continue des paires de sources et de destinations, ainsi que le taux de transfert de donnĂ©es.

Les principales options Ă  connaĂźtre :

  • Lancer iftop : iftop
    • Lance iftop sur l’interface par dĂ©faut.
  • SpĂ©cifier une Interface : iftop -i [interface]
    • Par exemple, iftop -i eth0 pour surveiller l’interface eth0.
  • Afficher les Ports : iftop -P
    • Affiche les numĂ©ros de port pour les connexions.
  • Mode de Lignes de Paires de Connexion : iftop -F [filtre de rĂ©seau]
    • Affiche seulement le trafic de et vers les adresses dans le rĂ©seau spĂ©cifiĂ©.
  • Masquer les Noms d’HĂŽtes : iftop -n
    • Affiche les adresses IP au lieu des noms d’hĂŽte.
  • Masquer les Ports : iftop -N
    • Cache les numĂ©ros de port dans l’affichage.
  • Trier par Source : iftop -o 2s
  • Trier par Destination : iftop -o 2d
  • Trier par Total : iftop -o 2t
    • Trie les connexions par source, destination ou le total de trafic.

iftop est un outil pratique pour surveiller l’utilisation de la bande passante en temps rĂ©el, offrant une vue instantanĂ©e des connexions les plus actives. Il est particuliĂšrement utile pour identifier les applications ou services qui utilisent une quantitĂ© disproportionnĂ©e de ressources rĂ©seau.

iperf

iperf est un outil populaire utilisĂ© pour mesurer la performance du rĂ©seau, principalement la bande passante maximale que votre rĂ©seau peut fournir. Il peut ĂȘtre utilisĂ© pour crĂ©er des flux de donnĂ©es TCP et UDP entre deux hĂŽtes, permettant ainsi de tester la performance du rĂ©seau entre ces points.

Les principales options Ă  connaĂźtre :

  • Mode Serveur : iperf -s
    • Lance iperf en mode serveur. Cela permet Ă  l’ordinateur d’écouter les connexions entrantes d’un client iperf.
  • Mode Client : iperf -c [adresse serveur]
    • Lance iperf en mode client pour se connecter Ă  un serveur iperf spĂ©cifique.
  • TCP : Par dĂ©faut, iperf utilise le protocole TCP.
  • UDP : iperf -u
    • Utilise le protocole UDP au lieu de TCP pour le test.
  • DurĂ©e du Test : iperf -t [secondes]
    • SpĂ©cifie la durĂ©e du test en secondes.
  • Intervalle de Rapport : iperf -i [secondes]
    • DĂ©termine Ă  quelle frĂ©quence les rapports de performance seront gĂ©nĂ©rĂ©s.
  • Taille du Buffer : iperf -l [taille]
    • DĂ©finit la taille du buffer (ou taille des paquets) pour le test.
  • Bande Passante Ă  Tester : iperf -b [bande passante]
    • Pour UDP, dĂ©finit la bande passante cible pour le test.
  • Nombre de Connexions/Flux ParallĂšles : iperf -P [nombre]
    • Lance plusieurs flux de donnĂ©es en parallĂšle.
  • Mode Bidirectionnel : iperf -d
    • Effectue un test bidirectionnel simultanĂ©.
  • NumĂ©ro de Port : iperf -p [numĂ©ro]
    • SpĂ©cifie le numĂ©ro de port Ă  utiliser.
  • Version de l’interface de ligne de commande : iperf --version
    • Affiche la version d’iperf en cours d’utilisation.
  • Aide : iperf --help
    • Affiche les options d’aide pour iperf.

Exemple d’Utilisation :

  • Serveur : Sur une machine, lancez iperf en mode serveur avec iperf -s.

  • Client : Sur une autre machine, connectez-vous au serveur avec la commande suivante :

Terminal window
iperf -c 172.26.164.12
------------------------------------------------------------
Client connecting to 172.26.164.12, TCP port 5001
TCP window size: 2.50 MByte (default)
------------------------------------------------------------
[ 1] local 172.26.164.12 port 47502 connected with 172.26.164.12 port 5001
[ ID] Interval Transfer Bandwidth
[ 1] 0.0000-10.0113 sec 88.9 GBytes 76.3 Gbits/sec

Diagnotic sur un problÚme de port qui ne répond pas

  1. Si un service ne répond pas sur une machine distante tester le port avec la commande nc :

    Terminal window
    nc 192.168.1.15 80

    Si la commande rend la main directe, c’est que le port ne rĂ©pond pas.

  2. il faut se rendre sur la machine distante et vérifier que le port est en écoute avec la commande ss par exemple :

    Terminal window
    ss -lt
    StateRecv-Q Send-Q Local Address:Port Peer Address:Port Process
    LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
    LISTEN 0 256 0.0.0.0:http 0.0.0.0:*

    Si aucune ligne dans le retour, c’est que le service n’est pas dĂ©marrĂ©.

    Sinon c’est que certainement un firewall n’autorise pas le flux. Le firewall de la machine ? VĂ©rifier avec la commande ipttable.

Des commandes plus complexes

Je vous invite aussi Ă  consulter mes documentations sur :

Mais avant, je vous conseille de lire mes rappels Ă  la loi

Bonnes pratiques

ContrĂŽle de connaissances

Pourquoi ce contrĂŽle ?

Cet contrÎle va vous permettre de valider vos connaissances sur le sujet abordé dans le guide. Il comporte des QCM, des questions vrai/faux et des réponses ouvertes à un mot.

🕒 Le chronomĂštre commence dĂšs que vous cliquez sur DĂ©marrer le test. Vous devrez terminer l’examen avant la fin du temps imparti.

🎯 Pour rĂ©ussir, vous devez obtenir au moins 80% de bonnes rĂ©ponses.

💡 Je ne fournis pas directement les rĂ©ponses aux questions. Cependant, si certaines sont complexes, des pistes d’explication pourront ĂȘtre proposĂ©es dans le guide ou aprĂšs l’examen.

Bonne chance ! 🚀

Conclusion

Les commandes rĂ©seaux sont des outils essentiels pour diagnostiquer et rĂ©soudre les problĂšmes de connectivitĂ© et de performance rĂ©seau. En combinant des outils comme ping, traceroute, nslookup, dig, netcat, ss, iftop et iperf, vous pouvez obtenir une vue d’ensemble de l’état de votre rĂ©seau et identifier les problĂšmes potentiels. Il est important de maĂźtriser ces outils pour assurer une gestion efficace de votre rĂ©seau et d’optimiser les performances de vos systĂšmes.