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 senior est retenu en réunion et vous a chargé du diagnostic initial. C'est le moment de briller ! Votre mission consiste à enquêter méthodiquement sur l'état du réseau du serveur, à identifier la cause profonde du problème et à rétablir la connectivité. Remettons ce serveur en ligne !

Avis important
Les défis à venir peuvent dépasser le cadre du cours Prise en main rapide de Linux.
Si vous rencontrez des difficultés pendant le défi :
  1. Passez temporairement le défi et continuez 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 des interfaces 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 seulement 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 des interfaces réseau telles que lo (loopback) et eth0 (ou similaire). Observez l'état de votre interface principale : elle doit afficher UP pour indiquer qu'elle est active.

## Format de sortie attendu (les noms d'interface peuvent varier)
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 permettant de 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

D'accord, 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 toujours utile de connaître plusieurs outils pour la même tâche.

Tâches

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

Exigences

  • Vous devez impérativement utiliser la commande ifconfig.

Exemples

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

## Sortie attendue montrant la configuration IP
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.
  • L'exécution de ifconfig sans 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 (gateway) ou les paramètres DNS. La commande ping est l'outil idéal pour ce test.

Tâches

  • Testez la connectivité du serveur à Internet en envoyant exactement 3 paquets ICMP au 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 délai. Le résumé à la fin doit indiquer 3 paquets transmis et 3 paquets reçus avec 0 % de perte de paquets.

## Modèle de sortie réussie attendu
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 vient peut-être 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 écoute les 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 écoute sur le port 8000, vous devriez voir une sortie contenant des informations sur le socket d'écoute. Recherchez une ligne affichant le port 8000 dans la colonne "Local Address".

## Sortie attendue montrant un processus en écoute sur le 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 drapeaux utiles :
    • -t : Affiche les sockets TCP.
    • -l : Affiche les sockets en écoute (listening).
    • -n : Affiche les numéros de ports au format numérique au lieu des noms de services.
    • -p : Affiche le processus utilisant le socket.
  • Vous pouvez combiner ces drapeaux, par exemple 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 base du pare-feu

Vous avez tout confirmé : l'interface est active, l'IP est configurée, la connectivité Internet fonctionne et l'application é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 dernière tâche consiste à configurer le pare-feu pour refuser l'accès au 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 refuser 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, l'exécution de sudo ufw status devrait montrer que le pare-feu est actif avec le port 8000 refusé et le SSH (port 22) autorisé.

## Sortie attendue après l'activation du pare-feu avec le port 8000 refusé et SSH autorisé
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
8000                       DENY        Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
8000 (v6)                  DENY        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 directe. Pour refuser le trafic sur un port, utilisez ufw deny <port>.
  • Vous pouvez refuser le trafic sur le port 8000 avec ufw deny 8000.
  • Vous pouvez autoriser spécifiquement le trafic SSH avec 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 pannes 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 diagnostiqué et résolu le problème avec succès. Le portail interne est à nouveau opérationnel 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 cruciale pour tout administrateur système et sera inestimable dans votre carrière. Continuez à perfectionner vos talents !

✨ 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