Introduction
Dans ce laboratoire, vous apprendrez les techniques essentielles pour vérifier l'état des ports réseau sur un système Linux. Comprendre quels ports sont ouverts est fondamental pour l'administration réseau, la résolution de problèmes et l'analyse de sécurité.
Vous commencerez par utiliser la commande netstat avec des options spécifiques pour lister tous les ports TCP et UDP ouverts qui sont en état d'écoute. Ensuite, vous confirmez l'état des ports en utilisant la commande plus moderne ss, qui fournit des statistiques réseau similaires. Enfin, vous utiliserez la commande nc (netcat) pour tester activement la connectivité à un port spécifique, vérifiant s'il est accessible et ouvert du point de vue d'un client. En effectuant ces étapes, vous acquerrez des compétences pratiques pour identifier et vérifier les ports ouverts dans votre environnement Linux.
Lister les ports ouverts avec netstat -tuln
Dans cette étape, vous apprendrez à lister les ports ouverts sur votre système Linux en utilisant la commande netstat. Comprendre quels ports sont ouverts est crucial pour la résolution de problèmes réseau et la sécurité.
La commande netstat (statistiques réseau) est un outil en ligne de commande qui affiche les connexions réseau, les tables de routage, les statistiques des interfaces, les connexions de masquage et les appartenances multicast.
Nous allons utiliser les options suivantes avec netstat :
-t: Afficher les connexions TCP.-u: Afficher les connexions UDP.-l: Afficher les sockets en écoute (ports ouverts).-n: Afficher les adresses numériques au lieu de résoudre les noms d'hôtes et les noms de services.
Ouvrez votre terminal s'il n'est pas déjà ouvert. Vous pouvez trouver l'icône Xfce Terminal sur le côté gauche de votre bureau.
Maintenant, tapez la commande suivante et appuyez sur Entrée :
netstat -tuln
Vous verrez une sortie similaire à celle-ci :
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
udp 0 0 127.0.0.53:53 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
Décortiquons la sortie :
Proto: Le protocole du socket (par exemple,tcp,udp).Local Address: L'adresse IP locale et le numéro de port. Le format estAdresse_IP:Port.0.0.0.0signifie que le service écoute sur toutes les interfaces IPv4 disponibles, et:::signifie qu'il écoute sur toutes les interfaces IPv6 disponibles.Foreign Address: L'adresse IP distante et le numéro de port.0.0.0.0:*ou:::*indique que le socket n'est pas connecté à une adresse distante spécifique (il est en écoute).State: L'état du socket.LISTENsignifie que le port est ouvert et en attente de connexions entrantes.
Dans la sortie d'exemple, vous pouvez voir que le port 53 (DNS) et le port 22 (SSH) sont en état LISTEN pour IPv4 et IPv6.
Cette commande est très utile pour vérifier rapidement quels services sont en cours d'exécution et accessibles sur votre système.
Cliquez sur Continuer pour passer à l'étape suivante.
Confirmer l'état des ports en utilisant ss -tuln
Dans l'étape précédente, vous avez utilisé netstat pour lister les ports ouverts. Maintenant, utilisons un outil plus moderne et souvent plus rapide appelé ss (statistiques des sockets) pour atteindre le même objectif. ss est conçu pour remplacer netstat et fournit des informations plus détaillées sur les sockets.
Nous allons utiliser des options similaires avec ss que nous avons utilisées avec netstat :
-t: Afficher les sockets TCP.-u: Afficher les sockets UDP.-l: Afficher les sockets en écoute (ports ouverts).-n: Afficher les adresses numériques au lieu de résoudre les noms d'hôtes et les noms de services.
Ouvrez votre terminal s'il n'est pas déjà ouvert.
Tapez la commande suivante et appuyez sur Entrée :
ss -tuln
Vous verrez une sortie similaire à celle-ci :
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
udp UNCONN 0 0 0.0.0.0:68 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 128 [::]:22 [::]:*
La sortie est similaire à celle de netstat, affichant le protocole (Netid), l'état (State), l'adresse et le port locaux (Local Address:Port), ainsi que l'adresse et le port du pair (Peer Address:Port).
Vous pouvez voir les mêmes ports (53 et 22) listés en tant que LISTEN, confirmant les résultats de netstat.
Bien que le format de sortie soit légèrement différent, ss fournit des informations similaires sur les ports en écoute et est généralement préféré dans les systèmes Linux modernes en raison de ses performances et de ses fonctionnalités supplémentaires (que nous ne couvrirons pas dans ce laboratoire introductif).
Utiliser à la fois netstat et ss peut être utile pour croiser les informations et vous familiariser avec différents outils disponibles sous Linux.
Cliquez sur Continuer pour passer à l'étape suivante.
Tester la connectivité des ports avec nc -zv
Dans les étapes précédentes, vous avez appris à lister les ports ouverts en utilisant netstat et ss. Maintenant, utilisons la commande nc (netcat) pour tester si vous pouvez réellement vous connecter à un port spécifique. nc est un utilitaire réseau polyvalent qui peut lire et écrire sur des connexions réseau en utilisant TCP ou UDP.
Nous allons utiliser nc avec les options suivantes :
-z: Spécifie quencdoit simplement scanner les démons en écoute sans leur envoyer de données. Cela est utile pour vérifier si un port est ouvert.-v: Active la sortie détaillée, affichant plus de détails sur la tentative de connexion.
Nous allons tester la connectivité au port 22 (SSH), que nous avons vu être en écoute dans les étapes précédentes. Nous allons tester la connexion à la machine locale, qui peut être référencée par l'adresse IP 127.0.0.1 ou le nom d'hôte localhost.
Ouvrez votre terminal s'il n'est pas déjà ouvert.
Tapez la commande suivante et appuyez sur Entrée :
nc -zv 127.0.0.1 22
Vous devriez voir une sortie similaire à celle-ci :
Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!
Cette sortie confirme que nc a pu se connecter avec succès au port 22 de votre machine locale.
Maintenant, essayons de tester un port qui n'est probablement pas ouvert, par exemple le port 80 (HTTP), car aucun serveur web n'est exécuté par défaut dans cet environnement.
Tapez la commande suivante et appuyez sur Entrée :
nc -zv 127.0.0.1 80
Vous verrez probablement une sortie indiquant un refus de connexion ou un délai d'attente, similaire à ceci :
nc: connect to 127.0.0.1 port 80 (tcp) failed: Connection refused
Cette sortie montre que nc n'a pas pu se connecter au port 80, ce qui est normal puisque aucun service n'est en écoute sur ce port.
L'utilisation de nc -zv est un moyen rapide et facile de vérifier si un port spécifique est accessible et ouvert depuis votre emplacement actuel.
Cliquez sur Continuer pour terminer ce laboratoire.
Résumé
Dans ce laboratoire, vous avez appris à vérifier si un port est ouvert sous Linux en utilisant des outils en ligne de commande. Vous avez commencé par utiliser la commande netstat -tuln pour lister tous les ports TCP et UDP ouverts qui sont en état d'écoute, en comprenant le format de sortie, y compris le protocole, l'adresse locale, l'adresse distante et l'état.
Ensuite, vous avez confirmé l'état des ports en utilisant la commande ss -tuln, qui fournit des informations similaires à netstat mais est souvent considérée comme une alternative plus moderne et plus rapide. Enfin, vous avez appris à tester la connectivité à un port spécifique en utilisant la commande nc -zv, qui tente d'établir une connexion et indique si le port est ouvert et accessible. Ces étapes fournissent des compétences essentielles pour la résolution de problèmes réseau et l'analyse de sécurité sur les systèmes Linux.



