Aller au contenu principal

Les commandes Linux réseau à connaitre

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 fondamentales qui sont cruciales 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 :

    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 :

    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 :

    `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 :

    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 :

    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 :

    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 :
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 :
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 :

    ; <<>> 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.

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 :

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 :

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 :

    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 :

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
attention

nmap est un outil extrêmement flexible avec une multitude d'options, permettant une large gamme de tests de sécurité et d'analyses de réseau. Bien que puissant, il doit être utilisé avec précaution et dans le respect des lois et des règlements locaux, car scanner des réseaux sans autorisation peut être considéré comme intrusif et illégal.

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 :

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 :

    nc 192.168.1.15 80
    
    

    Si la commande rends la main direct 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 :

    nc 192.168.1.15 81
    State                    Recv-Q                    Send-Q                                        Local Address:Port                                         Peer Address:Port                    Process
    

    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.

Bonnes pratiques

attention

⚠️ La plus grande partie des commandes listées ci-dessus ne doivent absolument pas être installé sur des serveurs de production. ⚠️

Par exemple, il est courant de donner la possibilité à des administrateurs réseau de lancer la commande tcpdump en root afin d’effectuer des diagnostics via de l'élévation de privilèges avec sudo.

Cette approche constitue une faille de sécurité : en effet, le programme tcpdump permet de lancer des commandes arbitraires avec l’option -z (notamment utilisée pour compresser des captures réseau). Rien n’empêche une personne malintentionnée d’utiliser le programme /bin/sh pour obtenir les privilèges root à partir de la commande sudo tcpdump.