GNU/Linux >> Tutoriels Linux >  >> Linux

Analyses de ports Linux efficaces pour l'administrateur réseau

Vous cherchez un moyen de pimenter la sécurité de votre réseau ? Pourquoi ne pas apprendre à effectuer une analyse de port Linux comme un pro ?

Dans ce didacticiel, vous découvrirez certains des outils et techniques les plus populaires et anticiperez les risques et avantages potentiels associés à l'analyse des ports.

Cela semble prometteur ? Lancez l'analyse des ports pour sécuriser votre réseau dès aujourd'hui !

Prérequis

Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous que vous disposez d'un système Linux - Ce didacticiel utilise Ubuntu 20.04, mais toute distribution Linux moderne fonctionnera.

Rechercher les ports ouverts avec Nmap

Il existe différentes façons d'analyser les ports, et Nmap est un excellent outil pour la découverte du réseau et l'audit de sécurité. Nmap vous permet de trouver des hôtes et des services sur un réseau informatique en envoyant des paquets et en analysant les réponses.

Nmap est disponible gratuitement et est compatible avec Windows, Linux et OS X.

L'analyse des ports vous permet de sonder un serveur ou un hôte à la recherche de ports ouverts, ce qui est pratique pour diverses raisons :

  • Détermination des services en cours d'exécution sur un hôte.
  • Découverte des vulnérabilités
  • Énumération d'un système.

Mais avant de profiter de Nmap, vous devez d'abord installer Nmap sur votre machine :

1. Exécutez la commande apt update ci-dessous pour mettre à jour l'index du package système.

apt update -y

2. Ensuite, exécutez la commande apt install suivante pour installer Nmap.

apt install nmap -y

3. Exécutez la commande nmap –version ci-dessous pour vérifier la version de Nmap installée sur votre machine.

nmap --version

Ci-dessous, la version installée de Nmap est 7.80, la dernière version de cette écriture.

4. Maintenant, exécutez la commande nmap suivante pour analyser le nom d'hôte ou l'adresse IP cible (scanme.nmap.org). Vous avez juste besoin d'un minimum d'options pour commencer.

nmap scanme.nmap.org

Vous trouverez ci-dessous la répartition des résultats de l'analyse :

  • L'adresse IPv4 de la cible :45.33.32.156 .
  • L'adresse IPv6 de la cible (si disponible) :2600:3c01::f03c:91ff .
  • Nom DNS inversé (si disponible).

Vous pouvez également voir chaque port et son état dans la sortie :

  • ouvrir – Indique que le port est ouvert et écoute les connexions entrantes.
  • fermé – Indique que le port est fermé et n'écoute pas les connexions entrantes.
  • filtré – Indique que le port est filtré et que Nmap ne peut pas déterminer si le port est ouvert ou fermé. Nmap envoie des sondes au port mais n'obtient aucune réponse.

Scanner des ports spécifiques

Nmap fait beaucoup de choses en arrière-plan pour essayer de déterminer l'état de chaque port. Vous pouvez personnaliser davantage votre analyse en ajoutant des options CLI pour plus de contrôle, comme le -p option. Cette option vous permet de spécifier les ports à analyser.

1. Exécutez la commande suivante pour analyser le port 80 dans votre nom d'hôte cible (scanme.nmap.org). Cette commande vous permet de savoir si le port 80 de l'hôte cible est ouvert ou fermé.

nmap -p 80 scanme.nmap.org

Ci-dessous, vous pouvez voir que le port 80 est ouvert. Cet état vous indique que le serveur Web s'exécute sur le port 80.

2. Ensuite, exécutez la commande suivante pour utiliser les serveurs DNS publics de Google (8.8.8.8 et 8.8.4.4) pour analyser le port 80 du nom d'hôte (scanme.nmap.org).

L'option –dns-servers vous permet de spécifier les serveurs DNS à utiliser pour l'analyse. Cette option est utile lorsque vous souhaitez analyser un hôte sur un réseau différent. Alors que l'indicateur -v vous donne plus d'informations sur l'analyse.

nmap --dns-servers -p 80 8.8.8.8,8.8.4.4 -v scanme.nmap.org

Vous pouvez voir ci-dessous que Nmap utilise les serveurs DNS publics de Google pour résoudre le nom d'hôte et que l'analyse est réussie.

3. Enfin, exécutez la commande ci-dessous pour analyser le port 80 du nom d'hôte (scanme.nmap.org) comme vous l'avez fait à la première étape. Mais cette fois, ajoutez l'option -d pour augmenter le niveau de débogage à 3. Cette option est utile pour résoudre les problèmes avec Nmap.

L'option -d prend un entier (entre 0 et 9) comme argument. Plus le nombre est élevé, plus vous verrez de sortie de débogage.

Le niveau 9 est pour une sortie très détaillée, ce qui est utile pour les développeurs qui travaillent sur Nmap.

nmap -d 3 -p 80 scanme.nmap.org

Balayage des ports à l'aide de Netcat (Ncat)

Netcat (nc ) est un outil de ligne de commande pour l'exploration du réseau, l'audit de sécurité et les tests d'intrusion. Vous pouvez utiliser Netcat pour créer des connexions TCP et UDP simples et des proxies SOCKS et HTTP plus complexes. Mais dans ce didacticiel, vous utiliserez Netcat pour analyser les ports ouverts sur des systèmes distants.

1. Exécutez la commande nc ci-dessous pour rechercher les ports ouverts sans envoyer de données (-z) des ports 20 à 1000 sur 159.89.176.25. L'option -v indique à Netcat d'être verbeux afin que vous puissiez voir ce qui se passe pendant l'analyse.

nc -z -v 159.89.176.25 20-1000

