Utilitaire de réseau Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Linux propose de nombreux outils réseau puissants aux administrateurs système et aux utilisateurs pour gérer les communications réseau, résoudre les problèmes de connectivité et transférer des données entre les systèmes. Ces outils constituent la base de la gestion réseau dans les environnements Linux.

Dans ce labo (atelier), vous allez explorer l'utilitaire nc (netcat), souvent appelé le "Couteau suisse" des outils réseau. Vous apprendrez à établir des connexions entre les systèmes, à transférer des données et à utiliser les techniques de communication réseau de base qui sont essentielles pour tout utilisateur ou administrateur Linux.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 85%. Il a reçu un taux d'avis positifs de 97% de la part des apprenants.

Comprendre les bases de Netcat (nc)

Dans cette étape, vous allez apprendre à connaître l'utilitaire netcat (nc), l'un des outils réseau les plus polyvalents sous Linux. Netcat vous permet de lire et d'écrire sur des connexions réseau en utilisant les protocoles TCP ou UDP, ce qui le rend utile pour diverses tâches telles que le scan de ports, le transfert de fichiers et la création d'applications client-serveur simples.

Tout d'abord, assurons-nous que vous êtes dans le bon répertoire de travail :

cd ~/project

Vérifions si netcat est installé sur votre système :

which nc

Vous devriez voir une sortie similaire à :

/usr/bin/nc

Maintenant, explorons l'utilisation de base de netcat en affichant son information d'aide :

nc -h

Cette commande affiche les diverses options disponibles avec l'utilitaire netcat. Vous devriez voir une liste de paramètres de ligne de commande et leurs descriptions. Prenez un moment pour examiner ces options afin de comprendre globalement les capacités de netcat.

L'une des utilisations les plus courantes de netcat est de créer une simple connexion client-serveur. Un serveur écoute sur un port spécifique pour les connexions entrantes, et un client se connecte à ce serveur pour établir une communication.

Commençons par un exemple simple. Tout d'abord, ouvrez un nouveau terminal en cliquant sur l'icône "+" dans le panneau du terminal. Vous aurez besoin de deux terminaux pour cet exercice - l'un pour le serveur et l'autre pour le client.

Dans le premier terminal, configurez un serveur netcat qui écoute sur le port 8888 :

nc -l 8888

Le paramètre -l indique à netcat d'écouter les connexions entrantes sur le port spécifié (8888 dans ce cas). Le terminal semble figé, mais c'est normal - il attend une connexion.

Maintenant, basculez vers le deuxième terminal et connectez-vous au serveur en tant que client :

nc localhost 8888

Cette commande établit une connexion au serveur netcat en cours d'exécution sur la machine locale (localhost) au port 8888.

Une fois connecté, vous pouvez taper un message dans l'un ou l'autre terminal, et il apparaîtra dans l'autre terminal après avoir appuyé sur Entrée. Cela démontre un canal de communication bidirectionnel de base. Essayez de taper "Hello from the client!" dans le terminal client et appuyez sur Entrée. Vous devriez voir le message apparaître dans le terminal serveur.

De même, tapez "Hello from the server!" dans le terminal serveur et appuyez sur Entrée. Le message devrait apparaître dans le terminal client.

Cet exemple simple montre comment netcat peut être utilisé pour créer un canal de communication de base entre deux points terminaux. Pour terminer la connexion, appuyez sur Ctrl+C dans l'un des terminaux.

Transférer des fichiers avec Netcat

L'une des fonctionnalités puissantes de netcat est sa capacité à transférer des fichiers entre les systèmes. Dans cette étape, vous allez apprendre à utiliser netcat pour envoyer un fichier d'un système à un autre.

Tout d'abord, créons un fichier texte à transférer. Dans votre premier terminal (assurez-vous d'avoir fermé toutes les sessions netcat précédentes en appuyant sur Ctrl+C), créez un fichier appelé sample.txt :

echo "This is a sample file that will be transferred using netcat." > ~/project/sample.txt

Vérifions que le fichier a été correctement créé :

cat ~/project/sample.txt

Vous devriez voir le contenu suivant :

This is a sample file that will be transferred using netcat.

Maintenant, transférons ce fichier en utilisant netcat. Nous allons configurer un récepteur (serveur) dans le deuxième terminal :

cd ~/project
nc -l 9999 > received_file.txt

Cette commande indique à netcat d'écouter sur le port 9999 et de rediriger toutes les données reçues vers un fichier appelé received_file.txt.

Dans le premier terminal, nous allons envoyer le fichier :

cd ~/project
cat sample.txt | nc localhost 9999

Cette commande lit le contenu de sample.txt et le transmet via un tuyau (pipe) à netcat, qui l'envoie au serveur écoutant sur le port 9999.

