JOUR 07 : Le Navigateur Réseau

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue, Navigateur Réseau ! Vous venez d'être embauché en tant qu'administrateur système junior dans une startup technologique en pleine croissance. Ce matin, un serveur web critique est tombé en panne. Les utilisateurs signalent qu'ils ne peuvent plus accéder au portail interne de l'entreprise.

Votre administrateur principal est en réunion et vous a confié le diagnostic initial. C'est le moment de briller ! Votre mission consiste à examiner systématiquement l'état du réseau du serveur, à identifier la cause profonde et à rétablir la connectivité. Remettons ce serveur en ligne !

Avis important
Les défis à venir peuvent dépasser le cadre du cours Démarrage rapide avec Linux.
Si vous rencontrez des difficultés pendant le défi :
  1. Sautez temporairement le défi et poursuivez avec les laboratoires guidés suivants dans le parcours d'apprentissage Linux.
  2. Discutez avec Labby ou consultez la solution.

Vérification de l'état de l'interface réseau

Votre première étape en tant que Navigateur Réseau consiste à recueillir des informations de base. Le matériel réseau est-il reconnu et actif ? Vous devez vérifier l'état de toutes les interfaces réseau sur le serveur. L'outil moderne pour cette tâche est la commande ip.

Tâches

  • Utilisez la commande ip pour afficher l'état et la configuration de toutes les interfaces réseau.

Exigences

  • Vous devez utiliser la commande ip addr pour effectuer cette vérification.

Exemples

Après avoir exécuté la commande, vous devriez voir une sortie affichant les interfaces réseau telles que lo (loopback) et eth0 (ou similaire). Recherchez l'état de votre interface principale - elle doit indiquer UP pour signifier qu'elle est active.

## Expected output format (interface names may vary)
1: lo: 65536 qdisc noqueue state UNKNOWN group default qlen 1000 < LOOPBACK,UP,LOWER_UP > mtu
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: 1500 qdisc mq state UP group default qlen 1000 < BROADCAST,MULTICAST,UP,LOWER_UP > mtu
link/ether 00:16:3e:04:b0:40 brd ff:ff:ff:ff:ff:ff
inet 172.16.50.108/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
valid_lft 1892159216sec preferred_lft 1892159216sec

Conseils

  • La commande ip est un outil puissant doté de nombreuses sous-commandes. Celle pour gérer les adresses est addr.
  • Vous pouvez utiliser ip addr show ou son alias plus court ip addr.

Vérification de la configuration de l'adresse IP

Très bien, l'interface est UP. C'est un bon début. Mais possède-t-elle une adresse IP ? Une interface sans adresse IP ne peut pas communiquer sur le réseau. Bien que ip addr affiche cette information, utilisons une autre commande classique, ifconfig, pour effectuer une double vérification. Il est utile de connaître plusieurs outils pour une même tâche.

Tâches

  • Utilisez la commande ifconfig pour vérifier la configuration de l'adresse IP.

Exigences

  • Vous devez utiliser la commande ifconfig.

Exemples

La sortie doit afficher vos interfaces réseau avec leurs adresses IP. Recherchez le champ inet sous votre interface réseau principale (comme eth0) pour confirmer la configuration IP.

## Expected output showing IP configuration
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.50.108  netmask 255.255.255.0  broadcast 172.16.50.255
        ether 00:16:3e:04:b0:40  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0

Conseils

  • La commande ifconfig fait partie du paquet net-tools, que nous avons déjà installé pour vous.
  • Exécuter ifconfig sans aucun argument affichera toutes les interfaces actives.

Test de connectivité vers des hôtes distants

Le serveur dispose d'une interface active et d'une adresse IP. L'étape logique suivante consiste à vérifier s'il peut atteindre le monde extérieur. Un échec ici pourrait indiquer un problème avec la passerelle ou les paramètres DNS. La commande ping est l'outil idéal pour ce test.

Tâches

  • Testez la connectivité du serveur vers Internet en envoyant exactement 3 paquets ICMP vers le serveur DNS public de Google à l'adresse 8.8.8.8.

Exigences

  • Vous devez utiliser la commande ping.
  • Vous devez limiter le nombre de paquets envoyés à 3.
  • L'adresse IP cible doit être 8.8.8.8.

Exemples

Si la connectivité fonctionne, vous devriez voir des réponses de l'adresse IP cible avec des informations de temporisation. Le résumé à la fin doit indiquer 3 paquets transmis et 3 paquets reçus avec 0 % de perte de paquets.

## Expected successful output pattern
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=4.33 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=4.30 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=4.30 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 4.298/4.309/4.329/0.014 ms

Conseils

  • La commande ping s'exécutera indéfiniment à moins que vous ne lui demandiez de s'arrêter.
  • Utilisez l'option -c pour spécifier le nombre (count) de paquets à envoyer.

