Sitedetout - Tutoriels informatiques

Vérifier si un port d’une machine distante est ouvert sur Linux

Pour accéder à des services distants comme une base de données, annuaire LDAP, serveur apache… ou pour simplement accéder à une machine distante en SSH, le port du service distant devra être ouvert.

Parfois et en raison d’un blocage, il est nécessaire de vérifier si le flux vers le port distant est ouvert ou bien non ce qui signifie qu’il y a un problème au niveau de son service ou qu’un un pare-feu le bloque par exemple.

Cet article vous montrera trois moyens pour le faire. En effet, il existe trois outils permettant de vérifier si un port distant est ouvert :

netcat (commande nc)

Netcat est un outil linux au fonctionnement similaire à cat mais qui est dédié au réseau d’où son nom. Il sert à lire, écrire et rediriger des données à travers le réseau. Il a plusieurs fonctionnalités et on peut l’utiliser comme outil de diagnostic réseau, scan de ports ou encore proxy TCP. On l’appelle d’ailleurs “le couteau suisse du réseau”.

Il se peut que l’outil nc ne soit pas installé par défaut sur certaines distributions. Il serait donc nécessaire de l’installer comme suit :

[root@master ~]# yum install nc
...
Installé :
  nmap-ncat.x86_64 2:6.40-19.el7

Dépendances installées :
  libpcap.x86_64 14:1.5.3-11.el7

Terminé !

Voici comment vérifier l’ouverture du port SSH (22) de la machine distante dont l’@IP 192.168.160.10 :

[root@master ~]# nc -zv 192.168.150.160 22
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.150.160:22.
Ncat: 0 bytes sent, 0 bytes received in 0.04 seconds.

nmap

nmap est un outil puissant qui permet de scanner un réseau, détecter ses ports ouverts, ses services exposés et obtenir plusieurs informations sur le système d’exploitation distant comme le par-feu utilisé, noms DNS, adresses MAC… Il est ainsi utilisé pour auditer la sécurité d’une ou plusieurs machines distantes.

Comme pour nc, nmap n’est pas installé par défaut sur certaines distributions, voici comment l’installer :

[root@master ~]# yum install nmap
...
Installé :
  nmap.x86_64 2:6.40-19.el7

Terminé !

On peut vérifier l’ouverture d’un port simplement avec nmap. Ainsi, le test précédent est faisable comme suit :

[root@master ~]# nmap 192.168.150.160 -p 22

Starting Nmap 6.40 ( http://nmap.org ) at 2020-03-19 23:21 CET
Nmap scan report for 192.168.150.160
Host is up (0.00012s latency).
PORT   STATE SERVICE
22/tcp open  ssh 

Nmap done: 1 IP address (1 host up) scanned in 0.20 seconds

/dev/tcp

Dans le cas où l’installation et l’utilisation des deux outils précédents n’est pas possible, il existe un moyen qui est inclut sur toute distribution Linux. En effet, grâce à l’interpréteur de commandes BASH, on peut utiliser le fichier virtuel /dev/tcp pour détecter si un port distant est ouvert ou non.

On peut utiliser /dev/tcp comme outil de diagnostic, scan de ports ou pour télécharger des fichiers…

Ainsi, une redirection vers /dev/tcp/$host/$port permet de créer une Socket TCP et ouvrir une connexion vers l’hôte/port concernés.

Donc, pour exécuter le même test précédent voici la commande nécessaire :

[root@master ~]# echo > /dev/tcp/192.168.150.160/22 && echo "Le port est ouvert"
Le port est ouvert

Dans le cas où le port n’est pas accessible, le résultat sera comme suit (port 222) :

echo > /dev/tcp/192.168.150.160/222 && echo "Le port est ouvert"
-bash: connect: Connexion refusée
-bash: /dev/tcp/192.168.150.160/222: Connexion refusée


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Chargement...

Powered by themekiller.com