Connaissez votre réseau à fond en vérifiant régulièrement les ports ouverts avec ces commandes Linux.

Les ports réseau ouverts sont les points d'entrée les plus faciles à votre réseau. Parfois, des services indésirables peuvent s'exécuter sur des ports visibles de l'extérieur depuis Internet. Dans le cas où ces services seraient vulnérables, votre réseau serait constamment menacé d'attaque, car chaque jour, l'intégralité d'Internet est analysée en masse à la recherche de services vulnérables sur des ports ouverts.

Découvrez comment vous pouvez analyser et afficher les ports ouverts sur vos systèmes Linux, afin de pouvoir défendre votre réseau contre les menaces.

Que sont les ports réseau?

Les ports réseau sont des points d'accès logiques de votre système qui peuvent être utilisés comme canal pour héberger plusieurs services. Un port est représenté par un entier de 16 bits, donc le numéro de port le plus élevé est 65535.

Vous pouvez penser aux ports comme les fenêtres et les portes d'une maison - essentiellement tous les différents points d'entrée d'une maison ou d'un ordinateur. Les ports sont de trois types: ports système (1-1023), ports enregistrés (1024-49151) et ports éphémères ou dynamiques (49152-65535).

Lorsque vous démarrez une application qui nécessite une connexion à Internet, elle utilise des ports dynamiques pour transmettre et recevoir des données sur le réseau. Cependant, lorsque vous démarrez un serveur Web ou un serveur SSH, il se lie généralement aux ports système ou aux ports enregistrés.

Pour les serveurs Web HTTP, le port système par défaut est 80 et pour SSH, c'est 22. Ces réglementations telles que les plages de ports sont élaborées par l'Internet Assigned Numbers Authority (IANA). Vous pouvez passer par le RFC concernant les ports pour obtenir une liste complète de tous les ports et de leurs fonctions.

Il est important que vous connaissiez ports les plus vulnérables afin que vous puissiez vous assurer qu'ils sont fermés ou protégés.

1. Vérifier les ports ouverts avec netstat

netstat est un utilitaire populaire que vous pouvez utiliser pour afficher les statistiques réseau de votre système Linux. Il fait partie du paquet net-tools.

Le package net-tools est maintenant déprécié en raison d'un manque de maintenance appropriée par le développeur. C'est aussi la raison pour laquelle vous pouvez rencontrer une erreur "ifconfig: commande introuvable" lors de l'exécution de la commande populaire ifconfig sous Linux.

Ainsi, sur les systèmes modernes, vous devrez peut-être d'abord installer le package net-tools, puis vous pourrez exécuter la commande netstat. Voici comment vérifier les ports ouverts avec netstat :

netstat -tuln

Explication de la commande :

  • -t affiche les ports TCP.
  • -u affiche les ports UDP.
  • -l affiche les ports d'écoute. Remplacez ceci par un si vous voulez voir tous les ports, quel que soit leur état.
  • -n affiche la valeur numérique des ports au lieu de résoudre les noms de service. Par exemple, affichez le port 22 au lieu de SSH, c'est-à-dire le service exécuté sur le port.

2. Vérifier les ports ouverts avec ss

ss est l'équivalent moderne de l'outil netstat. Vous le trouverez préinstallé dans toutes les distributions Linux modernes. La syntaxe pour vérifier les ports ouverts avec ss est identique à netstat.

Voici comment vérifier les ports ouverts avec ss :

ss-tuln

Explication de la commande :

  • -t affiche les ports TCP.
  • -u affiche les ports UDP.
  • -l affiche les ports d'écoute. Remplacez ceci par un si vous voulez voir tous les ports, quel que soit leur état.
  • -n affiche la valeur numérique des ports au lieu de résoudre les noms de service. Par exemple, affichez le port 21 au lieu de FTP, c'est-à-dire le service exécuté sur le port.

3. Vérifier les ports ouverts avec Nmap

Nmap est l'un des outils les plus populaires en matière de cybersécurité et de mise en réseau. C'est un nom de base en matière de tests d'intrusion de sécurité réseau. Son principal cas d'utilisation est l'analyse des ports. Ainsi, non seulement vous obtiendrez des informations sur les ports ouverts dans votre système, mais également s'ils sont vulnérables et exploitables.

De plus, si vous souhaitez vérifier les ports ouverts dans un système distant avec une configuration IDS/IPS et des pare-feu en place, ne vous inquiétez pas car Nmap peut également contourner les pare-feu et IDS/IPS avec les bons commutateurs.