Inspection des ports réseau ouverts

La connectivité est bonne ! Alors, pourquoi le portail interne est-il toujours inaccessible ? Le problème pourrait venir de l'application elle-même. Le processus du serveur web est-il réellement en cours d'exécution et à l'écoute des connexions sur le bon port ? La commande ss (socket statistics) est un outil moderne et rapide pour enquêter sur ce point.

Tâches

  • Le portail interne est censé fonctionner sur le port 8000. Utilisez la commande ss pour vérifier si un processus est à l'écoute des connexions TCP sur le port 8000.

Exigences

  • Vous devez utiliser la commande ss.
  • Votre commande doit être construite pour afficher les sockets TCP en écoute.

Exemples

Si un processus est à l'écoute sur le port 8000, vous devriez voir une sortie contenant des informations sur le socket en écoute. Recherchez une ligne qui affiche le port 8000 dans la colonne Local Address.

## Expected output showing a listening process on port 8000
LISTEN 0      5            0.0.0.0:8000       0.0.0.0:*    users:(("python3",pid=3765,fd=3))

Conseils

  • La commande ss possède plusieurs indicateurs utiles :
    • -t : Afficher les sockets TCP.
    • -l : Afficher les sockets en écoute (listening).
    • -n : Afficher les numéros de port numériques au lieu des noms de service.
    • -p : Afficher le processus utilisant le socket.
  • Vous pouvez combiner ces indicateurs, comme ss -tlnp.
  • Pour trouver un port spécifique, vous pouvez rediriger la sortie de ss vers la commande grep. Par exemple : ss -tlnp | grep 8000.

Configuration des règles de pare-feu de base

Vous avez tout confirmé : l'interface est active, l'IP est définie, la connectivité Internet fonctionne et l'application est à l'écoute sur le bon port. Il ne reste qu'un seul suspect majeur : le pare-feu. Il bloque probablement le trafic entrant vers le portail. Votre tâche finale consiste à configurer le pare-feu afin que le trafic puisse à nouveau atteindre le portail. Nous utiliserons ufw (Uncomplicated Firewall), une interface conviviale pour gérer les règles de pare-feu.

Tâches

  1. Ajoutez une règle de pare-feu pour autoriser le trafic entrant sur le port 8000.
  2. Ajoutez une règle de pare-feu pour autoriser le trafic SSH entrant (port 22).
  3. Activez le pare-feu pour appliquer les nouvelles règles.

Exigences

  • Vous devez utiliser la commande ufw pour toutes les opérations.
  • Vous devez utiliser sudo car la modification des règles de pare-feu nécessite des privilèges administratifs.

Exemples

Après avoir configuré les règles de pare-feu, l'exécution de sudo ufw status devrait montrer que le pare-feu est actif et que le port 8000 ainsi que le SSH (port 22) sont autorisés.

## Expected output after enabling firewall with port 8000 and SSH allowed
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
8000                       ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
8000 (v6)                  ALLOW       Anywhere (v6)

Lors de l'ajout de la règle, vous devriez voir :

Rules updated
Rules updated (v6)

Lors de l'activation du pare-feu, vous devriez voir :

Firewall is active and enabled on system startup

Conseils

  • La syntaxe de ufw est très simple. Pour autoriser le trafic sur un port, utilisez ufw allow <port>.
  • Vous pouvez autoriser le trafic sur le port 8000 en utilisant ufw allow 8000.
  • Vous pouvez autoriser le trafic SSH spécifiquement en utilisant ufw allow ssh ou ufw allow 22.
  • Avertissement critique : Si vous n'ouvrez pas correctement le port SSH (22), la vérification échouera car elle dépend de ce port pour la connectivité SSH.
  • Avertissement important : Ne modifiez pas arbitrairement les règles de pare-feu pour d'autres ports, car cela pourrait entraîner des échecs de la machine virtuelle en ligne.
  • Après avoir ajouté vos règles, vous devez activer le pare-feu avec ufw enable.

Résumé

Excellent travail, Navigateur ! En vérifiant systématiquement les interfaces réseau, en validant la configuration IP, en testant la connectivité, en inspectant les ports ouverts et enfin en configurant le pare-feu, vous avez réussi à diagnostiquer et à résoudre le problème. Le portail interne est maintenant de nouveau en ligne, et vous avez gagné le respect de votre équipe.

Vous avez démontré une solide maîtrise des outils réseau fondamentaux de Linux tels que ip, ifconfig, ping, ss et ufw. Ce processus de dépannage logique et étape par étape est une compétence essentielle pour tout administrateur système et sera inestimable tout au long de votre carrière. Continuez à perfectionner vos compétences !

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer