Linux Astuces - 10. Scanner un réseau (liste des IP up)
Table des matières:
- Qu'est-ce que Open Port
- Vérifiez les ports ouverts avec
nmap
- Vérifiez les ports ouverts avec
netcat
- Vérifier les ports ouverts à l'aide du pseudo-périphérique Bash
- Conclusion
Que vous résolviez des problèmes de connectivité réseau ou que vous configuriez un pare-feu, l'une des premières choses à vérifier est quels ports sont réellement ouverts sur votre système.
Cet article décrit plusieurs approches pour savoir quels ports sont ouverts vers l'extérieur sur votre système Linux.
Qu'est-ce que Open Port
Un port d'écoute est un port réseau sur lequel une application écoute. Vous pouvez obtenir une liste des ports d'écoute sur votre système en interrogeant la pile réseau avec des commandes telles que
ss
,
netstat
ou
lsof
. Chaque port d'écoute peut être ouvert ou fermé (filtré) à l'aide d'un pare-feu.
De manière générale, un port ouvert est un port réseau qui accepte les paquets entrants provenant d'emplacements distants.
Par exemple, si vous exécutez un serveur Web qui écoute sur les ports
80
et
443
et que ces ports sont ouverts sur votre pare-feu, quiconque (à l'exception des ips bloqués) pourra accéder aux sites Web hébergés sur votre serveur Web à l'aide de son navigateur. Dans ce cas,
80
et
443
sont des ports ouverts.
Les ports ouverts peuvent poser un risque pour la sécurité car chaque port ouvert peut être utilisé par des attaquants pour exploiter une vulnérabilité ou effectuer tout autre type d'attaques. Vous ne devez exposer que les ports nécessaires aux fonctionnalités de votre application et fermer tous les autres ports.
Vérifiez les ports ouverts avec
nmap
Nmap est un puissant outil d'analyse de réseau qui peut analyser des hôtes uniques et de grands réseaux. Il est principalement utilisé pour les audits de sécurité et les tests de pénétration.
S'il est disponible,
nmap
devrait être votre premier outil en matière de numérisation de port. Outre l'analyse des ports,
nmap
peut également détecter l'adresse Mac, le type de système d'exploitation, les versions du noyau et bien plus encore.
La commande suivante émise à partir de la console détermine les ports qui écoutent les connexions TCP à partir du réseau:
sudo nmap -sT -p- 10.10.8.8
-sT
indique à
nmap
de rechercher les ports TCP et à
-p-
de rechercher tous les ports 65535. Si
-p-
n'est pas utilisé,
nmap
analysera seulement 1000 ports.
Starting Nmap 7.60 (https://nmap.org) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds
La sortie ci-dessus montre que seuls les ports
22
,
80
et
8069
sont ouverts sur le système cible.
Pour rechercher des ports UDP, utilisez
-sU
au lieu de
-sT
:
sudo nmap -sU -p- 10.10.8.8
Pour plus d'informations, visitez la page de manuel nmap et lisez toutes les autres options puissantes de cet outil.
Vérifiez les ports ouverts avec
netcat
Netcat (ou
nc
) est un outil en ligne de commande qui peut lire et écrire des données sur des connexions réseau, en utilisant les protocoles TCP ou UDP.
Avec
netcat
vous pouvez analyser un seul port ou une plage de ports.
Par exemple, pour rechercher des ports TCP ouverts sur une machine distante avec l'adresse IP
10.10.8.8
dans la plage
20-80
vous utiliserez la commande suivante:
nc -z -v 10.10.8.8 20-80
L'option
-z
indique à
nc
de rechercher uniquement les ports ouverts, sans envoyer de données et l'option
-v
est destinée à des informations plus détaillées.
La sortie ressemblera à ceci:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded!… Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
Pour rechercher des ports UDP, passez l'option
-u
à la commande
nc
:
nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded
Vérifier les ports ouverts à l'aide du pseudo-périphérique Bash
Une autre façon de vérifier si un certain port est ouvert ou fermé est d'utiliser le pseudo-périphérique Bash shell
/dev/tcp/..
ou
/dev/udp/..
Lors de l'exécution d'une commande sur un pseudo-périphérique
/dev/$PROTOCOL/$HOST/$IP
, Bash ouvre une connexion TCP ou UDP à l'hôte spécifié sur le port spécifié.
L'instruction if..else suivante vérifie si le port
443
sur
kernel.org
est ouvert:
if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi
if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi
Port is open
Comment fonctionne le code ci-dessus?
Le délai d'expiration par défaut lors de la connexion à un port à l'aide d'un pseudo périphérique est énorme, nous utilisons donc la commande
timeout
pour tuer la commande de test après 5 secondes. Si la connexion est établie avec le port
kernel.org
443
la commande test renverra true.
Vous pouvez également utiliser la boucle for pour vérifier une plage de ports:
for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done
for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done
La sortie ressemblera à ceci:
port 22 is open port 80 is open
Conclusion
Nous vous avons montré plusieurs outils que vous pouvez utiliser pour rechercher des ports ouverts. Il existe également d'autres utilitaires et méthodes pour vérifier les ports ouverts, par exemple, vous pouvez utiliser le module de
socket
Python,
curl
,
telnet
ou
wget
.
Une étude de groupe de l'UE révèle que les logiciels publics sont exclus des marchés publics. > Alors que la Commission européenne rédige des lignes directrices exhortant les services gouvernementaux de l'Union européenne à choisir des logiciels basés sur des standards ouverts, une étude publiée mercredi montre qu'un quart des appels d'offres récents ont exclu les logiciels ouverts en faveur des éditeurs de logiciels tels que Microsoft.
OpenForum Europe (OFE), un groupe de commerce qui répertorie IBM et Google parmi ses membres, a examiné 136 appels d'offres récents émanant de bureaux gouvernementaux des 27 pays membres de l'UE. "Les autorités publiques ne sont pas seulement accusées de gaspiller des milliards par des achats inefficaces, mais aussi de verrouiller leurs utilisateurs et leurs citoyens dans les solutions d'aujourd'hui et d'être »Graham Graham, directeur général d'OFE
Vérifier les fichiers pour les modifications avec le fichier Marxio Checksum Verifier
Validez une grande variété de sommes de contrôle avec cet utilitaire léger. chaîne de caractères qui identifie de manière unique un fichier, une empreinte digitale. Changez même quelques octets d'un fichier - par exemple, en l'infectant avec un virus ou en remplaçant une ancienne version par une nouvelle - et la somme de contrôle change. Marxio File Checksum Verifier (gratuit / donationware) est un petit utilitaire autonome qui va générer une somme de contrôle pour un fichier donné, puis le comp
Comment vérifier les ports d'écoute sous Linux (ports utilisés)
Cet article explique comment trouver les ports utilisés et quels services écoutent sur quels ports à l'aide des commandes netstat, ss et lsof. Les instructions s'appliquent à tous les systèmes d'exploitation Linux et Unix comme macOS.