Regarde ça guide complet sur Nmap pour les débutants pour explorer les diverses fonctionnalités de Nmap et comment les utiliser. Bien que vous le puissiez, il n'est pas recommandé d'essayer de contourner les pare-feu car ce n'est pas entièrement fiable, il est donc préférable de vous connecter en SSH au serveur distant, puis d'exécuter Nmap dessus localement.

Voici la commande pour vérifier les ports ouverts avec Nmap :

nmap -sTU -sV  -T 5 --min-rate 9000 --min-parallelism 9000 --initial-rtt-timeout 50ms --max-rtt-timeout 3000ms --max-retries 50 -Pn --disable-arp-ping -n -- script vulnérabilité, exploit, auth -v -oX 

Explication de la commande :

  • -sTU définit le type d'analyse sur Connexion TCP et analyse UDP.
  • -T 5 définit le modèle de synchronisation sur agressif pour les analyses ultra rapides (non recommandé sur un système non protégé car cela peut entraîner une attaque DoS).
  • -sV active l'analyse des services.
  • --min-taux 9000 indique à Nmap d'envoyer 9000 paquets par seconde.
  • --initial-rtt-timeout 50ms indique à Nmap d'attendre initialement 50 ms pour une réponse à chaque paquet SYN qu'il envoie.
  • --max-rtt-timeout 3000ms indique à Nmap d'attendre au maximum 3000 ms pour une réponse.
  • --min-parallélisme 9000 définit le nombre minimum d'exécutions simultanées de scripts sur 9 000.
  • --max-tentatives 50 indique à Nmap de réessayer 50 fois pour se connecter à un port.
  • -Pn désactive le sondage ping.
  • --disable-arp-ping désactive le sondage ARP.
  • -n désactive la résolution DNS.
  • --script vulnérabilité, exploit, authentification exécute trois scripts pour tester différents types de vulnérabilités dans les ports découverts.
  • -v renvoie une sortie détaillée.
  • -bœuf enregistre les résultats dans un fichier XML.
  • -6 Paramètre facultatif pour analyser les adresses IPv6.

4. Vérifier les ports ouverts avec lsof

La commande lsof sous Linux est utilisée pour lister les fichiers ouverts. Cependant, si vous y ajoutez quelques commutateurs, vous pourrez voir les connexions Internet ouvertes et les ports sur votre ordinateur local. Voici comment vérifier les ports ouverts avec lsof :

lsof -i -n

Explication de la commande :

  • -je répertorie tous les fichiers réseau et Internet.
  • -n ne résout pas les noms d'hôte.

5. Vérifier les ports ouverts avec netcat

netcat est un utilitaire de ligne de commande qui vous permet de lire et d'écrire depuis et vers des connexions TCP/UDP. Notez qu'il ne s'agit que d'une fonctionnalité de netcat. Vous pouvez consulter sa page de manuel en utilisant le homme netcat commande pour explorer toutes ses fonctionnalités et comment les utiliser.

Voici comment vous pouvez utiliser netcat pour analyser les ports ouverts :

nc-zv  | grep -v "refusé"

Explication de la commande :

  • -z définit netcat en mode scanner.
  • -v renvoie une sortie détaillée.
  • grep -v "refusé" renvoie les lignes de sortie sans le mot "refusé". Cela permet d'éviter que le terminal ne soit encombré de messages "connexion refusée" lorsque netcat ne reçoit aucune sortie d'un port.
  • 2>&1: Il s'agit d'un commutateur facultatif que vous devrez peut-être activer pour que grep fonctionne lors de l'exécution de netcat en mode détaillé. netcat renvoie la sortie à stderr (désigné par 2). Donc, pour grep la sortie, vous devez rediriger stderr vers stdout (désigné par 1) puis le diriger vers grep.

Plus vous connaissez votre réseau, mieux vous pouvez le défendre

Savoir quels ports sont ouverts et quels services s'exécutent sur votre système est une étape importante pour le défendre contre d'éventuelles attaques externes. Cela vous permet de rechercher et de fermer des services inutiles, de trouver des services obsolètes et également détecter s'il y a des fichiers malveillants tels que des portes dérobées de shell inversées en cours d'exécution sur votre système.

Si vous êtes sérieux au sujet de la sécurité du réseau, vous devriez envisager d'installer et de configurer une solution IDS pour surveiller toutes les activités sur votre réseau et appliquer des ensembles de règles pour empêcher les connexions non sollicitées.