Une fois le transfert terminé, la connexion se fermera automatiquement car il n'y a plus de données à envoyer. Le serveur netcat dans le deuxième terminal se terminera également.

Maintenant, vérifions que le fichier a été correctement transféré. Dans le deuxième terminal, affichez le contenu du fichier reçu :

cat ~/project/received_file.txt

Vous devriez voir le même contenu que dans le fichier original :

This is a sample file that will be transferred using netcat.

Cela démontre comment netcat peut être utilisé pour des transferts de fichiers simples entre les systèmes. Dans des scénarios réels, vous pourriez utiliser cette technique pour transférer des fichiers entre différents ordinateurs sur un réseau, pas seulement entre différents terminaux sur le même système.

Créer un simple serveur de chat avec Netcat

Dans cette étape, vous allez apprendre à créer un serveur de chat plus robuste en utilisant netcat avec des options supplémentaires. Cet exemple montrera comment netcat peut être utilisé pour des connexions plus persistantes.

Tout d'abord, comprenons quelques options supplémentaires de netcat qui seront utiles :

  • -k : Cette option permet au serveur de continuer à écouter après la déconnexion d'un client, autorisant ainsi plusieurs connexions au fil du temps.
  • -v : Cela active la sortie détaillée (verbose), fournissant plus d'informations sur la connexion.

Créons un serveur de chat qui continue de fonctionner même après la déconnexion d'un client. Dans votre premier terminal :

cd ~/project
nc -l -k -v 7777

Vous devriez voir une sortie indiquant que netcat écoute :

Listening on 0.0.0.0 7777

Ce serveur continuera de fonctionner et d'accepter de nouvelles connexions même après la déconnexion d'un client.

Maintenant, dans votre deuxième terminal, connectez-vous à ce serveur :

cd ~/project
nc localhost 7777

Vous devriez voir un message dans le premier terminal indiquant une nouvelle connexion, similaire à :

Connection from 127.0.0.1 port 7777 [tcp/*] accepted

Vous pouvez maintenant échanger des messages entre les terminaux comme précédemment. Tapez un message dans un terminal et appuyez sur Entrée pour l'envoyer à l'autre terminal.

Pour tester la persistance du serveur, déconnectez le client en appuyant sur Ctrl+C dans le deuxième terminal. Ensuite, reconnectez-vous en utilisant la même commande :

nc localhost 7777

Vous devriez pouvoir vous reconnecter et continuer à chatter, ce qui démontre que le serveur reste actif entre les connexions des clients.

Pour enregistrer un journal de votre conversation de chat, vous pouvez modifier la commande du serveur pour enregistrer tous les messages entrants dans un fichier. Appuyez sur Ctrl+C pour arrêter le serveur actuel, puis démarrez un nouveau avec redirection de sortie :

cd ~/project
nc -l -k -v 7777 | tee chat_log.txt

Cette commande utilise l'utilitaire tee pour afficher les messages entrants à l'écran et les enregistrer dans le fichier chat_log.txt.

Reconnectez-vous depuis le deuxième terminal et envoyez quelques messages. Après avoir échangé quelques messages, déconnectez le client (appuyez sur Ctrl+C dans le deuxième terminal), puis vérifiez le fichier de journal de chat :

cat ~/project/chat_log.txt

Vous devriez voir les messages que vous avez envoyés depuis le terminal client.

Pour arrêter le serveur, appuyez sur Ctrl+C dans le premier terminal.

Cette étape a démontré comment créer un serveur de chat plus robuste en utilisant netcat et comment enregistrer la communication, ce qui peut être utile pour la tenue de registres ou le débogage.

Résumé

Dans ce laboratoire (lab), vous avez exploré l'outil puissant netcat (nc), qui est un outil de réseau essentiel dans les environnements Linux. Voici un résumé de ce que vous avez appris :

  1. Utilisation de base de netcat pour créer des connexions client-serveur pour une communication simple
  2. Transfert de fichiers entre des systèmes en utilisant netcat
  3. Création d'un serveur de chat persistant avec des capacités de journalisation

Ces compétences constituent une base pour des tâches de réseau plus avancées telles que :

  • Dépannage réseau
  • Scan de ports
  • Création de services réseau simples
  • Transfert de données sécurisé entre des systèmes

La polyvalence de netcat en fait un outil inestimable pour les administrateurs systèmes, les ingénieurs réseau et les professionnels de la sécurité. Les techniques que vous avez apprises dans ce laboratoire peuvent être appliquées à divers scénarios du monde réel où la communication réseau et le transfert de données sont nécessaires.

Au fur et à mesure de votre progression dans le monde Linux, envisagez d'explorer d'autres outils de réseau tels que ssh, curl, wget et tcpdump pour élargir votre boîte à outils réseau.