Nmap sous Ubuntu : scan de ports et analyse des services

Introduction

Véritable référence pour l’audit de sécurité et le diagnostic d’infrastructure, Nmap constitue un composant incontournable de la boîte à outils de tout administrateur sous Ubuntu. Ce tutoriel détaille la mise en place de la solution ainsi que ses commandes fondamentales, en décryptant concrètement le comportement des ports réseau et les signatures de services détectés au fil des scans.

Déploiement de Nmap et mise en place du banc d’essai local

Avant de lancer nos investigations réseau, nous préparons l’environnement Ubuntu en déployant simultanément le scanner et l’interpréteur Python via la commande apt-get update -qq && apt-get install -y nmap python3.

Installation des paquets nmap et python3

Conçu pour cartographier les réseaux et évaluer leur niveau de durcissement, l’utilitaire nmap sonde l’état d’écoute des sockets et identifie les démons actifs.
Pour s’assurer du bon fonctionnement du binaire et passer en revue ses capacités embarquées, on interroge la version installée avec nmap --version.
⚙️ [Paramètres essentiels]

-p : Cible un numéro ou un intervalle spécifique de ports réseau.
-sS : Déclenche un balayage TCP SYN discret (« stealth scan ») sans finaliser l’établissement de la session TCP.
-sT : Initialise une poignée de main complète (3-way handshake) via l’appel système de connexion TCP.
-sU : Examine les ports associés aux protocoles orientés datagramme (UDP).
-sV : Interroge les bannières applicatives pour déterminer avec précision le nom et la révision logicielle du service.
-O : Procède à l’identification par empreinte (« fingerprinting ») du système d’exploitation sous-jacent.
-A : Enclenche un diagnostic approfondi combinant empreinte d’OS, analyse de versions, scripts NSE et traceroute.
-v : Accroît la verbosité dans la console afin de suivre l’avancement des sondes en temps réel.

Vérification de la version installée de nmap

Afin de disposer d’une cible concrète et reproductible sans perturber de services critiques, lançons en arrière-plan un serveur HTTP minimaliste écoutant sur le port 8080 à l’aide de python3 -m http.server 8080 > /dev/null 2>&1 &.

Exécution en arrière-plan d’un serveur HTTP de test

Une brève temporisation d’une seconde orchestrée par sleep 1 garantit que le socket TCP 8080 est parfaitement initialisé et prêt à répondre avant toute tentative de connexion.

Temporisation d’initialisation avec sleep 1

Balayage initial et vérification de la disponibilité de la machine

L’audit de la boucle locale s’initie tout simplement en pointant l’outil sur l’adresse loopback via nmap 127.0.0.1.
Sans argument complémentaire, le programme ausculte automatiquement les 1 000 ports TCP les plus fréquents. Le rapport met immédiatement en évidence la présence du démon SSH sur le port 22 ainsi que notre instance HTTP sur le port 8080.

Scan de ports par défaut sur l’adresse locale

Lorsque la réactivité prime, l’exécution de nmap -F 127.0.0.1 restreint la portée du diagnostic aux 100 ports les plus conventionnels.
Ce mode rapide activé par -F (Fast scan) allège considérablement la charge réseau tout en fournissant une vue d’ensemble instantanée des services majeurs exposés.

Balayage rapide avec l’argument -F

Ciblage granulaire de ports et détection des versions logicielles

Pour éviter de sonder l’intégralité de la pile réseau lorsque seul un service donné vous intéresse, ciblez-le directement avec nmap -p 8080 127.0.0.1.
Cette approche ciblée confirme sans délai que la porte d’entrée 8080 se trouve bel et bien dans l’état accessible (open).

Examen spécifique du port 8080

Pour aller au-delà du simple état d’ouverture et identifier le processus exact qui traite les requêtes, lancez l’inspection avec nmap -sV -p 8080 127.0.0.1.
L’indicateur -sV procède à l’analyse protocolaire fine du service, révélant formellement l’empreinte de la pile Python (SimpleHTTPServer 0.6, Python 3.12.3) derrière ce port 8080.

Identification du service et des versions avec -sV

Exportation des résultats et nettoyage de l’environnement de test

Dans un contexte professionnel, la traçabilité des vérifications est primordiale ; enregistrez la sortie d’analyse au format texte standard grâce à nmap -p 8080 -oN scan_report.txt 127.0.0.1.
Le commutateur -oN duplique le flux affiché dans le terminal vers le fichier désigné (scan_report.txt), facilitant l’archivage historique des audits et la rédaction de bilans techniques.

Enregistrement des résultats de scan dans un fichier texte

Pour contrôler l’intégrité des informations consignées sur le disque, examinez le rapport généré à l’aide de cat scan_report.txt.
Le document consigne l’horodatage exact de l’opération, la ligne de commande invoquée, l’état de l’hôte distant ainsi que le statut détaillé du socket 8080.

Consultation du fichier de rapport généré

Une fois l’exercice achevé, libérez les ressources allouées en stoppant le processus Python résiduel au moyen de pkill -f 'http.server 8080'.

Fermeture du processus serveur avec pkill

Ce tour d’horizon vous offre les bases nécessaires pour maîtriser le scan de ports et interpréter avec discernement les données remontées par Nmap sur vos serveurs Ubuntu.
En intégrant régulièrement ces commandes dans vos routines d’administration, vous réduirez la surface d’attaque en fermant sans tarder tout accès réseau superflu.