Linux / Commande nmap : ports, états et découverte des hôtes autorisés

nmap, Network Mapper, examine les hôtes et les ports réseau pour aider à identifier les services accessibles. Utilisez-le sur les systèmes que vous administrez ou dans un périmètre de contrôle autorisé. Les états open, closed et filtered décrivent ce que Nmap observe depuis un point donné ; un port ouvert ne prouve pas la sécurité ni le bon fonctionnement complet d’une application.

Commencer par une cible et des ports limités

Les exemples utilisent 127.0.0.1, la boucle locale IPv4 de votre propre machine. Ils ne décrivent pas un résultat garanti et ne testent pas son exposition depuis Internet. Vérifiez d’abord nmap --version et man nmap pour la version et les fonctions installées.

nmap [OPTIONS] CIBLE
nmap -sT -p 22,80 127.0.0.1

-sT choisit le contrôle TCP connect : Nmap demande au système d’établir une connexion. TCP signifie Transmission Control Protocol. -p 22,80 limite la phase de scan de ports aux deux ports indiqués ; ni un serveur SSH sur 22 ni un serveur web sur 80 ne sont supposés présents.

Ce contrôle peut établir puis fermer des connexions et produire des événements dans les journaux. Sur une machine partagée ou de production, respectez le périmètre et les conditions d’intervention, même si l’adresse de destination est locale.

nmap 127.0.0.1

La forme simple examine normalement les 1000 ports TCP les plus courants, pas tous les ports et pas automatiquement UDP. La technique par défaut dépend des droits : Nmap utilise généralement SYN lorsqu’il peut envoyer les paquets nécessaires, ou connect à défaut. La forme explicite -sT -p facilite donc une première comparaison limitée.

Lire PORT, STATE et SERVICE

Exemple fictif d’une ligne de résultat, si un port accepte effectivement les connexions :

PORT     STATE  SERVICE
22/tcp   open   ssh

PORT associe un numéro au protocole. STATE donne l’interprétation du scan. SERVICE peut être un nom déduit de la base des ports connus ; « ssh » n’est pas à lui seul une identification certaine du logiciel, de sa version ou de sa configuration.

État Ce qu’il permet de dire
open Un service accepte les communications correspondant au protocole et à la méthode observés.
closed Le port répond aux sondes, mais aucune application n’y est observée en écoute.
filtered Le filtrage empêche Nmap de déterminer si le port est ouvert ou fermé.
open|filtered La méthode ne permet pas de départager ouverture et filtrage, notamment dans certains résultats UDP.

La table n’est pas forcément affichée pour chaque port : Nmap peut regrouper les états courants dans un résumé. Un scan sans port ouvert ne signifie pas qu’aucun service n’existe sur la machine : un autre port, une autre famille d’adresses ou un autre espace de noms peut être concerné.

Le même port peut apparaître open depuis le réseau local et filtered depuis un autre réseau. Comparez l’adresse, le protocole, la méthode et le point de départ avant de conclure qu’une réponse est contradictoire. La documentation des états de ports Nmap décrit les six états possibles.

Séparer découverte d’hôtes et scan de ports

nmap -sn 127.0.0.1

-sn demande la découverte sans scan de ports ultérieur dans cette forme simple. Il ne signifie pas « aucun paquet » et sa découverte n’est pas nécessairement un simple ping ICMP : les mécanismes employés dépendent notamment de la proximité de la cible et des droits disponibles.

-Pn saute la décision préalable de découverte et poursuit les opérations demandées en traitant les adresses comme actives. Ce n’est pas une preuve que les machines existent ou répondent. Sur une plage d’adresses, cela peut fortement accroître le travail en tentant le scan sur chaque cible. Sur un réseau Ethernet local, les échanges nécessaires de résolution de voisinage peuvent encore avoir lieu.

Une absence de réponse de découverte peut venir du filtrage. Avant d’ajouter -Pn, confirmez que l’adresse est la bonne et que l’examen reste dans le périmètre prévu. La documentation de découverte d’hôtes précise ces différences.

Identifier un service et conserver un résultat exploitable

-sV demande des échanges supplémentaires pour identifier les services et versions. Cette détection est plus informative qu’un nom associé au numéro de port, mais reste dépendante des réponses et de la base de reconnaissance. Une version trouvée ne prouve ni l’absence ni la présence de toutes les vulnérabilités.

Pour conserver la sortie d’un contrôle TCP limité, choisissez un fichier nouveau dans un répertoire de travail :

nmap -sT -p 22,80 -oN nmap-local.txt 127.0.0.1

-oN écrit le format texte normal ; un fichier existant peut être remplacé. Conservez aussi les conditions utiles : date, cible, version de Nmap, droits, options et point de départ. Les rapports peuvent révéler des informations sur vos services : choisissez leur emplacement selon les règles de votre environnement.

Option Rôle
-sT Utiliser TCP connect.
-p liste Définir les ports de la phase de scan.
-sn Effectuer la découverte sans scan de ports dans l’usage simple.
-Pn Ne pas éliminer les cibles d’après la découverte préalable.
-sV Demander une identification active des services.
-oN fichier Conserver une sortie texte normale.

Pour expliquer un résultat, confrontez-le aux services et adresses d’écoute vus sur le serveur avec la commande ss pour les sockets locaux, puis au fonctionnement réel de l’application. Une collecte large, une détection de version ou des scripts ajoutent des requêtes : ne les activez pas uniquement pour obtenir une table plus remplie.

Le guide officiel Nmap présente les techniques et les options. Ses sections sur le scan TCP connect, la détection de services et la sortie des résultats permettent de vérifier le comportement choisi avant une intervention.