La plage de ports peut être augmentée ou réduite selon les besoins. Mais les ports 20 à 1000 couvrent un large éventail de ports couramment utilisés.

La sortie ci-dessous vous montre quels ports sont ouverts et leur état de connexion sont les suivants :

  • Connexion refusée – Indique que la connexion a été refusée par le port correspondant, ce qui est probablement dû à l'absence d'un service en cours d'exécution sur ce port — le port est fermé.
  • Réussi ! – Indique que la connexion est réussie — le port est ouvert.

Outre le port 22 (SSH), qui est ouvert sur le système distant, vous verrez également de nombreux autres messages, qui peuvent être ennuyeux. Passez donc à l'étape suivante pour filtrer la sortie.

2. Exécutez la commande grep ci-dessous pour analyser les ports 20 à 100 sur 159.89.176.25 et n'afficher que les ports ouverts de chaque résultat d'analyse contenant le mot "réussi".

La partie 2>&1 indique au shell de rediriger stderr (descripteur de fichier 2) vers stdout (descripteur de fichier 1). Vous verrez donc le message d'erreur dans la sortie s'il y en a un.

nc -z -v 159.89.176.25 20-100 2>&1 | grep succeeded

Comme vous pouvez le voir ci-dessous, seul le port 22 est ouvert, qui a également le message réussi.

3. Enfin, exécutez la même commande qu'à l'étape 2. Mais cette fois, ajoutez l'option -u pour rechercher les ports UDP, comme indiqué ci-dessous.

nc -z -v -u 159.89.176.25 20-100 2>&1 | grep succeeded

Notez que l'analyse prend beaucoup plus de temps lors de l'analyse des ports UDP que TCP :

  • Une analyse TCP tente d'établir une connexion avec l'hôte cible, en analysant les 65 535 ports pour voir lesquels sont ouverts.
  • Une analyse UDP n'essaie pas d'établir une connexion mais envoie un paquet UDP à chacun des ports de l'hôte cible pour voir lesquels sont ouverts. Une analyse UDP est inférieure à une analyse TCP, car vous envoyez un paquet et terminez la gestion des erreurs et la prise de contact en trois étapes.

Vous pouvez voir ci-dessous que la sortie est vide car aucun service UDP n'est en cours d'exécution sur le système distant.

Tester si un port est ouvert à l'aide d'un script bash

Jusqu'à présent, vous avez vu comment utiliser Netcat et Nmap pour rechercher des ports ouverts sur un système. Bien que ces outils soient utiles, ils ne sont pas fiables lors de l'automatisation de la tâche d'analyse des ports.

Par exemple, vous prévoyez de rechercher les ports ouverts sur 1 000 hôtes. Dans ce cas, l'analyse manuelle des ports devient fastidieuse et prend beaucoup de temps. Mais comment automatisez-vous les tâches d'analyse de ports sous Linux ? Écrire un script Bash fera l'affaire.

Pour créer un script Bash pour automatiser l'analyse des ports :

1. Ouvrez un nouveau fichier dans votre éditeur de texte préféré. Nommez le fichier comme vous le souhaitez, mais le fichier s'appelle ports.sh pour ce didacticiel.

nano ports.sh

2. Ajoutez le code ci-dessous au ports.sh fichier, mais veillez à remplacer les valeurs SERVER et PORT par votre propre adresse IP ou nom d'hôte et port à analyser.

Après avoir modifié les valeurs, enregistrez les modifications et fermez l'éditeur.

# Defines the server you want to scan. 
SERVER=adamtheautomator.com
# Defines the port to scan.
PORT=443
# Runs the nmap command and assigns the output to the state variable. 
# The grep command filters and displays the output of the nmap command
# with the lines containing the "open" keyword.
state=`nmap -p $PORT $SERVER | grep "$PORT" | grep open`
# Checks if the state variable is blank (port is closed).
if [ -z "$state" ]; then
	# Displays a message if the connection fails.
  echo "Connection to $SERVER on port $PORT has failed"
else
	# Displays a message if the connection succeeded.
  echo "Connection to $SERVER on port $PORT was successful"
	# Exits the script with an exit code of 1 
	# to determine if the script was successful or not.
  exit 1
fi # Ends the if statement

3. Enfin, exécutez la commande bash ci-dessous pour exécuter votre script ports.sh.

bash ports.sh

Si tout se passe bien, vous verrez la sortie suivante indiquant que le port 443 est ouvert sur adamtheautomator.com.

Conclusion

Dans ce didacticiel, vous avez appris à rechercher les ports ouverts sur un système avec Netcat et Nmap. Outre ces outils, vous avez écrit un script Bash pour automatiser l'analyse des ports afin que vous puissiez effectuer d'autres tâches dans votre assiette.

À ce stade, vous savez déjà comment utiliser ces outils pour rechercher les ports ouverts sur un système afin de sécuriser votre réseau. Mais pour automatiser davantage les tâches d'analyse des ports, pourquoi ne pas créer des tâches cron pour planifier l'exécution de vos scripts Bash ?


Linux
  1. Un guide du terminal Linux pour les débutants

  2. 8 conseils pour la ligne de commande Linux

  3. 8 commandes Linux pour une gestion efficace des processus

  4. 10 commandes Linux pour les diagnostics réseau

  5. Kali sur le sous-système Windows pour Linux

GalliumOS :la distribution Linux pour les Chromebooks

Les 50 commandes IP Linux utiles pour les administrateurs réseau

Top 10 des meilleurs scanners de ports Linux pour les administrateurs réseau

Commandes Linux et Unix Tee pratiques pour l'administrateur Linux

Exemples utiles de tcpdump Linux pour l'administrateur réseau

Commandes Nmap - 17 commandes de base pour le réseau Linux