Nmap (Network Mapper) è uno degli strumenti più utilizzati per la scansione e la mappatura di reti. Nmap può identificare host attivi, porte aperte, servizi in esecuzione e versioni software, rendendolo uno strumento tanto semplice quanto indispensabile per chiunque lavori nella sicurezza delle informazioni.
Installare Nmap su Linux
Sulle distribuzioni basate su Debian/Ubuntu:
sudo apt update
sudo apt install nmap
Sulle distribuzioni basate su Fedora/CentOS:
sudo dnf install nmap
# or on older versions
sudo yum install nmap
Dopo l'installazione, è possibile verificare la versione con:
nmap --version
Per chi cerca soprattutto i comandi di installazione sulle distribuzioni più diffuse, è disponibile anche la guida rapida a Nmap su Ubuntu, Fedora e Linux Mint.
Scansione di base
Il comando più semplice per iniziare è:
nmap <ip_address>
Ad esempio:
nmap 192.168.1.1
Questo comando rileva le porte aperte più comuni sull'host target.
Scansione di porte specifiche
Per limitare la scansione a porte specifiche:
nmap -p 22,80,443 192.168.1.1
-pspecifica le porte da scansionare- È possibile utilizzare intervalli, ad esempio
-p 1-1024per le prime 1024 porte
Scansione avanzata e identificazione dei servizi
Nmap può anche rilevare i servizi in esecuzione e le versioni software:
nmap -sV 192.168.1.1
-sVtenta di identificare il servizio e la versione sulle porte aperte
Per una scansione più aggressiva che includa anche il rilevamento del sistema operativo:
sudo nmap -A 192.168.1.1
-Aabilita: rilevamento OS, rilevamento versione, scansione script e traceroute
Utilizzo degli script Nmap (NSE)
Nmap dispone di un motore di scripting (Nmap Scripting Engine - NSE) per test di sicurezza avanzati:
nmap --script vuln 192.168.1.1
--script vulnesegue script per trovare vulnerabilità note- È possibile eseguire anche script specifici, ad esempio:
nmap --script http-enum 192.168.1.1
Salvataggio dei risultati
Per un'analisi successiva, è utile salvare l'output:
nmap -oN results.txt 192.168.1.1
-oNsalva in formato leggibile dall'uomo (normale)- Altri formati disponibili:
-oXper XML,-oGper grepable
Interpretare gli stati delle porte e scegliere la tecnica
Prima di iniziare definisci l’indirizzo IP e le porte autorizzate. Una porta classificata come open risponde a una sonda compatibile con un servizio in ascolto; closed indica che la destinazione è raggiungibile, ma non risulta aperta; filtered significa che un filtro o la mancanza di risposta impedisce di stabilirne con certezza lo stato. Non interpretare automaticamente filtered come “sicura” e non dedurre che un servizio sia vulnerabile soltanto perché una porta è aperta.
Per una verifica TCP su un host di laboratorio, con le autorizzazioni appropriate, puoi confrontare queste due modalità:
# TCP connect: funziona senza privilegi di pacchetti raw
nmap -sT -p 22,80,443 --reason 192.168.1.10
# TCP SYN: richiede privilegi per inviare pacchetti raw
sudo nmap -sS -p 22,80,443 --reason 192.168.1.10
La modalità -sT usa le normali connessioni del sistema operativo; -sS invia sonde SYN senza completare il normale handshake TCP. L’opzione --reason riporta il motivo della classificazione della porta, utile per interpretare il comportamento di firewall e host. Il progetto Nmap documenta le differenze nella guida ufficiale alle tecniche di scansione.
UDP e falsi positivi: controlli aggiuntivi
I servizi UDP, come DNS o SNMP, non sono coperti da una normale scansione TCP. Nelle reti che sei autorizzato a verificare, una scansione mirata evita il costo di interrogare inutilmente tutte le porte:
sudo nmap -sU -p 53,123,161 --reason 192.168.1.10
Per UDP, uno stato open|filtered è ambiguo: l’assenza di risposta non permette di distinguere con certezza tra servizio attivo e pacchetti filtrati. Anche i rate limit ICMP possono rallentare notevolmente il test. Prima di segnalare un problema, confronta l’esito con la configurazione del firewall e con le evidenze raccolte sull’host.
Conservare evidenze e riprodurre il risultato
Per un controllo TCP limitato a porte concordate, puoi salvare output leggibile, XML e formato compatibile con gli strumenti di analisi in un’unica esecuzione:
nmap -sV --version-light -p 22,80,443 --reason -oA verifica-servizi 192.168.1.10
L’opzione -sV prova a identificare i servizi; --version-light limita l’intensità di rilevamento e -oA produce file con lo stesso prefisso in tre formati. Salva con i risultati anche data, versione di Nmap, indirizzo di partenza e perimetro autorizzato: sono informazioni necessarie per ripetere la misura senza confondere una variazione di rete con una vulnerabilità. Le opzioni di esportazione sono descritte nella documentazione ufficiale di Nmap.
L’identificazione di una versione software non dimostra automaticamente una vulnerabilità: un vendor può mantenere patch retroportate senza cambiare il numero di versione riportato dal servizio. Confronta sempre le evidenze con gli advisory del produttore e con verifiche autorizzate.
Best practices
- Usa Nmap solo su reti di tua proprietà o per le quali sei autorizzato a eseguire test. L'uso non autorizzato può essere illegale.
- Combina Nmap con altri strumenti di sicurezza per ottenere un quadro completo della rete.
- Aggiorna regolarmente Nmap e i suoi script per rilevare nuove vulnerabilità.
Risorse utili
- Sito ufficiale Nmap
- Documentazione NSE: Nmap Scripting Engine
- Guide pratiche: Nmap Network Scanning
Con Nmap, i professionisti della sicurezza possono identificare rapidamente le vulnerabilità e comprendere meglio la topologia di rete, elementi essenziali per proteggere i sistemi e i dati sensibili.